1

I am importing a DAE file which has objects in a hierarchy.

When I change the first object in the hierarchy's scale (reducing by a scale factor of 1000), the object becomes smaller to the size I would like.

However, when I view the XYZ location of an object lower in the hierarchy, the dimension scale change, but the location does not. Why is this?

Example:

Before doing anything. Note the Location XYZ enter image description here

Original scale factor of top level object: enter image description here

I have now changed the scale for the top level object to a scale of .001: enter image description here

I'm selecting the object a few down the hierarchy again. As you can see the dimensions of the object changed, but the location XYZ does not change.

enter image description here

lemon
  • 60,295
  • 3
  • 66
  • 136
  • To be clear, you are asking why an object's location doesn't change when you scale it? – person132 Sep 14 '20 at 02:44
  • @person132 - Yes. – Scott Paterson Sep 14 '20 at 02:52
  • I am fairly certain that this would not be the expected behavior. Position and scale are two separate properties of objects, and changing one shouldn't affect the other one. – person132 Sep 14 '20 at 02:56
  • The position shouldn't change, but the decimal place should. It's currently 206m away from the previous object, when it's size is .2m. – Scott Paterson Sep 14 '20 at 04:54
  • Further to the answer of lemon below,see https://blender.stackexchange.com/a/169424/15543 So for any child object what we see in transform panel is somewhat arbitrary, and not global coordinates. The scene cursor displays global coordinates,. To reflect changes down a hierarchy consider apply scale ctrl-A of the base making it unit (1, 1, 1) scale for current size. scaling descendants, do again for children etc, resulting in all parts having a uniform unit scale. Some importers have a scale option to do this for us, not dae by the looks. – batFINGER Sep 14 '20 at 08:37
  • @batFINGER - That would cause the objects to be uniform in size, but not the correct size. I'm working on a robot file that will reflect a real life robot. So all dimensions in Blender need to match the real world. – Scott Paterson Sep 14 '20 at 18:18

1 Answers1

1

It's due to the parenting and an expected result.

When a child appears scaled due to its parent scale, the child own coordinates, scale or rotation won't change.

That's allow, when unparenting AltP, to have the choice between "clear parent" and "clear and keep transform".

Internally, Blender keeps the object own coordinates in matrix_basis and the resulting coordinates of its dependencies in matrix_world.

Also, moving the parented object by x unit will result in a move of its own coordinates of x unit times the inverse of the scale given by its parent. So, all is coherent.

If you want to keep parenting with scales and locations being applied, select all the parts and use CtrlA to apply, then "scale".

lemon
  • 60,295
  • 3
  • 66
  • 136
  • It seems that using the Alt + P "clear parent" and "clear and keep transform" option does correct the location XYZ scale, but it removes all hierarchy. I need to maintain hierarchy and get the correct XYZ location. Is there a way to do this? – Scott Paterson Sep 14 '20 at 18:13
  • Yes, select them all and apply scale (ctrl A then scale) – lemon Sep 14 '20 at 18:19