I noticed a strange behaviour of scaling in Blender 2.37a when I tried to mirror something using the key combination <S> <X> <1> <-> <Enter> (is there a simpler way?). Before posting it as a bug I wanted to ask you, if possibly I’m doing something wrong.
I duplicated (ALT-D) the cube of the default scene two times with a slight rotation:
When I do <S> <X> <1> <-> to mirror it, I expect the following result:
But in fact the result is:
Of course, “Move object centers only” is turned off. I didn’t find a way to mirror this group of objects along the X-axis. The behavior of axis restricted scaling is simply strange no matter if you use keys or the graphical handles. For instance, the objects never become flat even if scaled to X=0.
Am I doing something wrong? Is this a bug? How to achieve the desired result? Thanks for any help.
Hi Usagi! Your link doesn’t work, but tried to recreate your scene and got very different results - but still not what was wanted. Not sure exactly where the problem lies either.
A small note, but as alternative to <S><X><1><->
CTRL M, and choose Miror X. But that didn’t work with the rotated objects either.
First, create a cube and turn on its axis (F7->Draw panel->axis), so you can see what’s going on.
Go in editmode, select all vertices and rotate them a little.
Go into objectmode, ALT-D the cube twice to get the same picture above.
Do <S><X><1><->, should work correct.
Now do the same as above but don’t rotate the vertices in edit mode, instead rotate the cube in object mode. After you duplicate this cube twice to recreate the above scene, <S><X><1><->, doesn’t work correct. The axis and objects start flipping in an inpredicatble way, at least I cannot explain its behaviour.
The other option would be to go to the ‘Links and Materials’ panel in the Edit Buttons window. Select the second and third cube and in turn, press the number button next to the Mesh data name (reads 3 initially) and confirm the ‘Single User?’ prompt, until each one is unique.
Then press Ctrl_a for each cube.
Then go to Cube 2 and relink it to Cube’s mesh data. (arrow icon to the left of the Mesh data name).
Then go to Cube 3 and relink it to Cube’s mesh data.
(You should see a 3 again next to the Mesh data indicating all are sharing the same Mesh data once again).
SURGEON GENERAL’S WARNING: The following post is very technical and long-winded, and may be dangerous to your health. Side effects can include confusion and general absense of understanding. Handle with caution.
Here’s how it breaks down:
None of blender’s object transformations (Loc/Rot/Scale) will make the local axes of the object “Skewed”, ie no matter what you set the Loc/Rot/Scale values to the cube will still be a cube (or at least a rectangular prism)… no parallelepipeds that would result from having skewed local axes.
Scaling an object along an axis other than one of its local axes will result in skewed local axes (unless the scaling factor is -1 or 1)
Rotating the object to some odd angle and scaling along a global axis will generally mean not scaling along a local axis, thus causing the above.
Therefore, blender does not allow scaling along a global axis in Object mode. Well, it does, but the results are incorrect, as it does not allow the local axes to become skewed.
A 2D analogy I made way back when someone asked a similar question before:
However, I don’t know why mirroring with Ctrl+M can’t be done on the global axis… probably it’s just based around the scaling code, which is broken on the global axes. It would be possible to do though without breaking the axes…
Or, even quicker, select just one of them and press U->Object & ObData, Ctrl+A, then select them all (select the one you tinkered with last) and press Alt+R, Alt+S and then Ctrl+L->Mesh Data. Then enter and exit edit mode to get it to update the display.
I understand. But how can I mirror the ALT-D instanced cubes if they have different rotations? The sample above was just the most simple scene to illustrate my problem. Moreover, after applying the transformation I can no longer work with local axes properly, because it changes the local coordinate system to match the global coordinate system.
Why is it so complicated for the user to scale/mirror some rotated objects along a global axis in object mode? Why does the transformation not work intuitive? I consider this a bug.