How do constraint and parenting interact with each other? Imagine simple setup: CubeA has a Copy Rotation constraint with CubeB as a target. CubeB has world's orientation. CubeA has different orientation (LocZ=GlobalX, LocX=GlobalY, LocY=GlobalZ). Constraint is set for World to Local Space copy. For now everything acts as expected (e.g. rotating CubeB around Z rotates CubeA around global X).

If I parent CubeA to CubeC everything changes: rotating CubeB affects CubeA as if it had global orientation. Rotating CubeC changes effect even more. Now CubeA rotation is similar neither to CubeB's nor to CubeC's.


I don't want to make this question too complicated but if I change the order and apply the constraint after parenting the objects then result is different again from described above though I still can't pursue its logic.

How do constraint and parenting interact with each other? How can one estimate the final child's orientation?
In the copy rotation constraint you say you have set the copy space as world->local, that means rotating CubeB on the global z-axis will rotate CubeA in it's local z-axis.

As you parented CubeA to CubeC and then rotated CubeC, Cube A is located below CubeC but you should also notice that as CubeC is rotated, CubeA is rotated using the CubeC location as the pivot point, this leads to the CubeA local z-axis now aligned to the global x-axis.

This leads to the local rotation that you now see, CubeA is still rotating on it's local z-axis but that is no longer aligned to the global z-axis, so it appears to rotate differently to CubeB.

If you use an object that is easier to see the orientation, what is happening will be clearer.