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.
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)
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.
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.
You can also define arbitrary custom orientations based on the orientation of existing geometry, see my answer here.
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.
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.
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.
- 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.
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