266 lines
4.2 KiB
JSON
266 lines
4.2 KiB
JSON
{
|
|
"description": "An electronics enclosure built over MCP, one command at a time (examples/demo/enclosure_mcp.py). Each step: an MCP `execute` call; `caption` is shown in the video, `pause` (s) is the wait after it, `view` then animates the app's camera to that view. A lip on the rim is left out until issue #29 (Lip on a rounded rim) is fixed.",
|
|
"steps": [
|
|
{
|
|
"caption": "User parameters: width, depth, height, wall",
|
|
"command": "parameters.change",
|
|
"params": {
|
|
"name": "width",
|
|
"expression": "80 mm",
|
|
"comment": "outside, X"
|
|
}
|
|
},
|
|
{
|
|
"caption": "",
|
|
"command": "parameters.change",
|
|
"params": {
|
|
"name": "depth",
|
|
"expression": "60 mm",
|
|
"comment": "outside, Y"
|
|
},
|
|
"pause": 0.6
|
|
},
|
|
{
|
|
"caption": "",
|
|
"command": "parameters.change",
|
|
"params": {
|
|
"name": "height",
|
|
"expression": "30 mm"
|
|
},
|
|
"pause": 0.6
|
|
},
|
|
{
|
|
"caption": "",
|
|
"command": "parameters.change",
|
|
"params": {
|
|
"name": "wall",
|
|
"expression": "2 mm"
|
|
},
|
|
"pause": 0.6
|
|
},
|
|
{
|
|
"caption": "Sketch on XY",
|
|
"command": "sketch.create",
|
|
"params": {
|
|
"plane": "XY",
|
|
"name": "Outline"
|
|
}
|
|
},
|
|
{
|
|
"caption": "Center rectangle",
|
|
"command": "sketch.rectangle.center",
|
|
"params": {
|
|
"center": [
|
|
0,
|
|
0
|
|
],
|
|
"corner": [
|
|
40,
|
|
30
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"caption": "Centre it on the origin",
|
|
"command": "sketch.constraint.coincident",
|
|
"params": {
|
|
"a": "p5",
|
|
"b": "origin"
|
|
}
|
|
},
|
|
{
|
|
"caption": "Dimension: width",
|
|
"command": "sketch.dimension",
|
|
"params": {
|
|
"entities": [
|
|
"l1"
|
|
],
|
|
"value": "width"
|
|
}
|
|
},
|
|
{
|
|
"caption": "Dimension: depth",
|
|
"command": "sketch.dimension",
|
|
"params": {
|
|
"entities": [
|
|
"l2"
|
|
],
|
|
"value": "depth"
|
|
}
|
|
},
|
|
{
|
|
"caption": "Finish sketch",
|
|
"command": "sketch.finish",
|
|
"params": {}
|
|
},
|
|
{
|
|
"caption": "Extrude by height",
|
|
"command": "solid.extrude",
|
|
"params": {
|
|
"distance": "height",
|
|
"body_name": "Enclosure"
|
|
},
|
|
"view": "home"
|
|
},
|
|
{
|
|
"caption": "Round the vertical edges (6 mm)",
|
|
"command": "solid.fillet",
|
|
"params": {
|
|
"edges": [
|
|
[
|
|
40,
|
|
30,
|
|
15
|
|
],
|
|
[
|
|
-40,
|
|
30,
|
|
15
|
|
],
|
|
[
|
|
-40,
|
|
-30,
|
|
15
|
|
],
|
|
[
|
|
40,
|
|
-30,
|
|
15
|
|
]
|
|
],
|
|
"radius": 6
|
|
}
|
|
},
|
|
{
|
|
"caption": "Shell it open at the top (wall)",
|
|
"command": "solid.shell",
|
|
"params": {
|
|
"faces": [
|
|
[
|
|
0,
|
|
0,
|
|
30
|
|
]
|
|
],
|
|
"thickness": "wall"
|
|
}
|
|
},
|
|
{
|
|
"caption": "Sketch on YZ for the USB port",
|
|
"command": "sketch.create",
|
|
"params": {
|
|
"plane": {
|
|
"origin": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"x_dir": [
|
|
0,
|
|
1,
|
|
0
|
|
],
|
|
"y_dir": [
|
|
0,
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"name": "USB port"
|
|
}
|
|
},
|
|
{
|
|
"caption": "Port outline",
|
|
"command": "sketch.rectangle.center",
|
|
"params": {
|
|
"center": [
|
|
0,
|
|
12
|
|
],
|
|
"corner": [
|
|
6,
|
|
15.5
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"caption": "Finish sketch",
|
|
"command": "sketch.finish",
|
|
"params": {}
|
|
},
|
|
{
|
|
"caption": "Cut through the side wall",
|
|
"command": "solid.extrude",
|
|
"params": {
|
|
"through_all": true,
|
|
"operation": "cut"
|
|
}
|
|
},
|
|
{
|
|
"caption": "Screw boss",
|
|
"command": "plastic.boss",
|
|
"params": {
|
|
"position": [
|
|
-30,
|
|
-20,
|
|
2
|
|
],
|
|
"diameter": 7,
|
|
"height": 12,
|
|
"hole_diameter": 2.5
|
|
}
|
|
},
|
|
{
|
|
"caption": "Screw boss",
|
|
"command": "plastic.boss",
|
|
"params": {
|
|
"position": [
|
|
30,
|
|
-20,
|
|
2
|
|
],
|
|
"diameter": 7,
|
|
"height": 12,
|
|
"hole_diameter": 2.5
|
|
}
|
|
},
|
|
{
|
|
"caption": "Screw boss",
|
|
"command": "plastic.boss",
|
|
"params": {
|
|
"position": [
|
|
30,
|
|
20,
|
|
2
|
|
],
|
|
"diameter": 7,
|
|
"height": 12,
|
|
"hole_diameter": 2.5
|
|
}
|
|
},
|
|
{
|
|
"caption": "Screw boss",
|
|
"command": "plastic.boss",
|
|
"params": {
|
|
"position": [
|
|
-30,
|
|
20,
|
|
2
|
|
],
|
|
"diameter": 7,
|
|
"height": 12,
|
|
"hole_diameter": 2.5
|
|
}
|
|
},
|
|
{
|
|
"caption": "Change one parameter: width 80 \u2192 100 mm",
|
|
"command": "parameters.change",
|
|
"params": {
|
|
"name": "width",
|
|
"expression": "100 mm"
|
|
},
|
|
"pause": 4
|
|
}
|
|
]
|
|
}
|