@protoboardai/ext-enclosure-cad 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@protoboardai/ext-enclosure-cad",
3
- "version": "0.2.0",
4
- "description": "Protoboard extension: a cad capability provider for enclosures. Generates a printed or machined case from the UHD features it must provide and what the assembly puts inside it (build123d), with fit, wall, seal and alignment checks",
3
+ "version": "0.2.1",
4
+ "description": "Protoboard extension: printed or machined enclosures generated from your design.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Delta Robotics, Inc.",
7
7
  "repository": {
@@ -39,5 +39,16 @@
39
39
  "@protoboardai/ext-release": {
40
40
  "optional": true
41
41
  }
42
+ },
43
+ "keywords": [
44
+ "protoboard",
45
+ "hardware",
46
+ "cad",
47
+ "enclosure",
48
+ "build123d"
49
+ ],
50
+ "homepage": "https://protoboard.ai",
51
+ "bugs": {
52
+ "url": "https://github.com/Delta-Robotics-Inc/protoboard-stack/issues"
42
53
  }
43
54
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "protoboard.extension/v0",
3
3
  "id": "@protoboardai/ext-enclosure-cad",
4
- "version": "0.2.0",
4
+ "version": "0.2.1",
5
5
  "description": "Enclosure CAD: a printed or machined case generated with build123d from the UHD features it must provide (openings, plungers, windows, light pipes, insert bosses, O-ring glands, threads, strap lugs, the lid joint) and the bodies the assembly places inside it; fit, wall, seal and alignment checks.",
