3D Shell System
SHELL Shell
json
{ "type": "SHELL", "id":"UUID", "ticket": 1 }||
{
"partitionId":null,
"groupId":0,
"locked":1,
"zIndex":0.223,
"shellType":"T&B",
"shellHeight":50,
"pcbHeight":100,
"strokeWidth":10,
"path":"complex polygon",
"attrs":{},
}|1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- type shell
SHELL. - id primitive ID, unique within the document.
- ticket logical clock.
- partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
- groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
- locked whether locked.
- zIndex Z-axis height.
- shellType shell type.
T&Btop & bottom shell.DRAWERdrawer.CLAMclamshell.
- shellHeight shell height.
- pcbHeight PCB height.
- strokeWidth *line width (deprecated).
- path see complex polygon.
- attrs custom attributes: each 3D shell type has a set of custom shell attributes.
- T&B
- Thickness: shell thickness.
- BottomHeight: bottom shell height.
- TopInnerHeight: top shell inner wall height.
- TopInnerThickness: top shell inner wall thickness.
- DRAWER
- Thickness: shell thickness.
- Direction: drawer direction.
1positive X axis.2negative X axis.4positive Y axis.8negative Y axis.
- T&B
CREASE Side Reference Line (Crease)
CREASE primitives need to be used with CONNECT to associate SHELL_ENTITY and BOSS to express shell slots.
json
{ "type": "CREASE", "id":"UUID", "ticket": 1 }||
{
"partitionId":null,
"groupId":0,
"locked":1,
"zIndex":8.275,
"layerId":49,
"startX":20,
"startY":30,
"endX":40,
"endY":50,
"angle":90,
}|1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- type crease
CREASE. - id primitive ID, unique within the document.
- ticket logical clock.
- partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
- groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
- locked whether locked.
- zIndex Z-axis height.
- layerId layer.
- startX start X.
- startY start Y.
- endX end X.
- endY end Y.
- angle fold angle.
SHELL_ENTITY Shell Entity Area
A SHELL_ENTITY not associated with CREASE via CONNECT performs vertical fill/cut (slotting) for the top and bottom shells.
json
{ "type": "SHELL_ENTITY", "id":"UUID", "ticket": 1 }||
{
"partitionId":null,
"groupId":0,
"locked":1,
"zIndex":0.15,
"layerId":50,
"booleanOperation":0,
"belong":0,
"depth":10,
"strokeWidth":10,
"path":"complex polygon",
}|1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- type shell entity area
SHELL_ENTITY. - id primitive ID, unique within the document.
- ticket logical clock.
- partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
- groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
- locked whether locked.
- zIndex Z-axis height.
- layerId layer.
- booleanOperation boolean operation: 0 cut, 1 fill.
- belong affiliation: 0 auto, 1 top shell, 2 bottom shell, 4 shell border, 8 boss, 16 entity. Can be combined by addition.
- top + bottom shells: 3 = 1 + 2
- shell border + boss: 12 = 4 + 8
- boss + entity: 24 = 8 + 16
- shell border + boss + entity: 28 = 4 + 8 + 16
- depth depth.
- strokeWidth line width.
- path see complex polygon.
BOSS Boss
A BOSS associated with CREASE via CONNECT adds a side boss.
json
{ "type": "BOSS", "id":"UUID", "ticket": 1 }||
{
"partitionId":null,
"groupId":0,
"locked":1,
"zIndex":0.8976,
"layerId":50,
"centerX":100,
"centerY":200,
"specification":"M2",
"depth":100,
"thickness":10,
"holeDiameter":20,
"counterBore":[100, 20],
"stiffener":[20, 40, 20, 10],
}|1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- type boss
BOSS. - id primitive ID, unique within the document.
- ticket logical clock.
- partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
- groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
- locked whether locked.
- zIndex Z-axis height.
- layerId layer.
- centerX center X.
- centerY center Y.
- specification screw specification:
"M2","M3", etc., ornullfor custom. - depth boss height.
- thickness boss wall thickness.
- holeDiameter through-hole diameter.
- counterBore counterbore parameters,
nullmeans no counterbore.- screw head height.
- screw head diameter.
- stiffener rib parameters,
nullmeans no rib.- rib top width.
- rib bottom width.
- rib distance from top of boss.
- rib thickness.