The title hopefully conveys my question in an effective way. I would like to know if there’s a comprehensible way of accurately defining the local axes of a single object without having to rotate its vertices in edit mode (which I find time-consuming and inaccurate).
Use a dummy Object, like an Empty, and set the rotation you want either manually or in the Transform tab (N).
Then RMB-Select your original object, Shft-RMB-Select the Dummy (so it’s the Active Object) then Ctrl-C >> Rotation.
%<
I’m afraid I don’t understand. When I copy the rotation of the empty, the whole object rotates and brings its own local axes along. In hindsight my question seems to have been a bit unclear. I’ll give an example of what I meant:
I have a cube. For the sake of simplicity, I turn it until its local axes align with the global. Now (in object mode) I tip it over 45 degrees on, say, the global Y axis. But I want the cube’s local Z to point in the global Z direction, while keeping the cube’s 45 tilt. One way of doing this is by entering edit mode, select all vertices and rotate them 45 degrees further along global Y, then rotate the object back 45 degrees in object mode (or rotate only in edit mode from the beginning). But I find this inaccurate and cumbersome in more complex models.
Now, if I use the method you describe (have I got it right? Create empty, align it with global axes, select tilted cube and then shift-select empty, and copy rotation), the cube tilts back to initial position, bringing its locals with it.
I hope this explanation was more accurate.
Use the built-in Axis Orientation Copy script.
All in object mode:
Create an Empty with the orientation you desire.
Select object to modify, Shift-select Empty (the order is important).
Object menu->Scripts->Axis Orientation Copy. Confirm “Copy axis orientation from: Empty”
In fact you can use this script to copy the axis orientation from any object to another.
That did the trick, thanks a lot!