Command ids are SolveCraft's own: 173 ids that were another product's internal command ids become dotted, lower-case ids (<area>.<thing>[.<variant>]: solid.extrude, sketch.rectangle.two_point, sheet.flange, joint.drive, ...), in the registry, toolbar, dialogs, shortcuts, palette, control channel, MCP, examples, scenarios and docs

The old ids live only in crates/engine/src/legacy_ids.rs (the legacy migration table): find_command maps them, so old scripts, recipes and control calls keep working, and saved shortcuts, recent and pinned commands are migrated on load (designs store no command ids). Parity maps the observed catalog ids to ours through xtask/data/fusion-ids.tsv. The agent rule now reads: our own dotted id, never another product's. Cargo.toml's repository points at github.com/bherbruck/solvecraft.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
bherbruckandClaude Opus 5.5 committed 2026-10-09 12:17:23 +00:00
1 parent 740360d7c3
commit d10312b7fd
158 files changed
+3611 -3205

No files matched your search

@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -13,7 +13,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -40,7 +40,7 @@
}
},
{
"start": "SketchDimension"
"start": "sketch.dimension"
},
{
"click": {
@@ -77,7 +77,7 @@
}
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"expect": {
@@ -85,7 +85,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "20"
@@ -104,7 +104,7 @@
"shot": "s01_extrude"
},
{
"start": "FusionFilletEdgesCommand"
"start": "solid.fillet"
},
{
"click": {
@@ -145,7 +145,7 @@
"shot": "s01_fillet"
},
{
"start": "FusionShellBodyCommand"
"start": "solid.shell"
},
{
"click": {
@@ -173,7 +173,7 @@
"shot": "s01_shell"
},
{
"start": "FusionHoleCommand"
"start": "solid.hole"
},
{
"click": {
@@ -1,15 +1,15 @@
[
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XZ"}},
{"expect": {"sketching": true}},
{"start": "ShapeRectangleTwoPoint"},
{"start": "sketch.rectangle.two_point"},
{"click": {"sketch": [10, 0]}},
{"click": {"sketch": [20, 30]}},
{"key": "Escape"},
{"shot": "s02_sketch"},
{"start": "SketchStop"},
{"start": "sketch.finish"},
{"call": "ui.view", "params": {"view": "iso"}},
{"start": "Revolve"},
{"start": "solid.revolve"},
{"click": {"axis": "Z"}},
{"debug": 1},
{"key": "Enter"},
@@ -1,26 +1,26 @@
[
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"start": "ShapeRectangleTwoPoint"},
{"start": "sketch.rectangle.two_point"},
{"click": {"sketch": [0, 0]}},
{"click": {"sketch": [40, 30]}},
{"key": "Escape"},
{"start": "SketchStop"},
{"start": "sketch.finish"},
{"call": "ui.view", "params": {"view": "iso"}},
{"start": "Extrude"},
{"start": "solid.extrude"},
{"text": "20"},
{"key": "Enter"},
{"expect": {"bodies": 1, "volume": 24000}},
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"world": [20, 15, 20]}},
{"expect": {"sketching": true}},
{"start": "CircleCenterRadius"},
{"start": "sketch.circle.center"},
{"click": {"sketch": [20, 15]}},
{"click": {"sketch": [25, 15]}},
{"key": "Escape"},
{"shot": "s03_sketch_on_face"},
{"start": "SketchStop"},
{"start": "Extrude"},
{"start": "sketch.finish"},
{"start": "solid.extrude"},
{"click": {"world": [20, 15, 20]}},
{"debug": 1},
{"text": "-10"},
@@ -1,17 +1,17 @@
[
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"start": "CircleCenterRadius"},
{"start": "sketch.circle.center"},
{"click": {"sketch": [20, 10]}},
{"click": {"sketch": [25, 10]}},
{"key": "Escape"},
{"start": "SketchStop"},
{"start": "sketch.finish"},
{"call": "ui.view", "params": {"view": "iso"}},
{"start": "Extrude"},
{"start": "solid.extrude"},
{"text": "10"},
{"key": "Enter"},
{"expect": {"bodies": 1}},
{"start": "MirrorCommand"},
{"start": "solid.mirror"},
{"click": {"world": [20, 10, 10]}},
{"call": "ui.dialogInput", "params": {"index": 1}},
{"click": {"plane": "YZ"}},
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -30,7 +30,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -39,7 +39,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -30,7 +30,7 @@
"key": "Escape"
},
{
"start": "SketchDimension"
"start": "sketch.dimension"
},
{
"click": {
@@ -50,7 +50,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -59,7 +59,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -68,7 +68,7 @@
"key": "Enter"
},
{
"start": "FusionFilletEdgesCommand"
"start": "solid.fillet"
},
{
"click": {
@@ -130,7 +130,7 @@
"shot": "s06_edit_sketch"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"expect": {
@@ -1,12 +1,12 @@
[
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -14,7 +14,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -36,7 +36,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -45,7 +45,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -71,13 +71,13 @@
}
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -85,7 +85,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -107,7 +107,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -116,7 +116,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"click": {
@@ -140,7 +140,7 @@
}
},
{
"start": "JointAssembleCmdNew"
"start": "joint.create"
},
{
"click": {
@@ -205,7 +205,7 @@
}
},
{
"start": "FusionMoveJointsCommand"
"start": "joint.drive"
},
{
"text": "90"
@@ -6,7 +6,7 @@
}
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -14,7 +14,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -36,7 +36,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -45,7 +45,7 @@
}
},
{
"start": "FusionSheetMetalFlangeCommand"
"start": "sheet.flange"
},
{
"click": {
@@ -75,7 +75,7 @@
"shot": "s08_base"
},
{
"start": "FusionSheetMetalFlangeCommand"
"start": "sheet.flange"
},
{
"click": {
@@ -100,7 +100,7 @@
"shot": "s08_flange"
},
{
"start": "FusionSheetMetalFlatPatternCmd"
"start": "sheet.flat_pattern"
},
{
"widget": "Export DXF\u2026"
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -30,10 +30,10 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "15"
@@ -99,7 +99,7 @@
}
},
{
"start": "FusionHoleCommand"
"start": "solid.hole"
},
{
"click": {
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -30,7 +30,7 @@
"key": "Escape"
},
{
"start": "SketchDimension"
"start": "sketch.dimension"
},
{
"click": {
@@ -50,10 +50,10 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -67,7 +67,7 @@
}
},
{
"start": "ChangeParameterCommand"
"start": "parameters.change"
},
{
"shot": "s10_params"
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "DrawPolyline"
"start": "sketch.line"
},
{
"click": {
@@ -63,7 +63,7 @@
}
},
{
"start": "CircleCenterRadius"
"start": "sketch.circle.center"
},
{
"click": {
@@ -85,7 +85,7 @@
"key": "Escape"
},
{
"start": "SketchDimension"
"start": "sketch.dimension"
},
{
"click": {
@@ -170,7 +170,7 @@
}
},
{
"start": "ConstraintFix"
"start": "sketch.constraint.fix"
},
{
"click": {
@@ -208,7 +208,7 @@
}
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"expect": {
@@ -1,17 +1,17 @@
[
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"start": "CircleCenterRadius"},
{"start": "sketch.circle.center"},
{"click": {"sketch": [10, 10]}},
{"click": {"sketch": [14, 10]}},
{"key": "Escape"},
{"start": "SketchStop"},
{"start": "sketch.finish"},
{"call": "ui.view", "params": {"view": "iso"}},
{"start": "Extrude"},
{"start": "solid.extrude"},
{"text": "8"},
{"key": "Enter"},
{"expect": {"bodies": 1}},
{"start": "PatternRectangular"},
{"start": "solid.pattern.rectangular"},
{"click": {"world": [10, 10, 8]}},
{"call": "ui.dialogInput", "params": {"index": 1}},
{"click": {"axis": "X"}},
@@ -6,7 +6,7 @@
}
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -14,7 +14,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -36,7 +36,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -45,7 +45,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "30"
@@ -60,7 +60,7 @@
}
},
{
"start": "FusionShellBodyCommand"
"start": "solid.shell"
},
{
"click": {
@@ -98,7 +98,7 @@
}
},
{
"start": "FusionBossCommand"
"start": "plastic.boss"
},
{
"click": {
@@ -126,7 +126,7 @@
"shot": "s13_boss"
},
{
"start": "FusionLipCommand"
"start": "plastic.lip"
},
{
"click": {
@@ -160,7 +160,7 @@
}
},
{
"start": "FusionSnapFitCommand"
"start": "plastic.snap_fit"
},
{
"click": {
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -30,7 +30,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -39,7 +39,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -5,7 +5,7 @@
{"until": {"home": false}},
{"expect": {"errors": 0, "bodies": 1, "name": "Sample Plate", "param": {"width": 80}}},
{"shot": "s15_sample"},
{"start": "ChangeParameterCommand"},
{"start": "parameters.change"},
{"widget": "80 mm"},
{"key": "A", "cmd": true},
{"text": "100 mm"},
@@ -1,25 +1,25 @@
[
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"start": "ShapeRectangleTwoPoint"},
{"start": "sketch.rectangle.two_point"},
{"click": {"sketch": [0, 0]}},
{"click": {"sketch": [30, 20]}},
{"key": "Escape"},
{"start": "SketchStop"},
{"start": "Extrude"},
{"start": "sketch.finish"},
{"start": "solid.extrude"},
{"text": "10"},
{"key": "Enter"},
{"expect": {"bodies": 1, "volume": 6000, "documents": 1}},
{"key": "N", "cmd": true},
{"expect": {"bodies": 0, "documents": 2, "features": 0}},
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"start": "CircleCenterRadius"},
{"start": "sketch.circle.center"},
{"click": {"sketch": [0, 0]}},
{"click": {"sketch": [10, 0]}},
{"key": "Escape"},
{"start": "SketchStop"},
{"start": "Extrude"},
{"start": "sketch.finish"},
{"start": "solid.extrude"},
{"text": "5"},
{"key": "Enter"},
{"expect": {"bodies": 1, "volume": [1570.8, 1e-3]}},
@@ -19,7 +19,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -30,7 +30,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -39,7 +39,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "15"
@@ -48,7 +48,7 @@
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -74,7 +74,7 @@
}
},
{
"start": "DrawPolyline"
"start": "sketch.line"
},
{
"click": {
@@ -126,10 +126,10 @@
}
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "PrimitivePipe"
"start": "solid.pipe"
},
{
"click": {
@@ -6,7 +6,7 @@
"choose_file": "pic.png"
},
{
"start": "FusionAddCanvasCommand"
"start": "canvas.insert"
},
{
"click": {
@@ -1,12 +1,12 @@
[
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -14,7 +14,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -36,7 +36,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -45,7 +45,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -71,13 +71,13 @@
}
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -85,7 +85,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -107,7 +107,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -116,7 +116,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"click": {
@@ -140,7 +140,7 @@
}
},
{
"start": "JointAssembleCmdNew"
"start": "joint.create"
},
{
"click": {
@@ -185,7 +185,7 @@
}
},
{
"start": "FusionHalfSectionViewCommand"
"start": "inspect.section"
},
{
"click": {
@@ -205,7 +205,7 @@
"shot": "s20_section"
},
{
"start": "FusionMoveJointsCommand"
"start": "joint.drive"
},
{
"text": "90"
@@ -1,6 +1,6 @@
[
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -8,7 +8,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -30,10 +30,10 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -1,6 +1,6 @@
[
{
"note": "Target: sheet metal plate folded along a sketch line (SheetMetalFoldCmd, solvecraft-params; dialog by solvecraft-dialogs). Adjust the dialog steps when it lands."
"note": "Target: sheet metal plate folded along a sketch line (sheet.fold, solvecraft-params; dialog by solvecraft-dialogs). Adjust the dialog steps when it lands."
},
{
"call": "ui.set",
@@ -9,7 +9,7 @@
}
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -17,7 +17,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -39,7 +39,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -48,7 +48,7 @@
}
},
{
"start": "FusionSheetMetalFlangeCommand"
"start": "sheet.flange"
},
{
"click": {
@@ -69,7 +69,7 @@
}
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -81,7 +81,7 @@
}
},
{
"start": "DrawPolyline"
"start": "sketch.line"
},
{
"click": {
@@ -106,10 +106,10 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "SheetMetalFoldCmd"
"start": "sheet.fold"
},
{
"click": {
@@ -139,7 +139,7 @@
"shot": "s22_folded"
},
{
"start": "FusionSheetMetalFlatPatternCmd"
"start": "sheet.flat_pattern"
},
{
"widget": "Export DXF\u2026"
@@ -1,9 +1,9 @@
[
{
"note": "Configurations: a parameter column (d1) in the configuration table switches the design (FusionStartDesignConfigModeCmd)."
"note": "Configurations: a parameter column (d1) in the configuration table switches the design (config.configure)."
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -11,7 +11,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -33,7 +33,7 @@
"key": "Escape"
},
{
"start": "SketchDimension"
"start": "sketch.dimension"
},
{
"click": {
@@ -53,10 +53,10 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -70,7 +70,7 @@
}
},
{
"start": "FusionStartDesignConfigModeCmd"
"start": "config.configure"
},
{
"widget": "Add Column"
@@ -1,15 +1,15 @@
[
{
"note": "Motion study: key a revolute joint and play it (FusionMotionStudyCommand, motion.play)."
"note": "Motion study: key a revolute joint and play it (motion.study, motion.play)."
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -17,7 +17,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -39,7 +39,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -48,7 +48,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -74,13 +74,13 @@
}
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -88,7 +88,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -110,7 +110,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -119,7 +119,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"click": {
@@ -137,7 +137,7 @@
"key": "Enter"
},
{
"start": "JointAssembleCmdNew"
"start": "joint.create"
},
{
"click": {
@@ -167,7 +167,7 @@
"widget": "OK"
},
{
"start": "FusionMotionStudyCommand"
"start": "motion.study"
},
{
"widget": "Add Key"
@@ -6,7 +6,7 @@
"autosave": true
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -14,7 +14,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -36,10 +36,10 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -1,12 +1,12 @@
[
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -14,7 +14,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -36,7 +36,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -45,7 +45,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -71,13 +71,13 @@
}
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -85,7 +85,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -107,7 +107,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -116,7 +116,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"click": {
@@ -140,7 +140,7 @@
}
},
{
"start": "JointAssembleCmdNew"
"start": "joint.create"
},
{
"click": {
@@ -188,7 +188,7 @@
}
},
{
"start": "FusionMoveJointsCommand"
"start": "joint.drive"
},
{
"text": "45"
@@ -214,7 +214,7 @@
}
},
{
"start": "FusionMoveJointsCommand"
"start": "joint.drive"
},
{
"text": "-30 deg"
@@ -1,17 +1,17 @@
[
{"note": "Move opens with nothing moved; the triad's X arrow moves +20 X only; a ring turns 90 degrees"},
{"call": "engine.execute", "params": {"command": "PrimitiveBox", "params": {"length": 20, "width": 30, "height": 10}}},
{"call": "engine.execute", "params": {"command": "solid.box", "params": {"length": 20, "width": 30, "height": 10}}},
{"call": "ui.view", "params": {"view": "iso"}},
{"start": "FusionMoveCommand"},
{"start": "solid.move"},
{"click": {"world": [10, 15, 10]}},
{"key": "Enter"},
{"expect": {"errors": 0, "dialog": null, "bbox": {"body": "Body1", "min": [0, 0, 0], "max": [20, 30, 10]}}},
{"start": "FusionMoveCommand"},
{"start": "solid.move"},
{"click": {"world": [10, 15, 10]}},
{"drag": [{"gizmo": "x"}, {"gizmo": "x", "by": [20, 0, 0]}]},
{"key": "Enter"},
{"expect": {"errors": 0, "dialog": null, "bbox": {"body": "Body1", "min": [20, 0, 0], "max": [40, 30, 10]}}},
{"start": "FusionMoveCommand"},
{"start": "solid.move"},
{"click": {"world": [30, 15, 10]}},
{"drag": [{"gizmo": "rz", "turn": 60}, {"gizmo": "rz", "turn": 150}], "steps": 12},
{"key": "Enter"},
@@ -3,7 +3,7 @@
"note": "Pattern a hole (Object Type: Features), the beginner workflow box \u2192 hole \u2192 pattern."
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -11,7 +11,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -33,7 +33,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -42,7 +42,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "15"
@@ -56,7 +56,7 @@
}
},
{
"start": "FusionHoleCommand"
"start": "solid.hole"
},
{
"click": {
@@ -85,7 +85,7 @@
}
},
{
"start": "PatternRectangular"
"start": "solid.pattern.rectangular"
},
{
"widget": "Bodies"
@@ -3,7 +3,7 @@
"note": "User bug 1 (owner solvecraft-sketch): Create Sketch on a body face projects the face's loops as reference geometry (linked), with no big square of real lines, and the face stays pickable for Project."
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -11,7 +11,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -33,7 +33,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -42,7 +42,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "15"
@@ -51,7 +51,7 @@
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -79,7 +79,7 @@
"shot": "s26_face_sketch"
},
{
"start": "ProjectNewCmd"
"start": "sketch.project"
},
{
"click": {
@@ -102,7 +102,7 @@
}
},
{
"start": "CircleCenterRadius"
"start": "sketch.circle.center"
},
{
"click": {
@@ -131,7 +131,7 @@
}
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"expect": {
@@ -3,13 +3,13 @@
"note": "User bug 2 (owner solvecraft-params): with two components, a cut made in the active one leaves the other untouched."
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -17,7 +17,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -39,7 +39,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -48,7 +48,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -74,13 +74,13 @@
}
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -88,7 +88,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -110,7 +110,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -119,7 +119,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "20"
@@ -154,7 +154,7 @@
}
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -173,7 +173,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -202,10 +202,10 @@
}
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"widget": "New Body"
@@ -1,14 +1,14 @@
[
{"note": "User bug 3 (owner solvecraft-ui): Move opens at 0, and dragging its X arrow moves only along X. The X arrow must be published as handle move_x (scenario::publish_handle)."},
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"start": "ShapeRectangleTwoPoint"},
{"start": "sketch.rectangle.two_point"},
{"click": {"sketch": [0, 0]}},
{"click": {"sketch": [20, 20]}},
{"key": "Escape"},
{"start": "SketchStop"},
{"start": "sketch.finish"},
{"call": "ui.view", "params": {"view": "iso"}},
{"start": "Extrude"},
{"start": "solid.extrude"},
{"text": "10"},
{"key": "Enter"},
{"call": "ui.menu", "params": {"x": 100, "y": 250, "target": {"type": "body", "name": "Body1"}}},
@@ -3,13 +3,13 @@
"note": "User bug 4 (owner solvecraft-repo): moving a component carries its sketches, and a sketch on a body face follows the body."
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -17,7 +17,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -39,7 +39,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -48,7 +48,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -57,7 +57,7 @@
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -69,7 +69,7 @@
}
},
{
"start": "CircleCenterRadius"
"start": "sketch.circle.center"
},
{
"click": {
@@ -91,7 +91,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"expect": {
@@ -1,15 +1,15 @@
[
{"note": "Construction mode like Fusion: with nothing selected, X (or the palette's Construction linetype) makes new curves construction until switched back; with a selection X converts it."},
{"start": "SketchCreate"},
{"start": "sketch.create"},
{"click": {"plane": "XY"}},
{"expect": {"dialog": null}},
{"key": "X"},
{"expect": {"tool": null}},
{"start": "ShapeRectangleTwoPoint"},
{"start": "sketch.rectangle.two_point"},
{"click": {"sketch": [0, 0]}},
{"click": {"sketch": [30, 20]}},
{"key": "Escape"},
{"start": "CircleCenterRadius"},
{"start": "sketch.circle.center"},
{"click": {"sketch": [15, 10]}},
{"click": {"sketch": [20, 10]}},
{"key": "Escape"},
@@ -21,13 +21,13 @@
{"key": "Y", "cmd": true},
{"shot": "s35_construction_mode"},
{"widget": "—"},
{"start": "CircleCenterRadius"},
{"start": "sketch.circle.center"},
{"click": {"sketch": [40, 10]}},
{"click": {"sketch": [45, 10]}},
{"key": "Escape"},
{"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 5, "construction"], "value": false}}},
{"widget": "- -"},
{"start": "DrawPolyline"},
{"start": "sketch.line"},
{"click": {"sketch": [0, 30]}},
{"click": {"sketch": [30, 30]}},
{"key": "Escape"},
@@ -38,7 +38,7 @@
{"key": "X"},
{"expect": {"query": {"command": "sketch.inspect", "path": ["curves", 5, "construction"], "value": true}}},
{"key": "Escape"},
{"start": "DrawPolyline"},
{"start": "sketch.line"},
{"click": {"sketch": [0, 40]}},
{"click": {"sketch": [30, 40]}},
{"key": "Escape"},
@@ -8,7 +8,7 @@
}
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"expect": {
@@ -34,7 +34,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"expect": {
@@ -61,7 +61,7 @@
"key": "Escape"
},
{
"start": "ChangeParameterCommand"
"start": "parameters.change"
},
{
"widget": "Close window"
@@ -6,13 +6,13 @@
"note": "Browser chevrons expand and collapse every kind of node (folders, components, groups, the origin, named views, document settings). Model: two components with a body each, a joint, a sketch, an offset plane, a named view."
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -20,7 +20,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -42,7 +42,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -51,7 +51,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"text": "10"
@@ -77,13 +77,13 @@
}
},
{
"start": "FusionCreateNewComponentCommand"
"start": "component.create"
},
{
"key": "Enter"
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -91,7 +91,7 @@
}
},
{
"start": "ShapeRectangleTwoPoint"
"start": "sketch.rectangle.two_point"
},
{
"click": {
@@ -113,7 +113,7 @@
"key": "Escape"
},
{
"start": "SketchStop"
"start": "sketch.finish"
},
{
"call": "ui.view",
@@ -122,7 +122,7 @@
}
},
{
"start": "Extrude"
"start": "solid.extrude"
},
{
"click": {
@@ -146,7 +146,7 @@
}
},
{
"start": "JointAssembleCmdNew"
"start": "joint.create"
},
{
"click": {
@@ -178,7 +178,7 @@
{
"call": "engine.execute",
"params": {
"command": "ConstructionPlaneOffsetFromPlaneCommand",
"command": "construct.plane.offset",
"params": {
"base": "XY",
"offset": 30
@@ -6,7 +6,7 @@
"note": "Animating to Top or Bottom from iso, front or any orbit turns the view smoothly to the end: no frame (the last included) turns it more than 10 degrees."
},
{
"start": "PrimitiveBox"
"start": "solid.box"
},
{
"key": "Escape"
@@ -18,11 +18,11 @@
{
"expect": {
"shown_handles": [
"toolbar:Extrude",
"toolbar:Revolve"
"toolbar:solid.extrude",
"toolbar:solid.revolve"
],
"hidden_handles": [
"toolbar:FusionShellBodyCommand"
"toolbar:solid.shell"
]
}
},
@@ -33,7 +33,7 @@
"y": 80,
"target": {
"type": "toolbar_command",
"id": "FusionShellBodyCommand"
"id": "solid.shell"
}
}
},
@@ -46,7 +46,7 @@
{
"expect": {
"shown_handles": [
"toolbar:FusionShellBodyCommand"
"toolbar:solid.shell"
]
}
},
@@ -57,7 +57,7 @@
"y": 80,
"target": {
"type": "toolbar_command",
"id": "Revolve"
"id": "solid.revolve"
}
}
},
@@ -70,17 +70,17 @@
{
"expect": {
"hidden_handles": [
"toolbar:Revolve"
"toolbar:solid.revolve"
]
}
},
{
"drag": [
{
"handle": "toolbar:FusionShellBodyCommand"
"handle": "toolbar:solid.shell"
},
{
"handle": "toolbar:Extrude"
"handle": "toolbar:solid.extrude"
}
],
"steps": 12
@@ -88,8 +88,8 @@
{
"expect": {
"handle_order": [
"toolbar:FusionShellBodyCommand",
"toolbar:Extrude"
"toolbar:solid.shell",
"toolbar:solid.extrude"
]
}
},
@@ -99,18 +99,18 @@
{
"expect": {
"shown_handles": [
"toolbar:FusionShellBodyCommand"
"toolbar:solid.shell"
],
"hidden_handles": [
"toolbar:Revolve"
"toolbar:solid.revolve"
]
}
},
{
"expect": {
"handle_order": [
"toolbar:FusionShellBodyCommand",
"toolbar:Extrude"
"toolbar:solid.shell",
"toolbar:solid.extrude"
]
}
},
@@ -1,12 +1,12 @@
[
{"note": "Like Fusion, typing a number after picking the geometry goes into the dialog's heads-up value: Fillet after picking an edge, as Hole after picking a face and Extrude after opening do today."},
{"start": "SketchCreate"}, {"click": {"plane": "XY"}},
{"start": "ShapeRectangleTwoPoint"}, {"click": {"sketch": [0, 0]}}, {"click": {"sketch": [60, 40]}}, {"key": "Escape"},
{"start": "SketchStop"},
{"start": "sketch.create"}, {"click": {"plane": "XY"}},
{"start": "sketch.rectangle.two_point"}, {"click": {"sketch": [0, 0]}}, {"click": {"sketch": [60, 40]}}, {"key": "Escape"},
{"start": "sketch.finish"},
{"call": "ui.view", "params": {"view": "home"}},
{"start": "Extrude"}, {"text": "15"}, {"key": "Enter"},
{"start": "solid.extrude"}, {"text": "15"}, {"key": "Enter"},
{"expect": {"volume": 36000}},
{"start": "FusionFilletEdgesCommand"},
{"start": "solid.fillet"},
{"click": {"world": [30, 0, 15]}},
{"text": "3"},
{"key": "Enter"},
@@ -3,7 +3,7 @@
"note": "Dragging sketch geometry snaps like Fusion: onto a point (coincident on release), level with a point (a dashed guide, no constraint), not at all with Ctrl held; a line dragged by its body snaps by its ends."
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
@@ -13,7 +13,7 @@
{
"call": "engine.execute",
"params": {
"command": "DrawPolyline",
"command": "sketch.line",
"params": {
"points": [
[
@@ -31,7 +31,7 @@
{
"call": "engine.execute",
"params": {
"command": "DrawPolyline",
"command": "sketch.line",
"params": {
"points": [
[
@@ -230,7 +230,7 @@
{
"call": "engine.execute",
"params": {
"command": "DrawPolyline",
"command": "sketch.line",
"params": {
"points": [
[
@@ -8,14 +8,14 @@
{
"call": "engine.execute",
"params": {
"command": "FusionCreateNewComponentCommand",
"command": "component.create",
"params": {}
}
},
{
"call": "engine.execute",
"params": {
"command": "PrimitiveBox",
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
@@ -75,7 +75,7 @@
}
},
{
"start": "SketchCreate"
"start": "sketch.create"
},
{
"click": {
+4 -4
View File
@@ -9,10 +9,10 @@ use solvecraft_ui_egui::scenario::{Harness, check};
fn harness() -> Harness {
let mut h = Harness::new();
for (id, p) in [
("SketchCreate", json!({"plane": "XY"})),
("ShapeRectangleTwoPoint", json!({"p0": [0, 0], "p1": [40, 30]})),
("SketchStop", json!({})),
("Extrude", json!({"distance": 10})),
("sketch.create", json!({"plane": "XY"})),
("sketch.rectangle.two_point", json!({"p0": [0, 0], "p1": [40, 30]})),
("sketch.finish", json!({})),
("solid.extrude", json!({"distance": 10})),
] {
h.call("engine.execute", json!({"command": id, "params": p}));
}
+2 -2
View File
@@ -19,7 +19,7 @@ fn window_widths(h: &Harness) -> Vec<(String, f32)> {
fn fresh() -> Harness {
let mut h = Harness::new();
h.call("engine.execute", json!({"command": "PrimitiveBox", "params": {"length": 40, "width": 30, "height": 20}}));
h.call("engine.execute", json!({"command": "solid.box", "params": {"length": 40, "width": 30, "height": 20}}));
h.frames(3);
h
}
@@ -65,7 +65,7 @@ fn command_dialogs_shrink_to_their_content_within_limits() {
fn common_dialogs_are_not_stretched() {
// Simple dialogs have room to spare: they must not be pushed out to the maximum.
let mut h = fresh();
for id in ["Extrude", "FusionFilletEdgesCommand", "FusionShellBodyCommand", "FusionMoveCommand", "FusionHoleCommand"] {
for id in ["solid.extrude", "solid.fillet", "solid.shell", "solid.move", "solid.hole"] {
h.call("ui.start", json!({"command": id}));
h.frames(6);
let w: f32 = window_widths(&h).iter().map(|x| x.1).fold(0.0, f32::max);