← mecheval / run / a4-counterbore-plate-01 / claude-mcp-claude-opus-4-7 / 20260611T221600Z-7469
run 20260611T221600Z-7469
Summary
| status | fail |
| score | 0.63 (5/8) |
| submission | self-run |
| model | claude-mcp-claude-opus-4-7 (anthropic) |
| started | 2026-06-11T22:16:00.984Z |
| ended | 2026-06-11T22:20:42.556Z |
| tokens | 603,731 in · 7,432 out · 611,163 total |
| wallclock | 281.2s |
| tool calls | 43 |
| task hash | cfd43e4b06b57f90… |
| vcad hash | 271fdf9ba60ac65e… |
Prompt
Make a single solid: a flat plate 60mm × 60mm × 12mm, centered in X and Y with the bottom face on the XY plane (z = 0 to z = 12). Drill four counterbore holes at corners (20, 20), (-20, 20), (-20, -20), (20, -20). Each counterbore consists of two coaxial Z-aligned through-features: a clearance through-hole of diameter 4mm running the full thickness (z = 0 to z = 12), and a coaxial recess of diameter 8mm machined 4mm deep from the top face (so the larger diameter spans z = 8 to z = 12). Output a single solid.
Checks
0
valid_solidpass
params + details
params: {
"type": "valid_solid"
}
details: {
"root_count": 17,
"solids_produced": 17
}
1
bboxpass
params + details
params: {
"type": "bbox",
"min": [
-30,
-30,
0
],
"max": [
30,
30,
12
],
"tolerance_mm": 0.1
}
details: {
"actual_max": [
30,
30,
12
],
"actual_min": [
-30,
-30,
0
],
"deviation_max": [
0,
0,
0
],
"deviation_min": [
0,
0,
0
],
"max_abs_deviation_mm": 0,
"tolerance_mm": 0.1
}
2
mass_propsfail
volume off by 616.8%
params + details
params: {
"type": "mass_props",
"volume_mm3": 41993.63,
"tolerance_pct": 1
}
details: {
"volume": {
"actual_mm3": 300994.8260510406,
"deviation_pct": 616.7630568041882,
"pass": false,
"spec_mm3": 41993.63,
"tolerance_pct": 1
}
}
3
hole_countpass
params + details
params: {
"type": "hole_count",
"diameter_mm": 4,
"expected": 4,
"diameter_tolerance_mm": 0.05
}
details: {
"actual": 4,
"diameter_mm": 4,
"diameter_tolerance_mm": 0.05,
"expected": 4,
"found": [
[
20,
20,
4
],
[
-20,
20,
4
],
[
-20,
-20,
4
],
[
20,
-20,
4
]
]
}
4
hole_positionspass
params + details
params: {
"type": "hole_positions",
"diameter_mm": 4,
"positions": [
[
20,
20,
0
],
[
-20,
20,
0
],
[
-20,
-20,
0
],
[
20,
-20,
0
]
],
"tolerance_mm": 0.15
}
details: {
"diameter_mm": 4,
"per_expected": [
{
"distance_mm": 0,
"matched_hole": [
20,
20
],
"pass": true,
"spec_xy": [
20,
20
]
},
{
"distance_mm": 0,
"matched_hole": [
-20,
20
],
"pass": true,
"spec_xy": [
-20,
20
]
},
{
"distance_mm": 0,
"matched_hole": [
-20,
-20
],
"pass": true,
"spec_xy": [
-20,
-20
]
},
{
"distance_mm": 0,
"matched_hole": [
20,
-20
],
"pass": true,
"spec_xy": [
20,
-20
]
}
],
"tolerance_mm": 0.15,
"unmatched_extras": []
}
5
hole_countfail
found 2/4 holes of ⌀8mm
params + details
params: {
"type": "hole_count",
"diameter_mm": 8,
"expected": 4,
"diameter_tolerance_mm": 0.05
}
details: {
"actual": 2,
"diameter_mm": 8,
"diameter_tolerance_mm": 0.05,
"expected": 4,
"found": [
[
20,
20,
8
],
[
-20,
20,
8
]
]
}
6
hole_positionsfail
2/4 mispositioned
params + details
params: {
"type": "hole_positions",
"diameter_mm": 8,
"positions": [
[
20,
20,
0
],
[
-20,
20,
0
],
[
-20,
-20,
0
],
[
20,
-20,
0
]
],
"tolerance_mm": 0.15
}
details: {
"diameter_mm": 8,
"per_expected": [
{
"distance_mm": 0,
"matched_hole": [
20,
20
],
"pass": true,
"spec_xy": [
20,
20
]
},
{
"distance_mm": 0,
"matched_hole": [
-20,
20
],
"pass": true,
"spec_xy": [
-20,
20
]
},
{
"pass": false,
"reason": "no candidate cylindrical feature of this diameter remained unmatched",
"spec_xy": [
-20,
-20
]
},
{
"pass": false,
"reason": "no candidate cylindrical feature of this diameter remained unmatched",
"spec_xy": [
20,
-20
]
}
],
"tolerance_mm": 0.15,
"unmatched_extras": []
}
7
step_roundtrippass
params + details
params: {
"type": "step_roundtrip",
"tolerance_pct": 1
}
details: {
"per_solid": [
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
30,
30,
12
],
"original_min": [
-30,
-30,
0
],
"pass": true,
"roundtripped_max": [
30,
30,
12
],
"roundtripped_min": [
-30,
-30,
0
],
"tolerance_mm": 0.856971411425142
},
"index": 0,
"pass": true,
"volume": {
"deviation_pct": 0,
"original_mm3": 43200,
"pass": true,
"roundtripped_mm3": 43200
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
2,
2,
12
],
"original_min": [
-2,
-2,
0
],
"pass": true,
"roundtripped_max": [
2,
2,
12
],
"roundtripped_min": [
-2,
-2,
0
],
"tolerance_mm": 0.132664991614216
},
"index": 1,
"pass": true,
"volume": {
"deviation_pct": 0.48152942952456007,
"original_mm3": 150.5543251912275,
"pass": true,
"roundtripped_mm3": 149.82936180800962
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
4,
4,
4
],
"original_min": [
-4,
-4,
0
],
"pass": true,
"roundtripped_max": [
4,
4,
4
],
"roundtripped_min": [
-4,
-4,
0
],
"tolerance_mm": 0.12
},
"index": 2,
"pass": true,
"volume": {
"deviation_pct": 0.481529429524668,
"original_mm3": 200.73910025497025,
"pass": true,
"roundtripped_mm3": 199.77248241067954
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
22,
22,
12
],
"original_min": [
18,
18,
0
],
"pass": true,
"roundtripped_max": [
22,
22,
12
],
"roundtripped_min": [
18,
18,
0
],
"tolerance_mm": 0.132664991614216
},
"index": 3,
"pass": true,
"volume": {
"deviation_pct": 0.4815231981675384,
"original_mm3": 150.5543435701984,
"pass": true,
"roundtripped_mm3": 149.82938948005904
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
-18,
22,
12
],
"original_min": [
-22,
18,
0
],
"pass": true,
"roundtripped_max": [
-18,
22,
12
],
"roundtripped_min": [
-22,
18,
0
],
"tolerance_mm": 0.132664991614216
},
"index": 4,
"pass": true,
"volume": {
"deviation_pct": 0.4815231981675384,
"original_mm3": 150.5543435701984,
"pass": true,
"roundtripped_mm3": 149.82938948005904
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
-18,
-18,
12
],
"original_min": [
-22,
-22,
0
],
"pass": true,
"roundtripped_max": [
-18,
-18,
12
],
"roundtripped_min": [
-22,
-22,
0
],
"tolerance_mm": 0.132664991614216
},
"index": 5,
"pass": true,
"volume": {
"deviation_pct": 0.4815231981675384,
"original_mm3": 150.5543435701984,
"pass": true,
"roundtripped_mm3": 149.82938948005904
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
22,
-18,
12
],
"original_min": [
18,
-22,
0
],
"pass": true,
"roundtripped_max": [
22,
-18,
12
],
"roundtripped_min": [
18,
-22,
0
],
"tolerance_mm": 0.132664991614216
},
"index": 6,
"pass": true,
"volume": {
"deviation_pct": 0.4815231981675384,
"original_mm3": 150.5543435701984,
"pass": true,
"roundtripped_mm3": 149.82938948005904
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
24,
24,
12
],
"original_min": [
16,
16,
8
],
"pass": true,
"roundtripped_max": [
24,
24,
12
],
"roundtripped_min": [
16,
16,
8
],
"tolerance_mm": 0.12
},
"index": 7,
"pass": true,
"volume": {
"deviation_pct": 0.4815292244933129,
"original_mm3": 200.7390920111793,
"pass": true,
"roundtripped_mm3": 199.77247461816296
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
-16,
24,
12
],
"original_min": [
-24,
16,
8
],
"pass": true,
"roundtripped_max": [
-16,
24,
12
],
"roundtripped_min": [
-24,
16,
8
],
"tolerance_mm": 0.12
},
"index": 8,
"pass": true,
"volume": {
"deviation_pct": 0.4815292244933129,
"original_mm3": 200.7390920111793,
"pass": true,
"roundtripped_mm3": 199.77247461816296
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
-16,
-16,
12
],
"original_min": [
-24,
-24,
8
],
"pass": true,
"roundtripped_max": [
-16,
-16,
12
],
"roundtripped_min": [
-24,
-24,
8
],
"tolerance_mm": 0.12
},
"index": 9,
"pass": true,
"volume": {
"deviation_pct": 0.4815292244933129,
"original_mm3": 200.7390920111793,
"pass": true,
"roundtripped_mm3": 199.77247461816296
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
24,
-16,
12
],
"original_min": [
16,
-24,
8
],
"pass": true,
"roundtripped_max": [
24,
-16,
12
],
"roundtripped_min": [
16,
-24,
8
],
"tolerance_mm": 0.12
},
"index": 10,
"pass": true,
"volume": {
"deviation_pct": 0.4815292244933129,
"original_mm3": 200.7390920111793,
"pass": true,
"roundtripped_mm3": 199.77247461816296
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
30,
30,
12
],
"original_min": [
-30,
-30,
0
],
"pass": true,
"roundtripped_max": [
30,
30,
12
],
"roundtripped_min": [
-30,
-30,
0
],
"tolerance_mm": 0.856971411425142
},
"index": 11,
"pass": true,
"volume": {
"deviation_pct": 0.0011226688743292655,
"original_mm3": 43049.44565642952,
"pass": true,
"roundtripped_mm3": 43049.928959156474
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
30,
30,
12
],
"original_min": [
-30,
-30,
0
],
"pass": true,
"roundtripped_max": [
30,
30,
12
],
"roundtripped_min": [
-30,
-30,
0
],
"tolerance_mm": 0.856971411425142
},
"index": 12,
"pass": true,
"volume": {
"deviation_pct": 0.0022532177973147533,
"original_mm3": 42898.89131285903,
"pass": true,
"roundtripped_mm3": 42899.85791831294
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
30,
30,
12
],
"original_min": [
-30,
-30,
0
],
"pass": true,
"roundtripped_max": [
30,
30,
12
],
"roundtripped_min": [
-30,
-30,
0
],
"tolerance_mm": 0.856971411425142
},
"index": 13,
"pass": true,
"volume": {
"deviation_pct": 0.0033917300266030287,
"original_mm3": 42748.33696928854,
"pass": true,
"roundtripped_mm3": 42749.7868774694
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
30,
30,
12
],
"original_min": [
-30,
-30,
0
],
"pass": true,
"roundtripped_max": [
30,
30,
12
],
"roundtripped_min": [
-30,
-30,
0
],
"tolerance_mm": 0.856971411425142
},
"index": 14,
"pass": true,
"volume": {
"deviation_pct": 0.004538289996929717,
"original_mm3": 42597.78262571808,
"pass": true,
"roundtripped_mm3": 42599.715836625895
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
30,
30,
12
],
"original_min": [
-30,
-30,
0
],
"pass": true,
"roundtripped_max": [
30,
30,
12
],
"roundtripped_min": [
-30,
-30,
0
],
"tolerance_mm": 0.856971411425142
},
"index": 15,
"pass": true,
"volume": {
"deviation_pct": 0.004174854446355804,
"original_mm3": 42447.22831489728,
"pass": true,
"roundtripped_mm3": 42449.00042489594
}
},
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
30,
30,
12
],
"original_min": [
-30,
-30,
0
],
"pass": true,
"roundtripped_max": [
30,
30,
12
],
"roundtripped_min": [
-30,
-30,
0
],
"tolerance_mm": 0.856971411425142
},
"index": 16,
"pass": true,
"volume": {
"deviation_pct": 0.003808831610149203,
"original_mm3": 42296.67400407648,
"pass": true,
"roundtripped_mm3": 42298.28501316599
}
}
],
"tolerance_pct": 1
}
Tool calls
0
open_documentok
2ms
args
{}1
createerr
6ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "Plate with counterbores",
"params": {
"children": [
{
"type": "translate",
"params": {
"x": -30,
"y": -30,
"z": 0,
"children": [
{
"type": "cube",
"params": {
"x": 60,
"y": 60,
"z": 12
}
}
]
}
},
{
"type": "translate",
"params": {
"x": 20,
"y": 20,
"z": 0,
"children": [
{
"type": "cylinder",
"params": {
"r": 2,
"h": 12
}
}
]
}
},
{
"type": "translate",
"params": {
"x": -20,
"y": 20,
"z": 0,
"children": [
{
"type": "cylinder",
"params": {
"r": 2,
"h": 12
}
}
]
}
},
{
"type": "translate",
"params": {
"x": -20,
"y": -20,
"z": 0,
"children": [
{
"type": "cylinder",
"params": {
"r": 2,
"h": 12
}
}
]
}
},
{
"type": "translate",
"params": {
"x": 20,
"y": -20,
"z": 0,
"children": [
{
"type": "cylinder",
"params": {
"r": 2,
"h": 12
}
}
]
}
},
{
"type": "translate",
"params": {
"x": 20,
"y": 20,
"z": 8,
"children": [
{
"type": "cylinder",
"params": {
"r": 4,
"h": 4
}
}
]
}
},
{
"type": "translate",
"params": {
"x": -20,
"y": 20,
"z": 8,
"children": [
{
"type": "cylinder",
"params": {
"r": 4,
"h": 4
}
}
]
}
},
{
"type": "translate",
"params": {
"x": -20,
"y": -20,
"z": 8,
"children": [
{
"type": "cylinder",
"params": {
"r": 4,
"h": 4
}
}
]
}
},
{
"type": "translate",
"params": {
"x": 20,
"y": -20,
"z": 8,
"children": [
{
"type": "cylinder",
"params": {
"r": 4,
"h": 4
}
}
]
}
}
]
}
}2
create_cad_loonok
14ms
args
{
"source": "[let plate [translate -30 -30 0 [cube 60 60 12]]\n [let hole1 [translate 20 20 0 [cylinder 2 12]]\n [let hole2 [translate -20 20 0 [cylinder 2 12]]\n [let hole3 [translate -20 -20 0 [cylinder 2 12]]\n [let hole4 [translate 20 -20 0 [cylinder 2 12]]\n [let cb1 [translate 20 20 8 [cylinder 4 4]]\n [let cb2 [translate -20 20 8 [cylinder 4 4]]\n [let cb3 [translate -20 -20 8 [cylinder 4 4]]\n [let cb4 [translate 20 -20 8 [cylinder 4 4]]\n [root [difference cb4 [difference cb3 [difference cb2 [difference cb1 [difference hole4 [difference hole3 [difference hole2 [difference hole1 plate]]]]]]]] \"steel\"]]]]]]]]]]",
"format": "json"
}3
createerr
4ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cube",
"name": "plate_raw",
"params": {
"x": 60,
"y": 60,
"z": 12
}
}4
createok
6ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cube",
"name": "plate_raw",
"params": {
"size": {
"x": 60,
"y": 60,
"z": 12
}
}
}5
createok
9ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "plate",
"parent_part_id": "1",
"params": {
"offset": {
"x": -30,
"y": -30,
"z": 0
},
"child": 1
}
}6
readok
4ms
args
{
"document_id": "doc_1781216161167_1"
}7
readok
4ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "2"
}8
deleteok
4ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "1"
}9
createerr
6ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cylinder",
"name": "h1_raw",
"params": {
"radius": 2,
"height": 12
}
}10
createok
3ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cylinder",
"name": "h1_raw",
"params": {
"radius": 2,
"height": 12,
"segments": 64
}
}11
createok
4ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "h1",
"parent_part_id": "3",
"params": {
"offset": {
"x": 20,
"y": 20,
"z": 0
},
"child": 3
}
}12
createok
4ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "plate_m_h1",
"params": {
"left": 2,
"right": 4
}
}13
readok
3ms
args
{
"document_id": "doc_1781216161167_1"
}14
deleteok
2ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "2"
}15
deleteok
1ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "3"
}16
deleteok
1ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "4"
}17
readok
3ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "5"
}18
createok
3ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cylinder",
"name": "h2_raw",
"parent_part_id": "5",
"params": {
"radius": 2,
"height": 12,
"segments": 64
}
}19
readok
2ms
args
{
"document_id": "doc_1781216161167_1"
}20
readok
2ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "6"
}21
deleteok
2ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "5"
}22
deleteok
1ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "6"
}23
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cube",
"name": "plate_raw",
"params": {
"size": {
"x": 60,
"y": 60,
"z": 12
}
}
}24
createok
3ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "plate",
"parent_part_id": "1",
"params": {
"offset": {
"x": -30,
"y": -30,
"z": 0
},
"child": 1
}
}25
deleteok
2ms
args
{
"document_id": "doc_1781216161167_1",
"part_id": "1"
}26
createok
2ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cylinder",
"name": "clear_cyl",
"params": {
"radius": 2,
"height": 12,
"segments": 64
}
}27
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "cylinder",
"name": "cb_cyl",
"params": {
"radius": 4,
"height": 4,
"segments": 64
}
}28
createok
3ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "h_pp",
"params": {
"offset": {
"x": 20,
"y": 20,
"z": 0
},
"child": 3
}
}29
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "h_np",
"params": {
"offset": {
"x": -20,
"y": 20,
"z": 0
},
"child": 3
}
}30
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "h_nn",
"params": {
"offset": {
"x": -20,
"y": -20,
"z": 0
},
"child": 3
}
}31
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "h_pn",
"params": {
"offset": {
"x": 20,
"y": -20,
"z": 0
},
"child": 3
}
}32
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "cb_pp",
"params": {
"offset": {
"x": 20,
"y": 20,
"z": 8
},
"child": 4
}
}33
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "cb_np",
"params": {
"offset": {
"x": -20,
"y": 20,
"z": 8
},
"child": 4
}
}34
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "cb_nn",
"params": {
"offset": {
"x": -20,
"y": -20,
"z": 8
},
"child": 4
}
}35
createok
1ms
args
{
"document_id": "doc_1781216161167_1",
"type": "translate",
"name": "cb_pn",
"params": {
"offset": {
"x": 20,
"y": -20,
"z": 8
},
"child": 4
}
}36
createok
4ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "d1",
"params": {
"left": 2,
"right": 5
}
}37
createok
4ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "d2",
"params": {
"left": 13,
"right": 6
}
}38
createok
3ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "d3",
"params": {
"left": 14,
"right": 7
}
}39
createok
2ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "d4",
"params": {
"left": 15,
"right": 8
}
}40
createok
3ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "d5",
"params": {
"left": 16,
"right": 9
}
}41
createok
3ms
args
{
"document_id": "doc_1781216161167_1",
"type": "difference",
"name": "d6",
"params": {
"left": 17,
"right": 10
}
}42
get_documentok
1ms
args
{
"document_id": "doc_1781216161167_1"
}What the model built
isometric render via vcad-render · the model's actual .vcad output, faceted at 28 segments per cylinder · download 20260611T221600Z-7469.vcad
.vcad source
{
"version": "0.1",
"nodes": {
"1": {
"id": 1,
"name": "plate_raw",
"op": {
"type": "Cube",
"size": {
"x": 60,
"y": 60,
"z": 12
}
}
},
"2": {
"id": 2,
"name": "plate",
"op": {
"type": "Translate",
"child": 1,
"offset": {
"x": -30,
"y": -30,
"z": 0
}
}
},
"3": {
"id": 3,
"name": "clear_cyl",
"op": {
"type": "Cylinder",
"radius": 2,
"height": 12,
"segments": 64
}
},
"4": {
"id": 4,
"name": "cb_cyl",
"op": {
"type": "Cylinder",
"radius": 4,
"height": 4,
"segments": 64
}
},
"5": {
"id": 5,
"name": "h_pp",
"op": {
"type": "Translate",
"child": 3,
"offset": {
"x": 20,
"y": 20,
"z": 0
}
}
},
"6": {
"id": 6,
"name": "h_np",
"op": {
"type": "Translate",
"child": 3,
"offset": {
"x": -20,
"y": 20,
"z": 0
}
}
},
"7": {
"id": 7,
"name": "h_nn",
"op": {
"type": "Translate",
"child": 3,
"offset": {
"x": -20,
"y": -20,
"z": 0
}
}
},
"8": {
"id": 8,
"name": "h_pn",
"op": {
"type": "Translate",
"child": 3,
"offset": {
"x": 20,
"y": -20,
"z": 0
}
}
},
"9": {
"id": 9,
"name": "cb_pp",
"op": {
"type": "Translate",
"child": 4,
"offset": {
"x": 20,
"y": 20,
"z": 8
}
}
},
"10": {
"id": 10,
"name": "cb_np",
"op": {
"type": "Translate",
"child": 4,
"offset": {
"x": -20,
"y": 20,
"z": 8
}
}
},
"11": {
"id": 11,
"name": "cb_nn",
"op": {
"type": "Translate",
"child": 4,
"offset": {
"x": -20,
"y": -20,
"z": 8
}
}
},
"12": {
"id": 12,
"name": "cb_pn",
"op": {
"type": "Translate",
"child": 4,
"offset": {
"x": 20,
"y": -20,
"z": 8
}
}
},
"13": {
"id": 13,
"name": "d1",
"op": {
"type": "Difference",
"left": 2,
"right": 5
}
},
"14": {
"id": 14,
"name": "d2",
"op": {
"type": "Difference",
"left": 13,
"right": 6
}
},
"15": {
"id": 15,
"name": "d3",
"op": {
"type": "Difference",
"left": 14,
"right": 7
}
},
"16": {
"id": 16,
"name": "d4",
"op": {
"type": "Difference",
"left": 15,
"right": 8
}
},
"17": {
"id": 17,
"name": "d5",
"op": {
"type": "Difference",
"left": 16,
"right": 9
}
},
"18": {
"id": 18,
"name": "d6",
"op": {
"type": "Difference",
"left": 17,
"right": 10
}
}
},
"materials": {},
"part_materials": {},
"roots": [
{
"root": 2,
"material": "default"
},
{
"root": 3,
"material": "default"
},
{
"root": 4,
"material": "default"
},
{
"root": 5,
"material": "default"
},
{
"root": 6,
"material": "default"
},
{
"root": 7,
"material": "default"
},
{
"root": 8,
"material": "default"
},
{
"root": 9,
"material": "default"
},
{
"root": 10,
"material": "default"
},
{
"root": 11,
"material": "default"
},
{
"root": 12,
"material": "default"
},
{
"root": 13,
"material": "default"
},
{
"root": 14,
"material": "default"
},
{
"root": 15,
"material": "default"
},
{
"root": 16,
"material": "default"
},
{
"root": 17,
"material": "default"
},
{
"root": 18,
"material": "default"
}
]
}