Acceptance project (#27): examples/acceptance/sensor_enclosure.json, a sensor enclosure sized from user parameters (case with USB cut-out, patterned PCB standoffs and lid bosses, snap fit; lid with a lip from offsets of the case's rim and patterned screw holes). Scenario acceptance_sensor_enclosure edits it (USB moved, suppress and back, save and reopen, STEP out and back in); pending scenarios for what fails: #40 (lid lip after a resize), #41 (snap fit after a resize), #42 (pattern of a suppressed feature), #29 (Lip on the rounded rim). Harness: a script step runs a command script, $DIR in call parameters is the scenario's folder
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
This commit is contained in:
1 parent
141f3acc85
commit
abb9d7460f
7 files changed
+1079
-1
No files matched your search
@@ -0,0 +1,27 @@
|
||||
[
|
||||
{
|
||||
"pending": "#40: offsets of projected geometry get new ids on recompute, the lid's lip fails"
|
||||
},
|
||||
{
|
||||
"note": "Acceptance (#27): the board grows 60 \u2192 70 mm; the lid's lip (offsets of the case's projected rim) follows."
|
||||
},
|
||||
{
|
||||
"script": "examples/acceptance/sensor_enclosure.json"
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "parameters.change",
|
||||
"params": {
|
||||
"name": "board_w",
|
||||
"expression": "70 mm"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"bodies": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,33 @@
|
||||
[
|
||||
{
|
||||
"pending": "#29: Plastic Lip fails on a rounded (filleted) shelled rim"
|
||||
},
|
||||
{
|
||||
"note": "Acceptance (#27): a lip on the case's rounded rim with the Lip command."
|
||||
},
|
||||
{
|
||||
"script": "examples/acceptance/sensor_enclosure.json"
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "plastic.lip",
|
||||
"params": {
|
||||
"face": [
|
||||
0,
|
||||
29,
|
||||
25
|
||||
],
|
||||
"width": 1,
|
||||
"height": 1.5,
|
||||
"body": "Case"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"bodies": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,29 @@
|
||||
[
|
||||
{
|
||||
"pending": "#42: suppressing a patterned feature keeps the pattern's copies"
|
||||
},
|
||||
{
|
||||
"note": "Acceptance (#27): suppressing the PCB standoff takes the patterned copies with it."
|
||||
},
|
||||
{
|
||||
"script": "examples/acceptance/sensor_enclosure.json"
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "timeline.suppress",
|
||||
"params": {
|
||||
"feature": "Standoff",
|
||||
"suppressed": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"body_volume": {
|
||||
"body": "Case",
|
||||
"volume": 24934.4
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,145 @@
|
||||
[
|
||||
{
|
||||
"note": "Acceptance (#27): the sensor enclosure built from examples/acceptance/sensor_enclosure.json, then edited: the USB cut-out moved, the height changed, features suppressed and back, saved and reopened, exported to STEP and read back."
|
||||
},
|
||||
{
|
||||
"script": "examples/acceptance/sensor_enclosure.json"
|
||||
},
|
||||
{
|
||||
"call": "ui.view",
|
||||
"params": {
|
||||
"view": "home"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bodies": 2,
|
||||
"errors": 0,
|
||||
"body_volume": {
|
||||
"body": "Case",
|
||||
"volume": 25401.7
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"body_volume": {
|
||||
"body": "Lid",
|
||||
"volume": 19629.7
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "parameters.change",
|
||||
"params": {
|
||||
"name": "usb_offset",
|
||||
"expression": "15 mm"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"bodies": 2,
|
||||
"body_volume": {
|
||||
"body": "Case",
|
||||
"volume": 25401.7
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "timeline.suppress",
|
||||
"params": {
|
||||
"feature": "SnapFit1",
|
||||
"suppressed": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"body_volume": {
|
||||
"body": "Case",
|
||||
"volume": 25340.5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "timeline.suppress",
|
||||
"params": {
|
||||
"feature": "SnapFit1",
|
||||
"suppressed": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"body_volume": {
|
||||
"body": "Case",
|
||||
"volume": 25401.7
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "file.save_as",
|
||||
"params": {
|
||||
"path": "$DIR/enclosure.solvecraft"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "doc.open",
|
||||
"params": {
|
||||
"path": "$DIR/enclosure.solvecraft"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"bodies": 2,
|
||||
"body_volume": {
|
||||
"body": "Case",
|
||||
"volume": 25401.7
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "file.export",
|
||||
"params": {
|
||||
"path": "$DIR/enclosure.step"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "doc.open",
|
||||
"params": {
|
||||
"path": "$DIR/enclosure.step"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bodies": 2,
|
||||
"body_volume": {
|
||||
"body": "Case",
|
||||
"volume": 25401.7
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,44 @@
|
||||
[
|
||||
{
|
||||
"pending": "#41: a snap fit stays at its old point when its wall moves (a floating body)"
|
||||
},
|
||||
{
|
||||
"note": "Acceptance (#27): the board grows 40 \u2192 50 mm deep; the snap fit stays on the moved front wall."
|
||||
},
|
||||
{
|
||||
"script": "examples/acceptance/sensor_enclosure.json"
|
||||
},
|
||||
{
|
||||
"call": "engine.execute",
|
||||
"params": {
|
||||
"command": "parameters.change",
|
||||
"params": {
|
||||
"name": "board_d",
|
||||
"expression": "50 mm"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"errors": 0,
|
||||
"bodies": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"expect": {
|
||||
"bbox": {
|
||||
"body": "Case",
|
||||
"min": [
|
||||
-40,
|
||||
-35,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
40,
|
||||
35,
|
||||
25
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in new issue
Block a user