Co-ordinate help...

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!
R23D
Posts: 135
Joined: Sat Jan 25, 2020 5:23 am

Co-ordinate help...

Post by R23D »

OS: Windows 10 (10.0)
Word size of FreeCAD: 64-bit
Version: 0.20.25645 (Git)
Build type: Release
Branch: master
Hash: 37d9757399b4c2ec30318eb88d7cd7c508246345
Python version: 3.8.10
Qt version: 5.12.9
Coin version: 4.0.0
OCC version: 7.5.2
Locale: English/Australia (en_AU)

There is something I have never understood with regard to Freecad.

Whenever I use a 2D vector graphics program, when I union objects or even just group them together and then move the parent object around, if I later split these objects apart or ungroup them, the components retain their new position because the absolute position of the sub-objects has updated with that of the parent object.

This does not appear to be the case in Freecad (at least not in the 'part' workbench) where splitting unions apart or ungrouping objects causes the constituents to fly back to their original position in which they were before you either grouped them or performed binary logic upon them etc. I am not sure if this behaviour is useful under any set of circumstances (perhaps it is) but I have always found it to be an EXTREME nuisance that I fight on a regular basis. Not only does it cause things you have carefully placed to jump all over the place and spring apart when you wish to change the hierarchical structure of the model but it also means that you cannot align certain primitives or model parts to others using a third part as a reference which, under certain circumstances is not only useful but vital.

I have attempted to find a setting that will either change this behaviour from the get-go OR else a button/menu item that will cause all sub-components of a larger model to update their co-ordinates to the absolute co-ordinates of their actual current location but alas I find nothing.

AM I missing something? Is there a way to do this?

Any help to get this happening would be greatly appreciated. :)
chrisb
Veteran
Posts: 54302
Joined: Tue Mar 17, 2015 9:14 am

Re: Co-ordinate help...

Post by chrisb »

R23D wrote: Fri Sep 17, 2021 3:13 pm AM I missing something? Is there a way to do this?
If you want the underlying components of e.g. a union to be the reference for some alignment: just make the union invisible and the components visible and move those; don't touch the Placement of the union.

You can of course not use this technique if the same objects are used in different operations.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
R23D
Posts: 135
Joined: Sat Jan 25, 2020 5:23 am

Re: Co-ordinate help...

Post by R23D »

Thankyou for your reply, Chrisb. Yes, I have indeed used that technique. :)

Is there a way to stop sub-objects flying back to their original positions when either changing the hierarchical structure of the model or ungrouping components from a group though? To be able to do this by having the sub-components understand their absolute position is what is really important to me. :)
drmacro
Veteran
Posts: 9007
Joined: Sun Mar 02, 2014 4:35 pm

Re: Co-ordinate help...

Post by drmacro »

R23D wrote: Fri Sep 17, 2021 3:28 pm
Is there a way to stop sub-objects flying back to their original positions when either changing the hierarchical structure of the model or ungrouping components from a group though? To be able to do this by having the sub-components understand their absolute position is what is really important to me. :)
The "flying back" you describe is a result of the way the Position (and Attachment when in use) object handles the mapping of the coordinates.

It is particularly noticeable when using, for example, STEP imports that are not at 0,0,0 global coordinates. If you move them around, then drop them into a Part Design Body, they pop back to their originally imported location.

