Hacker News new | ask | show | jobs
by Animats 3374 days ago
Probably people were trying to talk to the constraint system by typing code manually, rather than using a graphical editor. All the CAD systems with a constraint engine let you deal with it graphically, which is straightforward.
1 comments

For comparison, here's what Autodesk Inventor's 2D sketch mode is like.

- If you draw a line, and it's close to horizontal or vertical, it gets a horizontal or vertical constraint. The constraint shows as a symbol and you can click on it and hit DEL if you don't want it.

- If you start a line from very close to another line, or close to another point, the endpoint is constrained to touch that line or point.

- You can explicitly select various constraints from a menu bar, such as "parallel", "collinear", "coincident", "tangent", and then select two lines, which applies the constraint. This works on lines, circles, arcs, and splines.

- If you try to add a conflicting constraint, you get an error message and the constraint won't be applied. Constraints do not have priorities; all constraints are enforced.

- You can explicitly dimension something, and give it an absolute length or angle, or some function of other dimensions.

- Anything that isn't constrained can be dragged and moved. There's a counter of the number of unconstrained degrees of freedom, and when everything is locked by some constraint, the message "Fully constrained" appears. All unconstrained degrees of freedom are displayed as straight or curved arrows, indicating how something could be moved.

- The hard cases, such as making a arc tangent to a line, or circles tangent to each other, work right.

It's a really easy way to set up geometry for parts you're going to make. This is all part of a much larger system for full 3D machine design, but the sketch module is close to what you'd want for web layout.