Pattern and Mirror dialogs copy picked bodies, fillets included (#193)
With Object Type = Bodies, the Mirror, Rectangular Pattern and Circular
Pattern dialogs sent the feature that created each picked body
({"features": ["Extrude1"]}), so the copies replayed only that feature and
lost everything done to the body afterwards (a fillet, a chamfer, a cut).
They now send the bodies themselves ({"bodies": [...]}), which the commands
already support and the Path Pattern dialog already did. Picking Features
is unchanged.
Editing a body Mirror or Pattern from the timeline now reopens the dialog
with its bodies selected.
Copies made this way take the body-copy names ("Body1 (2)"), as the
commands already give; pattern_direction_edge now looks up "Body1 (3)".
Tests: UI scenarios mirror_body_keeps_fillets and pattern_body_keeps_fillets
(filleted cube, copy and edit through the dialogs); both fail without the
fix with the copies' sharp 8000 mm3 volume.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cab698bf12
commit
8eda982489
4 files changed
+72
-15
No files matched your search
@@ -0,0 +1,20 @@
|
||||
[
|
||||
{"note": "#193: copies of a body keep the fillets made after its extrude."},
|
||||
{"call": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}}},
|
||||
{"call": "engine.execute", "params": {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [20, 20]}}},
|
||||
{"call": "engine.execute", "params": {"command": "sketch.finish", "params": {}}},
|
||||
{"call": "engine.execute", "params": {"command": "solid.extrude", "params": {"distance": 20}}},
|
||||
{"call": "engine.execute", "params": {"command": "solid.fillet", "params": {"edges": [[0, 0, 10], [20, 0, 10], [0, 20, 10], [20, 20, 10]], "radius": 3}}},
|
||||
{"call": "ui.view", "params": {"view": "iso"}},
|
||||
{"expect": {"bodies": 1, "volume": [7845.39, 0.001]}},
|
||||
{"start": "solid.mirror"},
|
||||
{"click": {"world": [10, 10, 20]}},
|
||||
{"call": "ui.dialogInput", "params": {"index": 1}},
|
||||
{"click": {"plane": "YZ"}},
|
||||
{"key": "Enter"},
|
||||
{"expect": {"bodies": 2, "errors": 0, "dialog": null, "volume": [15690.78, 0.001]}},
|
||||
{"call": "ui.editFeature", "params": {"feature": "Mirror1"}},
|
||||
{"expect": {"dialog": "Mirror"}},
|
||||
{"key": "Enter"},
|
||||
{"expect": {"bodies": 2, "errors": 0, "dialog": null, "volume": [15690.78, 0.001]}}
|
||||
]
|
||||
@@ -0,0 +1,20 @@
|
||||
[
|
||||
{"note": "#193: copies of a body keep the fillets made after its extrude."},
|
||||
{"call": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}}},
|
||||
{"call": "engine.execute", "params": {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [20, 20]}}},
|
||||
{"call": "engine.execute", "params": {"command": "sketch.finish", "params": {}}},
|
||||
{"call": "engine.execute", "params": {"command": "solid.extrude", "params": {"distance": 20}}},
|
||||
{"call": "engine.execute", "params": {"command": "solid.fillet", "params": {"edges": [[0, 0, 10], [20, 0, 10], [0, 20, 10], [20, 20, 10]], "radius": 3}}},
|
||||
{"call": "ui.view", "params": {"view": "iso"}},
|
||||
{"expect": {"bodies": 1, "volume": [7845.39, 0.001]}},
|
||||
{"start": "solid.pattern.rectangular"},
|
||||
{"click": {"world": [10, 10, 20]}},
|
||||
{"call": "ui.dialogInput", "params": {"index": 1}},
|
||||
{"click": {"axis": "X"}},
|
||||
{"key": "Enter"},
|
||||
{"expect": {"bodies": 3, "errors": 0, "dialog": null, "volume": [23536.17, 0.001]}},
|
||||
{"call": "ui.editFeature", "params": {"feature": "RectangularPattern1"}},
|
||||
{"expect": {"dialog": "PatternRect"}},
|
||||
{"key": "Enter"},
|
||||
{"expect": {"bodies": 3, "errors": 0, "dialog": null, "volume": [23536.17, 0.001]}}
|
||||
]
|
||||
@@ -62,7 +62,7 @@
|
||||
{
|
||||
"expect": {
|
||||
"bbox": {
|
||||
"body": "Body3",
|
||||
"body": "Body1 (3)",
|
||||
"min": [
|
||||
40,
|
||||
0,
|
||||
|
||||
Reference in new issue
Block a user