For example, the imported step file is offset in the GCS by 10,10,10. If you want it at 0,0,0 you use the Edit>Placement menu and set the Translation to -10,-10, -10. And the solid moves to GCS 0,0,0, because the Placement object is set to -10,-10,-10. (But, the values of the coordinates that define the solid are still (i.e. the x,y,z values of it's vertices) their original values.)


But, if you now drop the object into a Part Design Body, the Placement object now takes it's value from it's parent, the Body, who is at 0,0,0.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Co-ordinate help...

Post by GeneFC »

R23D wrote: Fri Sep 17, 2021 3:28 pm Is there a way to stop sub-objects flying back to their original positions
The original components never move at all. The union is a new object, and that is what moves.

You can easily check this behavior by doing what chrisb said. Make everything visible and then move the union. The original components do not move.

They have not yet learned how to fly, forward or backward. 8-)

Gene
R23D
Posts: 135
Joined: Sat Jan 25, 2020 5:23 am

Re: Co-ordinate help...

Post by R23D »

But, if you now drop the object into a Part Design Body, the Placement object now takes it's value from it's parent, the Body, who is at 0,0,0.
I am not using the 'part design' workbench. I am using the 'part' work bench.
The original components never move at all. The union is a new object, and that is what moves.
Yes, I know but that is at odds with how vector graphics programs and the 2D CAD programs I have used work and I need Freecad to work the same way or at least to be able to tell a the sub-objects to update their position on my say so. I understand more why this happens with a union. Freecad, having made a new shape and turned the others invisible, assumes the constituents not to be part of the new shape. I get it. It would still be handy to have them follow when required, however. I cannot fathom why it happen when objects are simply grouped, though.
drmacro
Veteran
Posts: 9007
Joined: Sun Mar 02, 2014 4:35 pm

Re: Co-ordinate help...

Post by drmacro »

R23D wrote: Fri Sep 17, 2021 4:40 pm
But, if you now drop the object into a Part Design Body, the Placement object now takes it's value from it's parent, the Body, who is at 0,0,0.
I am not using the 'part design' workbench. I am using the 'part' work bench.
Matters not. Similar things occur in Compounds, Splits, etc.

The original components never move at all. The union is a new object, and that is what moves.
Yes, I know but that is at odds with how vector graphics programs and the 2D CAD programs I have used work and I need Freecad to work the same way or at least to be able to tell a the sub-objects to update their position on my say so. ...
FreeCAD does not work the same way. And, is definitely not a 2D vector graphics program.

Sorry. Different program, different paradigm. :(
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
R23D
Posts: 135
Joined: Sat Jan 25, 2020 5:23 am

Re: Co-ordinate help...

Post by R23D »

FreeCAD does not work the same way. And, is definitely not a 2D vector graphics program.

Sorry. Different program, different paradigm. :(
Well, yes it IS different, demonstrably. I just can't see any reason why it should need to work differently in this regard though.

So, I guess the unfortunate answer is simply that it isn't possible to move things neatly as a group then ungroup or regroup said objects and have them stay conveniently where I left them, no matter how much I would like it to be possible. :(

Ok... that depresses me endlessly. :(
drmacro
Veteran
Posts: 9007
Joined: Sun Mar 02, 2014 4:35 pm

Re: Co-ordinate help...

Post by drmacro »

If you have two objects in a Compound, then transform the compound to somewhere and Explode Compound, the resulting exploded objects stay put.

But, they are still contain the original objects, in their original position.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
R23D
Posts: 135
Joined: Sat Jan 25, 2020 5:23 am

Re: Co-ordinate help...

Post by R23D »

If you have two objects in a Compound, then transform the compound to somewhere and Explode Compound, the resulting exploded objects stay put.

But, they are still contain the original objects, in their original position.

Thanks. :) That may be useful in the future but it doesn't quite achieve what I need at the moment.

To anyone who needs or want to achieve this, (I imagine this might be people trying to create complex models for multicolour 3D printing, such as myself when parts need to remain separate but together, or people who feel a need to or are forced by a broken fillet or some other component to re-edit structures buried deep in the hierarchical tree), l I have found a way to do what I have described:

If you select multiple components, you can move them all together with 'draft', 'move'! I was unaware this was possible and thought only a single item could be moved this way as with other methods of placement such as 'placement' and 'transform'. The best part about this is that not only do the parts remain in position relative to one another but they remain where they are put indefinitely! This is their true new location now and their co-ordinates reflect this. You do not even need to group them first and they do not need to even be in contact! You could also use this method to force sub parts to align with unions created from them. You will have to move the union and its parts separately but if you need to do this for your own sanity, it can be achieved.

I hope this helps someone. :)
Post Reply