Understanding axis locking and local coordinate systems I'm having trouble understanding axis locking methods, specifically in regards to local coordinate systems. I have three questions about this topic.
In most explanatory threads on the internet its explained that, if you use any manipulation tool (i.e., move, scale, rotate, etc) and you use axis locking by pressing either x, y or z, the first time you press it will lock to the regarding global axis. You press the second time and it will perform the manipulative action you chose along a local coordinate system. This is also explained in the blender manual:
https://docs.blender.org/manual/en/latest/scene_layout/object/editing/transform/control/axis_locking.html#axis-locking-modes
...yeah well, it doesn't do that in my case. To figure out what's happening, I created a random object and tried extruding a face. When I extrude a face, it generally starts by scaling along some local Z axis:

When I press z for the first time, it extrudes along the global z axis. So far as explained. But when I press a second time, it doesn't extrude in the local direction again, but it releases it.
Now ok, I can see that, when faces are extruded, its kinda more intuitive if the first suggestion for the direction to extrude in is in the direction of the normal vector. This leads me to conclude that, with any selection (no matter if verticies, edges or faces) the local coordinate system is arranged in such a way that the average normal vector is considered the Z-axis.
First question to you:
Is that assumption correct?
Second question to you:
When I select a face on my random object (such as the one in the image above), I would like to see the local coordinate system, so that I get an idea where my manipulations are headed when I lock to a local axis. However, I never really get to see the local coordinate system. So, I have an idea where Z lies (by estimating the average normal vector of my selection), but I never really know where X and Y are going before I do anything. Is there any way to display a local coordinate system of a selection? How does blender determine how X and Y are oriented locally in the first place? Btw, if I choose &quot;local&quot; in the transformation orientation menu, no local coordinate system shows up either.
Third question to you:
Is there maybe a possibility to create a custom coordinate system which I can use to manipulate my selections? So that, for instance, I can customize where my Z-axis is oriented and lock to it?
Thanks for your help in advance.
You haven't been helped by a bit of outdated documentation (reported), or, IMO, by the interface.
First of all,though, the Local: orientation is the orientation of the Object axes. These can be displayed by checking Axes the Object tab &gt; Viewport Display panel. Unfortunately the display is not 'In Front', so you may have to AltZ switch on X-ray mode, to see them. The Object is a vehicle for its mesh / curve elements, and carries all the object-level transforms.
Normal orientation reverts to Local in Object mode. In Edit mode, actually, it's not always predictable for modeling. Vertex normals may be calculated from adjacent faces, if there, or by projection from the object origin, if not. The useful, predictable normals, I think, are: from selected faces: Z will be along their mean normal. From 2 vertices or an edge, Y will be along the line between the verts. From 3 vertices, Z will be normal to the plane defined by them.
Contrary to your quote from the manual, a single tap on X, Y or Z will constrain a transform to the orientation displayed in the Transform Orientation dropdown. The second tap will revert to Global, (or from Global to Local, if Global is already selected). The third tap will release the constraint.
Custom Orientation
Following the above Normal rules, you can create your own orientation from a selection of elements by hitting the little '+' in the Orientation dropdown.
Extrude
Just to make everything more confusing, E Extrude behaves differently. You're right. The Normal orientation is assumed as the background behaviour, taking the place of Global in the transform tap-sequence described above, and the tool behaves as if you had tapped ZZ already, so the next Z releases, and the next puts you into the orientation in the dropdown.
If, in an extrude, you tap a constraint other than Z, the tool assumes you are starting the cycle from the beginning: Dropdown &gt; Normal &gt; Free.
The old behaviour of the constraints was as in your quote from the manual. It really seems to me that flipping the single and double-tap behaviour has opened up a can of worms. Personally I would rather have had consistency than 'convenience'.