[ {"note": "sketch.pattern.circular gets a tool window carrying Entities, Center, Quantity and Total angle. Its click flow sent a count hard-coded to 6 and never passed an angle at all."}, {"call": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}}}, {"call": "engine.execute", "params": {"command": "sketch.point", "params": {"point": [0, 0]}}}, {"call": "engine.execute", "params": {"command": "sketch.circle.center", "params": {"center": [30, 0], "radius": 10}}}, {"call": "ui.view", "params": {"view": "top"}}, {"expect": {"sketching": true, "sketch_curves": {"own": 1}, "errors": 0}}, {"note": "Starting the command opens the window and commits nothing. Picking the circle and the centre point still commits nothing."}, {"start": "sketch.pattern.circular"}, {"expect": {"dialog": "PatternCirc", "sketch_curves": {"own": 1}, "errors": 0}}, {"click": {"sketch": [40, 0]}}, {"click": {"handle": "dialog:Center"}}, {"click": {"sketch": [0, 0]}}, {"expect": {"dialog": "PatternCirc", "sketch_curves": {"own": 1}, "errors": 0}}, {"note": "A count of 4 over a total angle of 180 degrees: the old flow could only send 6 over the full turn. Four instances 60 degrees apart put the last one straight across the centre."}, {"click": {"handle": "dialog:Quantity"}}, {"key": "A", "cmd": true}, {"text": "4"}, {"click": {"handle": "dialog:Total angle"}}, {"key": "A", "cmd": true}, {"text": "180"}, {"click": {"handle": "dialog:OK"}}, {"expect": {"dialog": null, "errors": 0, "sketch_curves": {"own": 4}}}, {"note": "60 degrees around: 30 mm at 60 degrees is (15, 25.980762)."}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 1, "center_at", 0], "value": 15}}}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 1, "center_at", 1], "value": 25.980762113533157}}}, {"note": "180 degrees around: straight across the centre. The angle was applied, not ignored."}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 3, "center_at", 0], "value": -30}}}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 3, "center_at", 1], "value": 0}}}, {"shot": "sketch_pattern_circ_half_turn"}, {"note": "A full turn with a count that is not 6 either: four instances 90 degrees apart around a second centre. The half turn above reaches x = -30, and the second circle reaches y = 90, so refit before picking anything up there."}, {"call": "engine.execute", "params": {"command": "sketch.point", "params": {"point": [0, 60]}}}, {"call": "engine.execute", "params": {"command": "sketch.circle.center", "params": {"center": [0, 80], "radius": 10}}}, {"call": "ui.view", "params": {"view": "fit"}}, {"expect": {"sketch_curves": {"own": 5}, "errors": 0}}, {"start": "sketch.pattern.circular"}, {"click": {"sketch": [10, 80]}}, {"click": {"handle": "dialog:Center"}}, {"click": {"sketch": [0, 60]}}, {"click": {"handle": "dialog:Quantity"}}, {"key": "A", "cmd": true}, {"text": "4"}, {"click": {"handle": "dialog:OK"}}, {"expect": {"dialog": null, "errors": 0, "sketch_curves": {"own": 8}}}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 5, "center_at", 0], "value": -20}}}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 5, "center_at", 1], "value": 60}}}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 7, "center_at", 0], "value": 20}}}, {"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 7, "center_at", 1], "value": 60}}}, {"shot": "sketch_pattern_circ_full_turn"}, {"note": "Escape closes the window and leaves the sketch and its undo history exactly as they were."}, {"start": "sketch.pattern.circular"}, {"click": {"sketch": [10, 80]}}, {"expect": {"dialog": "PatternCirc"}}, {"key": "Escape"}, {"expect": {"dialog": null, "errors": 0, "sketch_curves": {"own": 8}}} ]