6
6
  "compatibility": {
7
7
  "protoboard": "^0.2.0",
@@ -27,7 +27,11 @@
27
27
  "runtime": {
28
28
  "id": "cad",
29
29
  "kind": "python",
30
- "packages": ["build123d==0.13.0", "numpy==2.5.3", "scipy==1.18.1"],
30
+ "packages": [
31
+ "build123d==0.13.0",
32
+ "numpy==2.5.3",
33
+ "scipy==1.18.1"
34
+ ],
31
35
  "env": "PROTOBOARD_PYTHON",
32
36
  "python": ">=3.11,<3.15"
33
37
  }
@@ -39,31 +43,88 @@
39
43
  "summary": "Enclosures (cases, caps, back covers) with build123d: generated from the features they provide and what goes inside them",
40
44
  "native": "build123d",
41
45
  "operations": {
42
- "generate": { "entry": "./ops/cad.ts#generate", "requires": ["python-build123d"], "summary": "Write the build123d design (job + script) and build it: parts, body, report with the fit analysis" },
43
- "export": { "entry": "./ops/cad.ts#exportOutputs", "requires": ["python-build123d"], "summary": "body.step, body.glb, body.manifest.json and, for print, an STL and a 3MF per printed part" },
44
- "extract": { "entry": "./ops/cad.ts#extract", "summary": "Generated feature frames by interface id, and the artifacts the module should reference" },
45
- "check": { "entry": "./ops/cad.ts#check", "summary": "Drift against the model and the assembly, fit (collisions, clearance, containment), walls, seal squeeze, opening and plunger alignment, envelope" }
46
+ "generate": {
47
+ "entry": "./ops/cad.ts#generate",
48
+ "requires": [
49
+ "python-build123d"
50
+ ],
51
+ "summary": "Write the build123d design (job + script) and build it: parts, body, report with the fit analysis"
52
+ },
53
+ "export": {
54
+ "entry": "./ops/cad.ts#exportOutputs",
55
+ "requires": [
56
+ "python-build123d"
57
+ ],
58
+ "summary": "body.step, body.glb, body.manifest.json and, for print, an STL and a 3MF per printed part"
59
+ },
60
+ "extract": {
61
+ "entry": "./ops/cad.ts#extract",
62
+ "summary": "Generated feature frames by interface id, and the artifacts the module should reference"
63
+ },
64
+ "check": {
65
+ "entry": "./ops/cad.ts#check",
66
+ "summary": "Drift against the model and the assembly, fit (collisions, clearance, containment), walls, seal squeeze, opening and plunger alignment, envelope"
67
+ }
46
68
  },
47
69
  "constraints": {
48
- "wall_mm": { "description": "side wall thickness", "required": true },
49
- "floor_mm": { "description": "floor thickness (default: wall_mm)" },
50
- "lid_mm": { "description": "lid thickness (default: wall_mm)" },
51
- "clearance_mm": { "description": "gap between what goes inside and the walls (default 0.3)" },
52
- "clearance_top_mm": { "description": "gap above the tallest part inside (default: clearance_mm)" },
53
- "min_wall_mm": { "description": "thinnest wall allowed anywhere (default by process: print 0.8, machine 0.5)" },
54
- "material": { "description": "material, e.g. PETG (recorded in the manifest; mass = volume × density)" },
55
- "shape": { "description": "box (rounded rectangle) or round" },
56
- "cavity_mm": { "description": "fixed cavity instead of one sized from the contents: { min, max } (box) or { centre, radius, z } (round)" },
57
- "split_z_mm": { "description": "split plane height between base and lid (default: under the lid, at the joint)" },
58
- "joint": { "description": "lid joint: { style: rabbet | flat, lip_height_mm, clearance_mm } (a joint O-ring makes it flat)" },
59
- "fasteners": { "description": "screws (into heat-set inserts, from the joint interface) or none" },
60
- "exclude": { "description": "instance paths placed in the assembly that are not inside the enclosure" },
61
- "resolution_mm": { "description": "voxel size of the fit analysis (default 0.25)" }
70
+ "wall_mm": {
71
+ "description": "side wall thickness",
72
+ "required": true
73
+ },
74
+ "floor_mm": {
75
+ "description": "floor thickness (default: wall_mm)"
76
+ },
77
+ "lid_mm": {
78
+ "description": "lid thickness (default: wall_mm)"
79
+ },
80
+ "clearance_mm": {
81
+ "description": "gap between what goes inside and the walls (default 0.3)"
82
+ },
83
+ "clearance_top_mm": {
84
+ "description": "gap above the tallest part inside (default: clearance_mm)"
85
+ },
86
+ "min_wall_mm": {
87
+ "description": "thinnest wall allowed anywhere (default by process: print 0.8, machine 0.5)"
88
+ },
89
+ "material": {
90
+ "description": "material, e.g. PETG (recorded in the manifest; mass = volume × density)"
91
+ },
92
+ "shape": {
93
+ "description": "box (rounded rectangle) or round"
94
+ },
95
+ "cavity_mm": {
96
+ "description": "fixed cavity instead of one sized from the contents: { min, max } (box) or { centre, radius, z } (round)"
97
+ },
98
+ "split_z_mm": {
99
+ "description": "split plane height between base and lid (default: under the lid, at the joint)"
100
+ },
101
+ "joint": {
102
+ "description": "lid joint: { style: rabbet | flat, lip_height_mm, clearance_mm } (a joint O-ring makes it flat)"
103
+ },
104
+ "fasteners": {
105
+ "description": "screws (into heat-set inserts, from the joint interface) or none"
106
+ },
107
+ "exclude": {
108
+ "description": "instance paths placed in the assembly that are not inside the enclosure"
109
+ },
110
+ "resolution_mm": {
111
+ "description": "voxel size of the fit analysis (default 0.25)"
112
+ }
62
113
  }
63
114
  }
64
115
  ],
65
116
  "operations": [
66
- { "id": "package:work-order", "summary": "Manufacturing Package: the print order of each printed enclosure (material, profile, each part's orientation and supports, inserts, O-rings, plungers, lid screws)", "entry": "./ops/package.ts#workOrder", "effect": "pure" },
67
- { "id": "package:test-plan", "summary": "Manufacturing Package: the enclosure's checks (seal squeeze, buttons, plugs, lid joint, tight fits) from its build report", "entry": "./ops/package.ts#testPlan", "effect": "pure" }
117
+ {
118
+ "id": "package:work-order",
119
+ "summary": "Manufacturing Package: the print order of each printed enclosure (material, profile, each part's orientation and supports, inserts, O-rings, plungers, lid screws)",
120
+ "entry": "./ops/package.ts#workOrder",
121
+ "effect": "pure"
122
+ },
123
+ {
124
+ "id": "package:test-plan",
125
+ "summary": "Manufacturing Package: the enclosure's checks (seal squeeze, buttons, plugs, lid joint, tight fits) from its build report",
126
+ "entry": "./ops/package.ts#testPlan",
127
+ "effect": "pure"
128
+ }
68
129
  ]
69
130
  }