feat: Group sketch creation tools and remember variants per part (#589)

Sketch Create groups its drawing tools under Line, Rectangle, Circle, Arc, Slot, Polygon and Spline. Each family's main button starts the part's last-used variant and its caret lists the others; choices are per open part, kept across sketch sessions and tab switches, and never touch the design or undo history.

Co-authored-by: Karl Von Richter <karl@von-richter.net>
This commit is contained in:
Karl Von Richter authored and GitHub committed 2026-10-13 04:49:28 -04:00
1 parent 14635e5d3a
commit 04cfb74c5e
8 files changed
+306 -22

No files matched your search

@@ -1,7 +1,7 @@
[
{"note":"#191: Point is a default Sketch CREATE button; the existing six drawing buttons remain available."},
{"note":"#191: Point remains a default Sketch CREATE button alongside the drawing families."},
{"call":"engine.execute","params":{"command":"sketch.create","params":{"plane":"XY"}}},
{"expect":{"shown_handles":["button:sketch.line","button:sketch.rectangle.two_point","button:sketch.rectangle.three_point","button:sketch.rectangle.center","button:sketch.circle.center","button:sketch.circle.two_point","button:sketch.point"]}},
{"expect":{"shown_handles":["button:sketch.line","family:Rectangle","family:Circle","family:Arc","family:Slot","family:Polygon","family:Spline","button:sketch.point"]}},
{"click":{"handle":"button:sketch.point"}},
{"expect":{"tool":"sketch.point","dialog":null}},
{"click":{"sketch":[20,15]}},
@@ -0,0 +1,41 @@
[
{"call":"engine.execute","params":{"command":"sketch.create","params":{"plane":"XY"}}},
{"click":{"handle":"family:Rectangle"}},
{"expect":{"shown_handles":["dropdown:sketch.rectangle.two_point","dropdown:sketch.rectangle.three_point","dropdown:sketch.rectangle.center"],"hidden_handles":["dropdown:sketch.circle.center"]}},
{"key":"ArrowDown"},
{"expect":{"shown_handles":["dropdown_hot:sketch.rectangle.two_point"]}},
{"key":"ArrowUp"},
{"expect":{"shown_handles":["dropdown_hot:sketch.rectangle.center"]}},
{"key":"Enter"},
{"expect":{"tool":"sketch.rectangle.center"}},
{"click":{"sketch":[0,0]}},
{"click":{"sketch":[20,15]}},
{"key":"Escape"},
{"click":{"handle":"button:sketch.rectangle.two_point"}},
{"expect":{"tool":"sketch.rectangle.center"}},
{"key":"Escape"},
{"call":"ui.documents","params":{"action":"new"}},
{"call":"engine.execute","params":{"command":"sketch.create","params":{"plane":"XY"}}},
{"click":{"handle":"button:sketch.rectangle.two_point"}},
{"expect":{"tool":"sketch.rectangle.two_point"}},
{"key":"Escape"},
{"call":"ui.documents","params":{"action":"switch","index":0}},
{"click":{"handle":"button:sketch.rectangle.two_point"}},
{"expect":{"tool":"sketch.rectangle.center"}},
{"key":"Escape"},
{"start":"sketch.finish"},
{"call":"engine.execute","params":{"command":"sketch.create","params":{"plane":"XY"}}},
{"click":{"handle":"button:sketch.rectangle.two_point"}},
{"expect":{"tool":"sketch.rectangle.center"}},
{"key":"Escape"},
{"call":"ui.resize","params":{"width":640,"height":720}},
{"click":{"handle":"panel:SKETCH:CREATE"}},
{"expect":{"shown_handles":["create_family:Rectangle","create_family:Circle"],"hidden_handles":["dropdown:sketch.rectangle.center"]}},
{"click":{"handle":"create_family:Rectangle"}},
{"click":{"handle":"dropdown:sketch.rectangle.three_point"}},
{"expect":{"tool":"sketch.rectangle.three_point","errors":0}},
{"key":"Escape"},
{"call":"ui.resize","params":{"width":1280,"height":800}},
{"click":{"handle":"button:sketch.rectangle.two_point"}},
{"expect":{"tool":"sketch.rectangle.three_point","errors":0}}
]