feat: strengthen modeling, configuration, and assembly workflows

Preserve linked sketch identities through deterministic face projection and resizing. Fix origin-corner picking, persistent inline navigation, appearance editing, configuration styles, component properties, contact sweeps, sheet exports, analytic STEP offsets, and bounded rolling-ball fit accuracy.

Validated with full cargo xtask ci, native workflow screenshots, repeated enclosure replays, and analytic geometry regressions.
This commit is contained in:
bherbruck committed 2026-10-11 00:37:26 -04:00
1 parent 22672585c9
commit d71bdb78ec
54 files changed
+4179 -316

No files matched your search

@@ -110,7 +110,15 @@
"file": "Untitled-Body1.dxf"
}
},
{
"widget": "Export Bend Table\u2026"
},
{
"expect": {
"file": "Untitled-Body1.csv"
}
},
{
"shot": "s08_flat"
}
]
]
@@ -78,14 +78,10 @@
},
{
"expect": {
"sketch_world": {
"sketch": "Sketch1",
"point": "p1",
"at": [
140,
0,
20
]
"linked_world_range": {
"x": [100, 140],
"y": [0, 30],
"z": [20, 20]
}
}
},
@@ -100,4 +96,4 @@
"errors": 0
}
}
]
]
@@ -0,0 +1,17 @@
[
{"note": "Appearance from the Browser targets its body, filters library names, and removal survives OK and can be undone."},
{"call": "engine.execute", "params": {"command": "solid.box", "params": {"length": 30, "width": 20, "height": 10}}},
{"call": "engine.execute", "params": {"command": "appearance.assign", "params": {"bodies": ["Body1"], "color": "#abcdef", "appearance": "Tinted glass", "opacity": 0.25}}},
{"call": "ui.menu", "params": {"x": 300, "y": 300, "target": {"type": "body", "name": "Body1"}}},
{"call": "ui.menuPick", "params": {"item": "Appearance"}},
{"expect": {"dialog": "Appearance", "shown": "Remove override"}},
{"click": {"handle": "appearance:search"}},
{"text": "no-such-appearance"},
{"expect": {"shown": "No matching appearances"}},
{"shot": "appearance_library_search"},
{"widget": "Remove override"},
{"widget": "OK"},
{"expect": {"dialog": null, "query": {"command": "appearance.list", "path": ["bodies"], "value": {}}}},
{"call": "engine.execute", "params": {"command": "edit.undo", "params": {}}},
{"expect": {"query": {"command": "appearance.list", "path": ["bodies", "Body1", "opacity"], "value": 0.25}}}
]
@@ -0,0 +1,21 @@
[
{"note":"Configure a body's appearance in the table, apply the edited active row, and render the result."},
{"call":"engine.execute","params":{"command":"solid.box","params":{"length":40,"width":20,"height":10,"body_name":"Block"}}},
{"call":"engine.execute","params":{"command":"material.assign","params":{"bodies":["Block"],"material":"Steel"}}},
{"start":"config.table"},
{"widget":"Add Column"},
{"widget":"Block (appearance)"},
{"expect":{"shown":"Appearance: Block"}},
{"widget":"Library"},
{"widget":"ABS - Red"},
{"widget":"Apply"},
{"shot":"configuration_red"},
{"expect":{"errors":0,"bodies":1,"query":{"command":"appearance.list","path":["bodies","Block","color"],"value":"#c42828"}}},
{"widget":"Library"},
{"widget":"Follow material"},
{"widget":"Apply"},
{"shot":"configuration_default"},
{"expect":{"errors":0,"bodies":1,"query":{"command":"appearance.list","path":["bodies","Block"],"value":null}}},
{"expect":{"query":{"command":"appearance.list","params":{"body":"Block"},"path":["body","appearance","name"],"value":"Steel"}}},
{"expect":{"query":{"command":"config.table","path":["matches"],"value":true}}}
]