symmetry constraint not performing as indicated

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
User avatar
freman
Veteran
Posts: 2214
Joined: Tue Nov 27, 2018 10:30 pm

Re: symmetry constraint not performing as indicated

Post by freman »

[*] This is what most people will call a symmetry. This is the basic learning at school, and only a very few users know about crystallography...
This discussion has no need of the 3D symmetries defined in crystallography and elsewhere.

The most basic idea of symmetry is left-right reflection as seen in nature ( many animals are symmetric ) and when you fold a piece of paper with wet paint on it. Most kids do that before they can pick up a pencil. Rotational symmetry is a bit more subtle.

That is what the symtool does in the case of a line and mathematical consistency would lead to doing this with a point. What the software does in the case of a point is either a 2 fold rotational symmetry or an inversion about the centre. ( These two are indistinguishable in the 2D case but differ in 3D ).

It's interesting what you say about pre-selection and order. Since each selection event can be trapped by the software , I don't see any fundamental reason why the selection order cannot be known but that may explain why this was implemented in an inconsistent way. It may require pre-emptively storing a linked list of selected items in the anticipation that some op. will be done on them and that order may matter.

The other fix would be to change post-selection to be the same as preselect but that will have habitual 'old school' users howling, mess up the doc and break compatibility with the original method. Not good.

Where is the group selection created and maintained if not in the software? Is this done by some GUI lib and then dumped in a random order to the caller?
openBrain
Veteran
Posts: 9041
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

Re: symmetry constraint not performing as indicated

Post by openBrain »

freman wrote: Wed Dec 26, 2018 4:38 pm This discussion has no need of the 3D symmetries defined in crystallography and elsewhere.

The most basic idea of symmetry is left-right reflection as seen in nature ( many animals are symmetric ) and when you fold a piece of paper with wet paint on it. Most kids do that before they can pick up a pencil. Rotational symmetry is a bit more subtle.

That is what the symtool does in the case of a line and mathematical consistency would lead to doing this with a point. What the software does in the case of a point is either a 2 fold rotational symmetry or an inversion about the centre. ( These two are indistinguishable in the 2D case but differ in 3D ).
That's where I'm a little bit confused with what you say. :)
No problem with the line symmetry. Reflection is the basic way of doing so.
But regarding point symmetry, the so called "central inversion" is IMHO the most natural for many people. And it's just what FreeCAD does.
I saw that another english term for central inversion is "point reflection". As it also uses the "reflection" word, I proposed that the tool hint uses that in its text so it can disambiguate its behavior for both point & line without being too long. ;)
It's interesting what you say about pre-selection and order. Since each selection event can be trapped by the software , I don't see any fundamental reason why the selection order cannot be known but that may explain why this was implemented in an inconsistent way. It may require pre-emptively storing a linked list of selected items in the anticipation that some op. will be done on them and that order may matter.
Recording the selection order may be possible in the software. But could become scary very quickly combined with following sequential actions.
Basically a software will define 2 things (while you're selecting items with no current action running) : the selected items (as an unsorted list) and the active item (always a single one & almost always the last clicked on a multiple selection).
A good example could be a multiple selection in Excel (guess you know this software :lol: ). You can select a range of cells (even not contiguous) by different ways (CTRL + mouse, SHIFT + mouse/keyboard, ...) : these cells are greyed. But there is always only one active (the last selected) : this cell is surrounded and text is entered here. If you go for some VBA programming that will run through the selected cells, you'll see that they are not necessarily browsed in the selection order. ;)
The other fix would be to change post-selection to be the same as preselect but that will have habitual 'old school' users howling, mess up the doc and break compatibility with the original method. Not good.
??? Preselect = old mode (what NormandC does) ; Postselect = new mode (What you do). Maybe you swapped them in your sentence ?
Where is the group selection created and maintained if not in the software? Is this done by some GUI lib and then dumped in a random order to the caller?
I've no idea how it is done exactly in FreeCAD. :)
User avatar
freman
Veteran
Posts: 2214
Joined: Tue Nov 27, 2018 10:30 pm

Re: symmetry constraint not performing as indicated

Post by freman »

A good example could be a multiple selection in Excel (guess you know this software :lol: ). You can select a range of cells (even not contiguous) by different ways (CTRL + mouse, SHIFT + mouse/keyboard, ...) : these cells are greyed. But there is always only one active (the last selected) : this cell is surrounded and text is entered here. If you go for some VBA programming that will run through the selected cells, you'll see that they are not necessarily browsed in the selection order.
Ah , that's what you had in mind. I don't see the relevance to CAD. I suggest we restrict any discussion to what FreeCAD does. But I'm sure devs will find a way pretty easily, so not much point in going any further here.
User avatar
uwestoehr
Veteran
Posts: 4961
Joined: Sun Jan 27, 2019 3:21 am
Location: Germany
Contact:

Re: symmetry constraint not performing as indicated

Post by uwestoehr »

It was fixed for FC 0.19: git commit c0da186156
Post Reply