Is there a way to rotate the axes themselves? I want to rotate the global coordinate system, basically redefining the x and y axes 45 degrees from their original position.
-
$\begingroup$ What is the reason you want to do this? Perhaps there is a workaround. $\endgroup$– gandalf3Commented Nov 18, 2013 at 21:06
-
1$\begingroup$ How about Transform Orientations? $\endgroup$– CodeManXCommented Nov 18, 2013 at 21:43
-
$\begingroup$ @gandalf3, one reason one might want to do that is that some other modeling platforms, and some games label the axes differently. I seem to recall (maybe wrongly; I only used the program for about a week, and that was about 400 weeks ago) that the old Gmax platform labeled the left-right axis "x", but the vertical axis was labeled "y", and the "z" axis was front to back. Some games also adopted this convention. On this basis, while I can't think of good reasons for switching "x" and "y", I can see why someone would want to switch "y" and "z". $\endgroup$– brasshatCommented Jun 30, 2015 at 19:15
-
$\begingroup$ @brasshat Well, yes, but that wouldn't explain rotating the X and Y 45 degrees.. I thought the OP might want to arbitrarily rotate the axes to match the normal of a face or something, which is the kind of thing you can use different transform orientations for. $\endgroup$– gandalf3Commented Jun 30, 2015 at 19:51
-
$\begingroup$ @gandalf3, you're right of course. I jumped from the specifics of the 45 degrees to the more general "why someone might want to do this". $\endgroup$– brasshatCommented Jun 30, 2015 at 19:59
3 Answers
Yes, if one fits your needs you can use a different transform orientation. If not, you can create a custom one.
Other transform orientation systems can be selected in 3D view > Header > Transform orientation:
Note that to transform a selection along the orientation set in 3D view > Header, you need to press the axis key twice, e.g. RYY. Otherwise Global coordinates will be used)
View
The orientation for the View setting is controlled by the angle of the view. See the wiki:
The manipulator will match the 3D view, Y → Up/Down, X → Left/Right, Z → Towards/Away from you.
This way you can constrain movement to one View axis with GXX.
You could use two 3D views, one to define the transform orientation, and another to actually view and interact with the scene.
Local
You could also try using local coordinates, which is defined by the rotation of the selected object(s). See the wiki:
The manipulator matches the object axis. Notice that, here, the Manipulator is at a slight tilt (it is most visible on the object's y-axis, the green arrow). This is due to our 15º rotation of the object. This demonstrates the difference between local coordinates and global coordinates. If we had rotated the object 90º along its x-axis, we would see that the object's "Up" is the world's "Forward" -- or the object's z-axis would now be the world's y-axis. This orientation has an effect on many parts of the interface, so it is important to understand the distinction.
Custom
You can also define arbitrary custom orientations based on the orientation of existing geometry, see my answer here.
Short Answer
Yes. Just transform all objects by the inverse rotation. Rotating the global frame by 45 degrees clockwise around Z amounts to rotating all objects's local axes by -45 degrees around the global Z direction. The latter is easy to do by GUI.
Explanation
When you rotate the global axes, Blender will always represent everything relative to the new, rotated ones. So the objects will appear to be rotating and the global axes fixed.
I can see this as useful in case you need your objects all to align to a more convenient direction for manipulation.
Illustration
One way to see this clearly is to explicitly represent the canonical directions (1,0,0), (0,1,0) and (0,0,1) of the original global axes as detailed below. That way you can see the old axes rotated -45 degrees from the new ones, which is the same as the new axes rotated +45 degrees from the original ones.
Step-by-step Example
- Create a new document with the default cube, light and camera objects. Notice how the cube's local coordinates are aligned to the global ones; they will allow us to see these initial unrotated global coordinates later.
Note: The cube's local axes representing the original global axes can be accessed by selecting the local transform orientation (as in this figure from the other post)
Transform all objects by -45 degrees. One way to do this is to create a new empty aligned to the global axes, parent all objects to the empty and rotate the empty -45 degrees around Z.
Notice that the new, rotated global coordinates are +45 degrees rotated from the original global coordinates (represented by the cube's local coordinate frame).
You can change the coordinate system when exporting to Wavefront (.obj).
In this example, the model has the taper orientend on the Z-axis
When you export to .obj (file > export > Wavefront .obj), you can change the coordinate system (in this case, I'm setting the taper on the Y-axis)
Now, you can import the .obj file and change the options:
This is the result:
You can play with the forward/up combinations to achieve your goal