Poor ease-of-learning for picking alignment reference object

Bug #1822906 reported by Cal-linux
46
This bug affects 7 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Unknown

Bug Description

The Align/Distribute functionality changed from 5.0.2 to 5.1. Assuming this change was intended (I do think the new functionality is great), it is incorrectly (poorly) implemented:

If I do “Align to Right” on a group of selected footprints, the reasonable interpretation (and the way it used to work in KiCAD 5.0) is: align the right of all selected footprints to the right-most of the selected footprints.

What 5.1 does is: “Align the right of all selected footprints to the right of this footprint” (where “this footprint” is the footprint on which one right-clicked to activate the Align pop-up menu).

The bug I am reporting is actually the text on the pop-up menu --- it should NOT say "Align to Right/Left/etc."; it should say something like: "Right-align selected footprints with respect to this footprint" (or something along those lines but more concise).

Additionally, the order of the menu items should be changed to avoid the ambiguity between center/middle (horizontal vs. vertical centering). Either use the words horizontal / vertical to avoid ambiguity, or list the items in the following order: Left, center, right, top, middle, bottom (with center between left and right, it is clear that it refers to horizontal center; similarly for middle between top and bottom).

KiCAD version:

Application: kicad
Version: 5.1.0-060a0da~80~ubuntu18.04.1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 4.15.0-46-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
    Boost: 1.65.1
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.58.0
    Compiler: GCC 7.3.0 with C++ ABI 1011

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=ON
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Jon Evans (craftyjon) wrote :

Another option: some other tools I have used have you pick the reference object after executing the command. This approach has the advantage of working the same way if you execute the align command from a keyboard shortcut (where there might not be an obvious reference object to pick).

IMHO it is better to be able to pick the reference object than to assume that the user always wants to align to the rightmost selected object (the previous behavior)

Revision history for this message
Cal-linux (cal-linux) wrote :

Picking the reference object after execution has the disadvantage of adding extra steps (unconditionally).

I do think that the functionality in 5.1 is very good: one can choose the reference object, but no extra steps are involved (one needs to do right-click no matter what; might as well right-click on the footprint we want as the reference).

Again, the only problem, IMHO, is that what the menu says is not really what the software does (at the very least, it's unclear).

Revision history for this message
eelik (eelik) wrote :

Compare this before/after dilemma with "Position Relative To..." dialog. It's not necessarily the best example of good usability, but KiCad should have internal consistency as much as possible. One tactic should be chosen and used in as many places as possible.

Revision history for this message
Rene Poeschl (poeschlr) wrote :
Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :

I just checked Adobe Illustrator and it top/right/bottom/left aligns objects to the topmost/rightmost/bottommost/leftmost object.

This is also the behaviour that makes the most intuitive sense to me.

Revision history for this message
Cal-linux (cal-linux) wrote :

I agree that the intuitive interpretation of "Align to Right" is that.

LibreOffice Draw does that. KiCAD used to do that (version 5.0 does that).

However, IMHO, the behaviour in KiCAD 5.1 is better in the sense that it is more flexible. Look at it this way: you can implement what 5.0 used to do with the functionality of 5.1; but you cannot implement the 5.1 behaviour with KiCAD 5.0

What I think is the problem in 5.1 (and the reason for my forum post + bug report) is the inconsistency between what the menu says ("Align to Right") with what the software does. For what it's worth, my vote is: leave the new behaviour, just adjust the menu text!

Changed in kicad:
status: New → Opinion
Revision history for this message
Rene Poeschl (poeschlr) wrote :

Michael i agree that this might not be a high priority thing. But a clearer name for these tools could make it easier for users to understand them on an intuitive level. This means it would not really move this bug to opinion but maybe either wishlist or low.

Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :

IMHO the current menu text shouldn't be changed as its short, succinct and the "standard" phrase in all other graphical editing software/office suites/CAD packages etc. I have ever used. Maybe a tooltip or explanatory message in the status bar would help clear up confusion.

FWIW I preferred the 5.0 behaviour as that was also more standard, but I do see the benefit of the increased flexibility in the 5.1 behaviour.

I'll defer to someone of higher seniority.

Changed in kicad:
status: Opinion → New
Revision history for this message
Günter Thelen (daedalus-inc) wrote :

Hmm, I just wanted to submit a bug report for this - thanks for clarification :)
But what is still unclear to me -
I selected 10 SMD pads, two rectangle selections combined with shift. How do I assure the bottom-most pad is the reference pad? How can I verify before trying out?
Greetings and thank you for this incredible tool

Revision history for this message
John Beard (john-j-beard) wrote :

@Günter: right-click on the bottom-most pad when you go to execute "Align to Bottom". Then all the pads will share a bottom with that pad.

Revision history for this message
eelik (eelik) wrote :

The menu texts are really wrong. They should say "Align to the item on which context menu was called" or something shorter but yet descriptive. It's not an opinion, just plain simple logic. And there should be only two items, not 2x3 (every one in one group of 3 now do the same thing).

Or maybe there should be 2 x 3 align options: Align to Right, Align to Left, Align Vertically. (I'm not sure what "middle" and "center" were supposed to do). The left/right would work in the old way. And the same for top/bottom. At least the texts wouldn't be misleading, although what Align Vertically means would be left as homework for users.

Revision history for this message
Jeff Young (jeyjey) wrote :

I'm in agreement with comment #3, although I think the "Select reference point" facility of the Copy command is more relevant.

Changed in kicad:
status: New → Triaged
importance: Undecided → Low
milestone: none → 6.0.0-rc1
summary: - KiCAD 5.1 -- pcbnew Align/Distribute context menu text arguably wrong
+ Better ease-of-learning for picking alignment reference object
summary: - Better ease-of-learning for picking alignment reference object
+ Poor ease-of-learning for picking alignment reference object
Revision history for this message
eelik (eelik) wrote :

Forget what I said in comment #11, I didn't understand how these work. Now it makes sense and the functionality is good. But my misunderstanding tells something about the ease-of-learning.

It's very difficult to find short but descriptive texts which would remove all misunderstandings. The menu items should have to levels, like:

Align horizontally using this item's
    -> bottom edge
    -> top edge
    -> center
Align vertically using this item's
    -> left edge
etc.

But that would be very clumsy and maybe impossible to translate to some languages.

Using Copy command's reference selection would at least be explicit, although it would introduce an extra step which would be unnecessary for this command. Note that for Copy command the RMB click point can't be used because there's Edit->Copy main menu item which can't have that click point. If we want consistency between different functions, "select reference afterwards" seems to be the only solution.

tags: added: eeschema pcbnew ui
Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

KiCad bug tracker has moved to Gitlab. This report is now available here: https://gitlab.com/kicad/code/kicad/-/issues/1887

Changed in kicad:
status: Triaged → Expired
Changed in kicad:
importance: Low → Unknown
status: Expired → New
Changed in kicad:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.