GitHub Issue

Sketcher UX improvements

Discovered On Oct 11, 2026
Primary Metric open
Multiple small improvements needed in sketcher 1) when adding constraints, if points / lines etc are selected when applying the constraint, use those rather than forcing the user to select the points or lines AFTER invoking the constraint. In fusion, you can select the things first, then apply the constraint, or invoke the constraint and then select the points. In solvecraft, you're forced to select the things to constrain after choosing the constraint. This same behavior actually applies to many operations, such as projecting external geometry to list another. Allow the external geometry to be selected first, then hit 'p' for project. In general, allow the operands to be selected BEFORE the operation and have it work. 2) when placing dimensions, have the dimension indicator pop up and follow the mouse until the user clicks to define where they want the dimension to be drawn, the same way it works in fusion. Having no feedback after clicking the thing to dimension is confusing, having to click a second time to actually get the dimension to appear. 3) It doesn't correctly add a coincidence constraint between two lines if I select them after hitting the coincidence constraint. It says "unknown sketch point 'l7' " or similar. It correctly creates the coincidence constraint if I drag one line on top of the other though. It seems coincidence you must select a point and a line, and it fails if you select 2 lines, which should also work. Just pick one of the points at the end of ...
View Raw Thread

Developer & User Discourse

0xlillith • Oct 11, 2026
I'll take a small, separate fix for the Horizontal/Vertical tool with two points (item 4). The engine already accepts `points: [a, b]`, but the interactive tool currently completes after one pick and always sends `line`, so clicking the origin or a point fails before the second point can be selected.

I'll preserve the existing one-line workflow, add the two-point workflow, and cover both with clicked UI regression tests, including undo/redo. The preselection, dimension placement, coincidence and units requests will remain separate.
0xlillith • Oct 11, 2026
I'll take another small part of item 1: applying Parallel, Perpendicular, Equal, Tangent, Concentric and Collinear to an already selected pair of sketch curves. I'll keep this independent of #129 and preserve the existing tool-first picking workflow. Regression coverage will include clicked preselection, undo/redo, ambiguous selections and rejected constraints. Other preselection workflows remain separate.
0xlillith • Oct 11, 2026
Now that #129 and #131 are merged, I'll take the remaining Horizontal/Vertical preselection workflow: apply it to exactly one selected line or two distinct selected sketch points, preserving selection on rejection and leaving ambiguous selections to the existing pick tool. I'll cover clicked selection, both axes, undo/redo and rejection.
0xlillith • Oct 11, 2026
I'll take item 3 next, separately from #159: selecting two straight lines in Coincident currently passes curve IDs where the engine expects a point. I'll resolve two distinct lines to their closest endpoint pair, with deterministic tie-breaking, so the same command works through UI and scripts. Existing point/point and point/curve behavior will remain unchanged. Coverage will include real clicked UI picks, both orders, rejection and undo/redo, plus before/after screenshots from the app.
0xlillith • Oct 11, 2026
Actual desktop evidence for item 3, using the same two free lines and clicks in both builds.

Before: clicking both line bodies in Coincident produces `unknown sketch point l1`; 8 DOF.
![Before: Coincident rejects line IDs](https://github.com/user-attachments/assets/b9b72cf1-482d-4854-b22a-24db477ef978)

After: the closest endpoints coincide, the constraint glyph appears and the sketch has 6 DOF. Both pick orders, fixed-line rejection and exact undo/redo are covered by clicked UI tests.
![After: Coincident joins the closest endpoints](https://github.com/user-attachments/assets/ad86d094-3013-493c-a527-c0295db74851)