The current system of constraint currently works in two ways:
moving the mouse so that an axis (or inferred axis) is highlighted and holding the [shift] so that the point will always follow that line, no matter where the mouse is moved to.
hitting an arrow key to toggle the constraint to one of the ‘mapped’ directions:
- up/down is blue,
- right is red and
- left is green.
The problem with 1) is that you have to move the mouse about until you find the desired inference and then you have to continue to hold [shift] until the correct point is clicked. If you let go of [shift], you loose the inference. This means that to get precise (typed in) dimensions, you have to click in the approximate place, then type in the size (assuming you don’t accidentally move the mouse between clicking and typing)
The problem with 2) is that the red axis might not be to the right of the screen and the green might not be to the left. The axis is also dependent on the context of the geometry; if a group or component has a different axis from the global one, then the blue axis (up) may actually extend to the right of the screen.
Request a: I would like it to remember the constrain or retain the existing position of the cursor when [shift] is released until the mouse is moved.
Request b: If the constrain is used when drawing a rectangle, then typing in one value would be the non-constrained dimension. (or if the constrain is not on one of the primary axis, then it would be the “length”)
Request c: I would like a key to work as a toggle to lock the [shift] constraint (I think [space bar] would work well) - so that you don’t need to hold down [shift]. Once constrained, hitting the same key would release the constrain.
Request d: I would like to be able to make the current vector (from the initial point to the mouse position) an inferred line that could be constrained to.
Request e: I would like a system option to lock the arrow mapping to the axis (as it is just now) or use an inferred axis so that when using the arrow keys if I hit the right arrow, the axis would be constrained to whatever axis runs off the right hand edge of the screen - be it red, blue or green.
Request f: I would like a key to cycle through active constraining/drawing axis (perhaps the down arrow?):
- 1 (default) the axis of the current group/component that is active. (as it currently is)
- 2 the axis of the containing group/component of the current one (if nested)
- 3 the global axis.
All constraints and push/pull would use the active axis.The axis would revert to the default any time a group/component is entered/exited.
Request g: I would like to see all of the inferred guidelines when positioning the cursor to drop a point:
If you hover over a node until it tells you what it is, there will be an invisible guide created so that your geometry lines up nicely*. These guides track your mouse position so that you see a dotted line following the mouse as you move along the inferred guideline, joining with other inferred points along the way. I would like to see them extend faintly beyond the cursor and any inferred points show faintly so that it’s easier to position the mouse and see when you are snapping to the inference points.
*(most of the time)