Files
OneCAD/crates/ui-egui/tests/scenarios/sketch_move_window.json
T
William Dunn facff1050e Put Move/Copy Sketch Entities on the toolbar, behind a window with distances, an angle and a copy flag (#735)
Sketch Move gets a toolbar placement in Sketch > Modify and a Move/Copy tool window with X and Y distances, an angle, an optional centre point and a Create Copy flag, replacing the context-menu route that ran the command with no parameters.
2026-10-13 13:48:13 -04:00

66 lines
3.2 KiB
JSON

[
{"note": "sketch.move had no toolbar placement, no tool and no dialog. Its only route into the UI was the sketch context menu, which went through the empty-parameter fallback and reported an engine error. It now sits on SKETCH MODIFY and opens a tool window carrying Entities, a Center, X Distance, Y Distance, Angle and Create Copy."},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"expect": {"sketching": true}},
{"start": "sketch.rectangle.two_point"},
{"click": {"sketch": [0, 0]}},
{"click": {"sketch": [20, 10]}},
{"key": "Escape"},
{"expect": {"sketch_curves": {"own": 4}, "errors": 0}},
{"note": "The command opens a window and commits nothing."},
{"start": "sketch.move"},
{"expect": {"dialog": "SketchModify(Move", "sketch_curves": {"own": 4}, "errors": 0}},
{"click": {"sketch": [10, 0]}},
{"expect": {"dialog": "SketchModify(Move", "sketch_curves": {"own": 4}, "errors": 0}},
{"key": "Escape"},
{"expect": {"dialog": null, "errors": 0, "sketch_curves": {"own": 4}}},
{"expect": {"query": {"command": "sketch.inspect", "path": ["profiles", 0, "area_mm2"], "value": 200}}},
{"note": "Create Copy ticked: the rectangle is copied 30 mm along X, so the sketch holds eight curves and two profiles."},
{"start": "sketch.move"},
{"click": {"sketch": [10, 0]}},
{"click": {"sketch": [20, 5]}},
{"click": {"sketch": [10, 10]}},
{"click": {"sketch": [0, 5]}},
{"click": {"handle": "dialog:Create Copy"}},
{"click": {"handle": "dialog:X Distance"}},
{"key": "A", "cmd": true},
{"text": "30"},
{"key": "Enter"},
{"expect": {"dialog": null, "errors": 0, "sketch_curves": {"own": 8}}},
{"expect": {"query": {"command": "sketch.inspect", "path": ["profiles", 0, "area_mm2"], "value": 200}}},
{"expect": {"query": {"command": "sketch.inspect", "path": ["profiles", 1, "area_mm2"], "value": 200}}},
{"shot": "sketch_move_copy_window"},
{"note": "Create Copy cleared (the default): a plain move takes the copy with it and makes nothing new. Moving it 20 mm along Y leaves eight curves."},
{"start": "sketch.move"},
{"click": {"sketch": [40, 0]}},
{"click": {"sketch": [50, 5]}},
{"click": {"sketch": [40, 10]}},
{"click": {"sketch": [30, 5]}},
{"click": {"handle": "dialog:Y Distance"}},
{"key": "A", "cmd": true},
{"text": "20"},
{"key": "Enter"},
{"expect": {"dialog": null, "errors": 0, "sketch_curves": {"own": 8}}},
{"expect": {"query": {"command": "sketch.inspect", "path": ["profiles", 1, "area_mm2"], "value": 200}}},
{"shot": "sketch_move_window"},
{"note": "The X Distance also has an on-canvas drag arrow, along the sketch's own x axis, with its value box beside it. A factor has no length to drag, so Scale gets no arrow."},
{"start": "sketch.move"},
{"click": {"sketch": [40, 20]}},
{"expect": {"shown_handles": ["arrow"]}},
{"drag": [{"handle": "arrow"}, {"sketch": [70, 20]}]},
{"expect": {"dialog": "SketchModify(Move", "errors": 0}},
{"key": "Escape"},
{"expect": {"dialog": null, "errors": 0, "sketch_curves": {"own": 8}}},
{"note": "Starting the command again and pressing Escape leaves the document and the undo history untouched."},
{"start": "sketch.move"},
{"expect": {"dialog": "SketchModify(Move"}},
{"key": "Escape"},
{"expect": {"dialog": null, "errors": 0}}
]