After the day full of coding, version 1.0.0 is complete =)
Here’s the updated manual:
<<< Feature overview: >>>
Constrain cursor movement to:
– surface of raycastable objects
– axes of selected coordinate system
– exact axis values in the selected coordinate system
Snap cursor to:
– grid (in the space of selected coordinate system)
– vertices / edge centers / face centers
Make snapshots of surface normal (either face or interpolated)
<<< In general: >>>
Drag cursor with Action mouse button.
Press F10 (or the custom key you assigned to addon in user preferences) to launch the operator without touching the mouse. You can also press this key during cursor dragging to enter “mouse-free mode”. In that case, changes to cursor position would be confirmed on the next Action mouse press.
To discard changes in cursor position, press Esc key or Select mouse button.
Press Q to enable/disable helper line drawing. When enabled, the following will be displayed:
- a line from current coordinate system origin to cursor;
- lines from cursor to its projections on each plane of the selected coordinate system.
If view is locked to cursor, after the initial repositioning, cursor location would be changed in little increments, thus making view “slide” smoothly with the cursor.
Press O to enable/disable locking view on cursor.
<<< Coordinate system: >>>
Press Semicolon key to enable/disable coordinate system synchronizing. If disabled, the operator would always start with “GLOBAL” transform orientation selected, and changes in transform orientation would be reverted when operator ends.
Press A to switch between absolute and relative coordinates. In relative coordinates the position of cursor at the time of operator initialization would be considered origin (0, 0, 0). For absolute coordinates, the origin would depend on the selected transform orientation.
To select coordinate system, press one of the following:
I – View. Absolute origin is at cursor initial position.
G – Global. Absolute origin is at global center (0, 0, 0).
L – Local. Absolute origin at active object’s origin. If there is no active object, this will coincide with Global.
N – Normal. Currently same as Local.
J – Gimbal. Currently same as Local.
M – Mesh (“scaled local”). Same as Local, but takes into account scale.
B – Surface. Z axis will be aligned with raycasted normal direction, X axis will lie in global XY plane. Absolute origin is the raycasted point.
U – Custom transform orientation. Pressing this key in succession would cycle through available custom transform orientations. Absolute origin is at cursor initial position.
<<< Raycasting: >>>
Press R to enable/disable “raycasting” mode, in which cursor snaps to the surface under the mouse. In this mode, the resulting position and normal are displayed.
Note that in raycasted mode axis constraints and exact axis values influence cursor position as well.
Press one of V, E, F to enable snapping only to vertices, edges or faces correspondingly. Pressing the key second time would enable snapping only to other two types of elements.
Press C to enable snapping to all elements. If snapping to all elements is already enabled, pressing C would disable them all.
Press S to enable/disable normal interpolation. If enabled, resulting normal would be found by barycentric triangle interpolation (non-triangle faces are tesselated). Otherwise, face normal would be used.
This also turns off any snapping to vertices/edges/faces.
Press D to raycast against the “raw” mesh without any modifiers applied. This makes difference only for active mesh in edit mode.
Press W to make snapshot of raycasted normal. It will be added to scene as new Empty of “SINGLE_ARROW” type.
<<< Exact axis coordinates: >>>
You can enter exact coordinates for any of the XYZ axes; they override any constraints and positioning made with mouse. Any valid basic numeric expressions are accepted.
To remove last character in current input axis, press Backspace.
To switch input to the next axis (or previous, if combined with Shift), press Tab or Return/Enter.
To clear current axis input, press Delete.
<<< XYZ and Grid (incremental) constraints: >>>
Press X, Y or Z to constrain cursor movement to a single axis of selected coordinate system. Pressing them with Shift would constrain cursor movement to other two axes. Pressing the same key twice would remove constraints.
Hold Ctrl to snap cursor to grid (integer values in the selected coordinate system). Hold Shift+Ctrl to snap to 1/10 of grid.
Snapping to grid has no effect in raycasting mode.
Even nifty keymap is here