UI scenarios: the user's four open bugs as ignored targets (s31 sketch on a face projects its loops, s32 a cut in the active component leaves others alone, s33 Move opens at 0 and its X arrow moves along X, s34 moving a component carries its sketches); Fold, configurations, motion study and autosave/recovery enabled against the landed features (s22–s25); retests: fillets follow their edge after a sketch edit (s06 volume, s15 widens the sample plate), one canvas panel (s19); s30 patterns a hole as a feature (ignored: one hole results). Harness: manipulator handles published by name (scenario::publish_handle; ui.at {handle}; timeline items as timeline:<name>), restart after a crash or close, autosave into the scenario's folder, exact widget text before menu-label prefixes, checks for sketch curves, body volume and sketch points in the world
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
1 parent
0a1b6f0fff
commit
59b59a83e6
18 files changed
+1328
-117
No files matched your search
@@ -47,11 +47,12 @@ scenarios!(
|
||||
s26_drive_joint_typed,
|
||||
s22_sheet_metal_fold,
|
||||
s23_configurations,
|
||||
s24_motion_study
|
||||
s24_motion_study,
|
||||
s25_autosave_recovery
|
||||
);
|
||||
|
||||
/// Scenarios written ahead of their features (the commands are in solvecraft-params' unpushed
|
||||
/// work, their dialogs follow): run with `--ignored`, enabled once the features land.
|
||||
/// Scenarios written ahead of their fixes or features (the user's open bugs): run with
|
||||
/// `--ignored`; each moves to the list above once its fix lands.
|
||||
macro_rules! pending {
|
||||
($($name:ident: $why:literal),* $(,)?) => {
|
||||
$(#[test]
|
||||
@@ -63,5 +64,9 @@ macro_rules! pending {
|
||||
}
|
||||
|
||||
pending!(
|
||||
s25_autosave_recovery: "waits for autosave and Recover unsaved design",
|
||||
s31_sketch_on_face_projects: "user bug: a sketch on a face projects its loops as reference (solvecraft-sketch)",
|
||||
s32_cut_in_active_component: "user bug: a cut in the active component leaves others alone (solvecraft-params)",
|
||||
s33_move_x_arrow: "user bug: Move opens at 0 and its X arrow moves along X only (solvecraft-ui)",
|
||||
s34_component_move_carries_sketches: "user bug: moving a component carries its sketches (solvecraft-repo)",
|
||||
s30_pattern_a_hole: "a hole patterned as a feature gives one hole, not three (solvecraft-ui)",
|
||||
);
|
||||
@@ -136,7 +136,11 @@
|
||||
"expect": {
|
||||
"sketching": false,
|
||||
"errors": 0,
|
||||
"bodies": 1
|
||||
"bodies": 1,
|
||||
"volume": [
|
||||
17974.25,
|
||||
1e-05
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
{"expect": {"errors": 0, "bodies": 1, "name": "Sample Plate", "param": {"width": 80}}},
|
||||
{"shot": "s15_sample"},
|
||||
{"start": "ChangeParameterCommand"},
|
||||
{"widget": "8 mm"},
|
||||
{"widget": "80 mm"},
|
||||
{"key": "A", "cmd": true},
|
||||
{"text": "10 mm"},
|
||||
{"text": "100 mm"},
|
||||
{"key": "Enter"},
|
||||
{"widget": "Close window"},
|
||||
{"expect": {"param": {"thickness": 10}, "errors": 0}},
|
||||
{"expect": {"param": {"width": 100}, "errors": 0}},
|
||||
{"key": "S", "cmd": true},
|
||||
{"expect": {"file": "Sample Plate.solvecraft"}},
|
||||
{"key": "N", "cmd": true},
|
||||
@@ -19,6 +19,6 @@
|
||||
{"choose_file": "Sample Plate.solvecraft"},
|
||||
{"key": "O", "cmd": true},
|
||||
{"debug": 1},
|
||||
{"expect": {"bodies": 1, "errors": 0, "param": {"thickness": 10}}},
|
||||
{"expect": {"bodies": 1, "errors": 0, "param": {"width": 100}}},
|
||||
{"shot": "s15_reopened"}
|
||||
]
|
||||
@@ -1,32 +1,126 @@
|
||||
[
|
||||
{"note": "Target: a configuration table switches the design (FusionStartDesignConfigModeCmd, config.row/column/activate by solvecraft-params; panel by solvecraft-dialogs). Adjust the panel steps when it lands."},
|
||||
{"start": "SketchCreate"},
|
||||
{"click": {"plane": "XY"}},
|
||||
{"start": "ShapeRectangleTwoPoint"},
|
||||
{"click": {"sketch": [0, 0]}},
|
||||
{"click": {"sketch": [40, 20]}},
|
||||
{"key": "Escape"},
|
||||
{"start": "SketchDimension"},
|
||||
{"click": {"sketch": [20, 0]}},
|
||||
{"text": "40"},
|
||||
{"key": "Enter"},
|
||||
{"key": "Escape"},
|
||||
{"start": "SketchStop"},
|
||||
{"start": "Extrude"},
|
||||
{"text": "10"},
|
||||
{"key": "Enter"},
|
||||
{"expect": {"volume": 8000}},
|
||||
{"start": "FusionStartDesignConfigModeCmd"},
|
||||
{"widget": "Add Column"},
|
||||
{"widget": "d1"},
|
||||
{"widget": "Add Row"},
|
||||
{"widget": "40 mm", "near": "Configuration2"},
|
||||
{"key": "A", "cmd": true},
|
||||
{"text": "60 mm"},
|
||||
{"key": "Enter"},
|
||||
{"widget": "Activate", "near": "Configuration2"},
|
||||
{"expect": {"param": {"d1": 60}, "volume": 12000, "errors": 0}},
|
||||
{"widget": "Activate", "near": "Default"},
|
||||
{"expect": {"param": {"d1": 40}, "volume": 8000}},
|
||||
{"shot": "s23_configs"}
|
||||
]
|
||||
{
|
||||
"note": "Configurations: a parameter column (d1) in the configuration table switches the design (FusionStartDesignConfigModeCmd)."
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
40,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchDimension"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
20,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "40"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "10"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"volume": 8000
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "FusionStartDesignConfigModeCmd"
|
||||
},
|
||||
{
|
||||
"widget": "Add Column"
|
||||
},
|
||||
{
|
||||
"widget": "d1"
|
||||
},
|
||||
{
|
||||
"widget": "Add Row"
|
||||
},
|
||||
{
|
||||
"widget": "40 mm",
|
||||
"near": "Configuration2"
|
||||
},
|
||||
{
|
||||
"key": "A",
|
||||
"cmd": true
|
||||
},
|
||||
{
|
||||
"text": "60 mm"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"widget": "Activate",
|
||||
"near": "Configuration2"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"param": {
|
||||
"d1": 60
|
||||
},
|
||||
"volume": 12000,
|
||||
"errors": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"widget": "Activate",
|
||||
"near": "Default"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"param": {
|
||||
"d1": 40
|
||||
},
|
||||
"volume": 8000
|
||||
}
|
||||
},
|
||||
{
|
||||
"shot": "s23_configs"
|
||||
}
|
||||
]
|
||||
@@ -1,49 +1,226 @@
|
||||
[
|
||||
{"note": "Target: a motion study keys a revolute joint and plays it (FusionMotionStudyCommand, motion.play by solvecraft-params; dialog by solvecraft-dialogs). Starts like s07; adjust the study steps when the dialog lands."},
|
||||
{"start": "FusionCreateNewComponentCommand"},
|
||||
{"key": "Enter"},
|
||||
{"start": "SketchCreate"},
|
||||
{"click": {"plane": "XY"}},
|
||||
{"start": "ShapeRectangleTwoPoint"},
|
||||
{"click": {"sketch": [0, 0]}},
|
||||
{"click": {"sketch": [20, 20]}},
|
||||
{"key": "Escape"},
|
||||
{"start": "SketchStop"},
|
||||
{"call": "ui.view", "params": {"view": "iso"}},
|
||||
{"start": "Extrude"},
|
||||
{"text": "10"},
|
||||
{"key": "Enter"},
|
||||
{"call": "ui.menu", "params": {"x": 100, "y": 170, "target": {"type": "component", "id": 0}}},
|
||||
{"call": "ui.menuPick", "params": {"item": "Activate"}},
|
||||
{"start": "FusionCreateNewComponentCommand"},
|
||||
{"key": "Enter"},
|
||||
{"start": "SketchCreate"},
|
||||
{"click": {"plane": "XZ"}},
|
||||
{"start": "ShapeRectangleTwoPoint"},
|
||||
{"click": {"sketch": [30, 0]}},
|
||||
{"click": {"sketch": [50, 10]}},
|
||||
{"key": "Escape"},
|
||||
{"start": "SketchStop"},
|
||||
{"call": "ui.view", "params": {"view": "iso"}},
|
||||
{"start": "Extrude"},
|
||||
{"click": {"world": [40, 0, 5]}},
|
||||
{"text": "20"},
|
||||
{"key": "Enter"},
|
||||
{"start": "JointAssembleCmdNew"},
|
||||
{"click": {"world": [10, 10, 10]}},
|
||||
{"click": {"world": [40, -20, 5]}},
|
||||
{"widget": "Rigid"},
|
||||
{"widget": "Revolute"},
|
||||
{"widget": "OK"},
|
||||
{"start": "FusionMotionStudyCommand"},
|
||||
{"widget": "Add Key"},
|
||||
{"widget": "0 deg", "near": "Value"},
|
||||
{"key": "A", "cmd": true},
|
||||
{"text": "90"},
|
||||
{"key": "Enter"},
|
||||
{"widget": "OK"},
|
||||
{"expect": {"dialog": null, "errors": 0}},
|
||||
{"call": "engine.execute", "params": {"command": "motion.play", "params": {"study": 1, "step": 100}}},
|
||||
{"expect": {"query": {"command": "joint.list", "path": ["joints", 0, "values", 0, "value"], "value": 90}}},
|
||||
{"shot": "s24_motion_end"}
|
||||
]
|
||||
{
|
||||
"note": "Motion study: key a revolute joint and play it (FusionMotionStudyCommand, motion.play)."
|
||||
},
|
||||
{
|
||||
"start": "FusionCreateNewComponentCommand"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
20,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "10"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"call": "ui.menu",
|
||||
"params": {
|
||||
"x": 100,
|
||||
"y": 170,
|
||||
"target": {
|
||||
"type": "component",
|
||||
"id": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "ui.menuPick",
|
||||
"params": {
|
||||
"item": "Activate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "FusionCreateNewComponentCommand"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XZ"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
30,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
50,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"world": [
|
||||
40,
|
||||
0,
|
||||
5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "20"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "JointAssembleCmdNew"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"world": [
|
||||
10,
|
||||
10,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"world": [
|
||||
40,
|
||||
-20,
|
||||
5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"widget": "Rigid"
|
||||
},
|
||||
{
|
||||
"widget": "Revolute"
|
||||
},
|
||||
{
|
||||
"widget": "OK"
|
||||
},
|
||||
{
|
||||
"start": "FusionMotionStudyCommand"
|
||||
},
|
||||
{
|
||||
"widget": "Add Key"
|
||||
},
|
||||
{
|
||||
"widget": "0 deg",
|
||||
"near": "Value"
|
||||
},
|
||||
{
|
||||
"key": "A",
|
||||
"cmd": true
|
||||
},
|
||||
{
|
||||
"text": "90"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"widget": "OK"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"dialog": null,
|
||||
"errors": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "motion.play",
|
||||
"params": {
|
||||
"study": 1,
|
||||
"step": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"query": {
|
||||
"command": "joint.list",
|
||||
"path": [
|
||||
"joints",
|
||||
0,
|
||||
"values",
|
||||
0,
|
||||
"value"
|
||||
],
|
||||
"value": 90
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"shot": "s24_motion_end"
|
||||
}
|
||||
]
|
||||
@@ -1,17 +1,85 @@
|
||||
[
|
||||
{"note": "Target: unsaved work is autosaved and offered back after a crash (autosave, Recover unsaved design?, doc.recovery_list/doc.recover by solvecraft-params). The harness needs a 'restart' step (drop the app without saving, start a new one on the same recovery folder) once the recovery folder can be pointed at the scenario's folder."},
|
||||
{"start": "SketchCreate"},
|
||||
{"click": {"plane": "XY"}},
|
||||
{"start": "ShapeRectangleTwoPoint"},
|
||||
{"click": {"sketch": [0, 0]}},
|
||||
{"click": {"sketch": [30, 20]}},
|
||||
{"key": "Escape"},
|
||||
{"start": "SketchStop"},
|
||||
{"start": "Extrude"},
|
||||
{"text": "10"},
|
||||
{"key": "Enter"},
|
||||
{"expect": {"bodies": 1, "volume": 6000}},
|
||||
{"restart": "crash"},
|
||||
{"widget": "Recover"},
|
||||
{"expect": {"bodies": 1, "volume": 6000, "errors": 0}}
|
||||
]
|
||||
{
|
||||
"note": "Autosave and recovery: unsaved work is autosaved; after a crash the next launch offers it back."
|
||||
},
|
||||
{
|
||||
"autosave": true
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
30,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "10"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bodies": 1,
|
||||
"volume": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"restart": "crash"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bodies": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"widget": "Recover"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bodies": 1,
|
||||
"volume": 6000,
|
||||
"errors": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"restart": "close"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bodies": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"note": "a clean close leaves nothing to offer"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,142 @@
|
||||
[
|
||||
{
|
||||
"note": "Pattern a hole (Object Type: Features), the beginner workflow box \u2192 hole \u2192 pattern."
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
50,
|
||||
25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "15"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"volume": 18750
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "FusionHoleCommand"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"world": [
|
||||
10,
|
||||
12,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"dialog": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"volume": [
|
||||
18543.855,
|
||||
1e-05
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "PatternRectangular"
|
||||
},
|
||||
{
|
||||
"widget": "Bodies"
|
||||
},
|
||||
{
|
||||
"widget": "Features"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"handle": "timeline:Hole1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "ui.dialogInput",
|
||||
"params": {
|
||||
"index": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"axis": "X"
|
||||
}
|
||||
},
|
||||
{
|
||||
"widget": "20 mm",
|
||||
"near": "Spacing"
|
||||
},
|
||||
{
|
||||
"key": "A",
|
||||
"cmd": true
|
||||
},
|
||||
{
|
||||
"text": "15 mm"
|
||||
},
|
||||
{
|
||||
"key": "Tab"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"dialog": null,
|
||||
"volume": [
|
||||
18131.58,
|
||||
0.0001
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"shot": "s30_pattern"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,141 @@
|
||||
[
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
40,
|
||||
30
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "15"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"world": [
|
||||
20,
|
||||
15,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketching": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_curves": {
|
||||
"linked": 4,
|
||||
"own": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"shot": "s26_face_sketch"
|
||||
},
|
||||
{
|
||||
"start": "ProjectNewCmd"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"world": [
|
||||
5,
|
||||
5,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_curves": {
|
||||
"linked": 8,
|
||||
"own": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "CircleCenterRadius"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
20,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
25,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_curves": {
|
||||
"own": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,242 @@
|
||||
[
|
||||
{
|
||||
"note": "User bug 2 (owner solvecraft-params): with two components, a cut made in the active one leaves the other untouched."
|
||||
},
|
||||
{
|
||||
"start": "FusionCreateNewComponentCommand"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
0,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
40,
|
||||
30
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "10"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"call": "ui.menu",
|
||||
"params": {
|
||||
"x": 100,
|
||||
"y": 170,
|
||||
"target": {
|
||||
"type": "component",
|
||||
"id": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "ui.menuPick",
|
||||
"params": {
|
||||
"item": "Activate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "FusionCreateNewComponentCommand"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XZ"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
42,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
52,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "20"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bodies": 2,
|
||||
"body_volume": {
|
||||
"body": "Body1",
|
||||
"volume": 8000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"body_volume": {
|
||||
"body": "Body2",
|
||||
"volume": 2000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"note": "Component2 (Body2) is active: cut a slot across both boxes, sketched on XY seen from the top"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "top"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketching": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "top"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
30,
|
||||
-15
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
48,
|
||||
25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_curves": {
|
||||
"own": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"widget": "New Body"
|
||||
},
|
||||
{
|
||||
"widget": "Cut"
|
||||
},
|
||||
{
|
||||
"text": "10"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"body_volume": {
|
||||
"body": "Body1",
|
||||
"volume": 8000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"body_volume": {
|
||||
"body": "Body2",
|
||||
"volume": 1100
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"shot": "s27_cut"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,22 @@
|
||||
[
|
||||
{"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"},
|
||||
{"click": {"plane": "XY"}},
|
||||
{"start": "ShapeRectangleTwoPoint"},
|
||||
{"click": {"sketch": [0, 0]}},
|
||||
{"click": {"sketch": [20, 20]}},
|
||||
{"key": "Escape"},
|
||||
{"start": "SketchStop"},
|
||||
{"call": "ui.view", "params": {"view": "iso"}},
|
||||
{"start": "Extrude"},
|
||||
{"text": "10"},
|
||||
{"key": "Enter"},
|
||||
{"call": "ui.menu", "params": {"x": 100, "y": 250, "target": {"type": "body", "name": "Body1"}}},
|
||||
{"call": "ui.menuPick", "params": {"item": "Move/Copy"}},
|
||||
{"expect": {"dialog": "z: \"0 mm\""}},
|
||||
{"expect": {"dialog": "x: \"0 mm\""}},
|
||||
{"drag": [{"handle": "move_x"}, {"world": [30, 0, 10]}], "steps": 10},
|
||||
{"key": "Enter"},
|
||||
{"expect": {"errors": 0, "bbox": {"body": "Body1", "min": [null, 0, 0], "max": [null, 20, 10]}}},
|
||||
{"shot": "s28_moved"}
|
||||
]
|
||||
@@ -0,0 +1,202 @@
|
||||
[
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"plane": "XY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "ShapeRectangleTwoPoint"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
30,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "Extrude"
|
||||
},
|
||||
{
|
||||
"text": "10"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"start": "SketchCreate"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"world": [
|
||||
15,
|
||||
10,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": "CircleCenterRadius"
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
15,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"click": {
|
||||
"sketch": [
|
||||
18,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Escape"
|
||||
},
|
||||
{
|
||||
"start": "SketchStop"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_world": {
|
||||
"sketch": "Sketch2",
|
||||
"point": "c1.center",
|
||||
"at": [
|
||||
15,
|
||||
10,
|
||||
10
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_world": {
|
||||
"sketch": "Sketch1",
|
||||
"point": "p1",
|
||||
"at": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "ui.menu",
|
||||
"params": {
|
||||
"x": 100,
|
||||
"y": 170,
|
||||
"target": {
|
||||
"type": "component",
|
||||
"id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "ui.menuPick",
|
||||
"params": {
|
||||
"item": "Move/Copy"
|
||||
}
|
||||
},
|
||||
{
|
||||
"widget": "0.0 mm",
|
||||
"near": "X distance"
|
||||
},
|
||||
{
|
||||
"key": "A",
|
||||
"cmd": true
|
||||
},
|
||||
{
|
||||
"text": "50"
|
||||
},
|
||||
{
|
||||
"key": "Enter"
|
||||
},
|
||||
{
|
||||
"widget": "Capture Position"
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bbox": {
|
||||
"body": "Body1",
|
||||
"min": [
|
||||
50,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
80,
|
||||
20,
|
||||
10
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_world": {
|
||||
"sketch": "Sketch1",
|
||||
"point": "p1",
|
||||
"at": [
|
||||
50,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"sketch_world": {
|
||||
"sketch": "Sketch2",
|
||||
"point": "c1.center",
|
||||
"at": [
|
||||
65,
|
||||
10,
|
||||
10
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"shot": "s29_moved"
|
||||
}
|
||||
]
|
||||
Reference in new issue
Block a user