@invisra/printspec 0.1.0

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.
@@ -0,0 +1,174 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "required": [
5
+ "type",
6
+ "label",
7
+ "components"
8
+ ],
9
+ "properties": {
10
+ "type": {
11
+ "const": "composable_part",
12
+ "title": "Part type",
13
+ "description": "Stable printspec part family identifier."
14
+ },
15
+ "label": {
16
+ "type": "string",
17
+ "title": "Label",
18
+ "description": "Human-readable name for this part."
19
+ },
20
+ "description": {
21
+ "type": "string",
22
+ "title": "Description",
23
+ "description": "Optional human-readable notes for this part."
24
+ },
25
+ "components": {
26
+ "type": "array",
27
+ "minItems": 1,
28
+ "items": {
29
+ "type": "object",
30
+ "required": [
31
+ "id",
32
+ "kind",
33
+ "operation",
34
+ "dimensions"
35
+ ],
36
+ "properties": {
37
+ "id": {
38
+ "type": "string"
39
+ },
40
+ "name": {
41
+ "type": "string"
42
+ },
43
+ "description": {
44
+ "type": "string"
45
+ },
46
+ "kind": {
47
+ "enum": [
48
+ "box",
49
+ "rounded_box",
50
+ "cylinder",
51
+ "tube",
52
+ "plate",
53
+ "tab",
54
+ "boss",
55
+ "rib",
56
+ "wedge"
57
+ ]
58
+ },
59
+ "operation": {
60
+ "enum": [
61
+ "add",
62
+ "subtract"
63
+ ]
64
+ },
65
+ "dimensions": {
66
+ "type": "object",
67
+ "additionalProperties": {
68
+ "type": "number",
69
+ "exclusiveMinimum": 0
70
+ }
71
+ },
72
+ "position": {
73
+ "$ref": "common.schema.json#/$defs/Point3D"
74
+ },
75
+ "relation": {
76
+ "type": "object",
77
+ "properties": {
78
+ "type": {
79
+ "enum": [
80
+ "absolute",
81
+ "on_top_of",
82
+ "attached_to_face",
83
+ "centered_on",
84
+ "aligned_with",
85
+ "offset_from",
86
+ "mirrored_from"
87
+ ]
88
+ },
89
+ "target": {
90
+ "type": "string"
91
+ },
92
+ "face": {
93
+ "type": "string"
94
+ }
95
+ },
96
+ "additionalProperties": true
97
+ },
98
+ "pattern": {
99
+ "$ref": "common.schema.json#/$defs/Pattern"
100
+ },
101
+ "materialRole": {
102
+ "enum": [
103
+ "body",
104
+ "mount",
105
+ "support",
106
+ "cutout",
107
+ "reference"
108
+ ]
109
+ }
110
+ },
111
+ "additionalProperties": false
112
+ }
113
+ },
114
+ "features": {
115
+ "type": "array",
116
+ "items": {
117
+ "type": "object",
118
+ "required": [
119
+ "id",
120
+ "kind",
121
+ "target"
122
+ ],
123
+ "properties": {
124
+ "id": {
125
+ "type": "string"
126
+ },
127
+ "kind": {
128
+ "enum": [
129
+ "hole",
130
+ "slot",
131
+ "counterbore",
132
+ "countersink",
133
+ "fillet",
134
+ "chamfer",
135
+ "text"
136
+ ]
137
+ },
138
+ "target": {
139
+ "type": "string"
140
+ },
141
+ "position": {
142
+ "$ref": "common.schema.json#/$defs/Point3D"
143
+ },
144
+ "relation": {
145
+ "type": "object"
146
+ },
147
+ "pattern": {
148
+ "$ref": "common.schema.json#/$defs/Pattern"
149
+ },
150
+ "parameters": {
151
+ "type": "object"
152
+ }
153
+ },
154
+ "additionalProperties": false
155
+ }
156
+ },
157
+ "constraints": {
158
+ "type": "array",
159
+ "items": {
160
+ "type": "object"
161
+ }
162
+ },
163
+ "hardware": {
164
+ "type": "array",
165
+ "items": {
166
+ "$ref": "common.schema.json#/$defs/HardwareItem"
167
+ }
168
+ }
169
+ },
170
+ "additionalProperties": false,
171
+ "$id": "https://schemas.invisra.ai/printspec/0.1.0/composable-part.schema.json",
172
+ "title": "Composable Part",
173
+ "description": "Composable Part schema for printspec documents."
174
+ }
@@ -0,0 +1,228 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.invisra.ai/printspec/0.1.0/drill-guide.schema.json",
4
+ "type": "object",
5
+ "required": [
6
+ "type",
7
+ "label",
8
+ "parameters"
9
+ ],
10
+ "properties": {
11
+ "type": {
12
+ "const": "drill_guide",
13
+ "title": "Part type",
14
+ "description": "Stable printspec part family identifier."
15
+ },
16
+ "label": {
17
+ "type": "string",
18
+ "minLength": 1,
19
+ "title": "Label",
20
+ "description": "Human-readable name for this part."
21
+ },
22
+ "description": {
23
+ "type": "string",
24
+ "title": "Description",
25
+ "description": "Optional human-readable notes for this part."
26
+ },
27
+ "parameters": {
28
+ "type": "object",
29
+ "required": [
30
+ "length",
31
+ "width",
32
+ "height",
33
+ "holeDiameter",
34
+ "holeCount",
35
+ "holeSpacing"
36
+ ],
37
+ "properties": {
38
+ "length": {
39
+ "type": "number",
40
+ "exclusiveMinimum": 0,
41
+ "maximum": 10000,
42
+ "title": "Length",
43
+ "description": "Length in millimeters.",
44
+ "x-printspec-control": "number",
45
+ "x-printspec-unit": "mm",
46
+ "x-printspec-step": 0.1,
47
+ "x-printspec-priority": "primary",
48
+ "examples": [
49
+ 100
50
+ ]
51
+ },
52
+ "width": {
53
+ "type": "number",
54
+ "exclusiveMinimum": 0,
55
+ "maximum": 10000,
56
+ "title": "Width",
57
+ "description": "Width in millimeters.",
58
+ "x-printspec-control": "number",
59
+ "x-printspec-unit": "mm",
60
+ "x-printspec-step": 0.1,
61
+ "x-printspec-priority": "primary",
62
+ "examples": [
63
+ 50
64
+ ]
65
+ },
66
+ "height": {
67
+ "type": "number",
68
+ "exclusiveMinimum": 0,
69
+ "maximum": 10000,
70
+ "title": "Height",
71
+ "description": "Height in millimeters.",
72
+ "x-printspec-control": "number",
73
+ "x-printspec-unit": "mm",
74
+ "x-printspec-step": 0.1,
75
+ "x-printspec-priority": "primary",
76
+ "examples": [
77
+ 10
78
+ ]
79
+ },
80
+ "holeDiameter": {
81
+ "type": "number",
82
+ "exclusiveMinimum": 0,
83
+ "maximum": 10000,
84
+ "title": "Hole diameter",
85
+ "description": "Hole diameter in millimeters.",
86
+ "x-printspec-control": "number",
87
+ "x-printspec-unit": "mm",
88
+ "x-printspec-step": 0.1,
89
+ "x-printspec-priority": "primary",
90
+ "examples": [
91
+ 3.2
92
+ ]
93
+ },
94
+ "holeCount": {
95
+ "type": "integer",
96
+ "minimum": 1,
97
+ "maximum": 50,
98
+ "title": "Hole count",
99
+ "description": "Hole count for the part.",
100
+ "x-printspec-control": "integer",
101
+ "x-printspec-unit": "count",
102
+ "x-printspec-step": 1,
103
+ "x-printspec-priority": "primary"
104
+ },
105
+ "holeSpacing": {
106
+ "type": "number",
107
+ "exclusiveMinimum": 0,
108
+ "maximum": 10000,
109
+ "title": "Hole spacing",
110
+ "description": "Hole spacing in millimeters.",
111
+ "x-printspec-control": "number",
112
+ "x-printspec-unit": "mm",
113
+ "x-printspec-step": 0.1,
114
+ "x-printspec-priority": "primary"
115
+ },
116
+ "bushingDiameter": {
117
+ "type": "number",
118
+ "exclusiveMinimum": 0,
119
+ "maximum": 10000,
120
+ "title": "Bushing diameter",
121
+ "description": "Bushing diameter in millimeters.",
122
+ "x-printspec-control": "number",
123
+ "x-printspec-unit": "mm",
124
+ "x-printspec-step": 0.1,
125
+ "x-printspec-priority": "advanced"
126
+ },
127
+ "holes": {
128
+ "type": "array",
129
+ "items": {
130
+ "$ref": "common.schema.json#/$defs/Hole"
131
+ },
132
+ "title": "Holes",
133
+ "description": "Optional hole features to include in the generated part.",
134
+ "x-printspec-control": "hole-list",
135
+ "x-printspec-priority": "advanced",
136
+ "default": []
137
+ },
138
+ "slots": {
139
+ "type": "array",
140
+ "items": {
141
+ "$ref": "common.schema.json#/$defs/Slot"
142
+ },
143
+ "title": "Slots",
144
+ "description": "Optional slot features to include in the generated part.",
145
+ "x-printspec-control": "slot-list",
146
+ "x-printspec-priority": "advanced",
147
+ "default": []
148
+ },
149
+ "chamfer": {
150
+ "$ref": "common.schema.json#/$defs/Chamfer",
151
+ "title": "Chamfer",
152
+ "description": "Optional chamfer edge finishing request.",
153
+ "x-printspec-control": "number",
154
+ "x-printspec-priority": "advanced"
155
+ },
156
+ "fillet": {
157
+ "$ref": "common.schema.json#/$defs/Fillet",
158
+ "title": "Fillet",
159
+ "description": "Optional fillet edge finishing request.",
160
+ "x-printspec-control": "number",
161
+ "x-printspec-priority": "advanced"
162
+ },
163
+ "cornerRadius": {
164
+ "type": "number",
165
+ "exclusiveMinimum": 0,
166
+ "maximum": 10000,
167
+ "title": "Corner radius",
168
+ "description": "Corner radius in millimeters.",
169
+ "x-printspec-control": "number",
170
+ "x-printspec-unit": "mm",
171
+ "x-printspec-step": 0.1,
172
+ "x-printspec-priority": "advanced",
173
+ "examples": [
174
+ 4
175
+ ]
176
+ }
177
+ },
178
+ "additionalProperties": false,
179
+ "title": "Parameters",
180
+ "description": "Editable parameters for Drill Guide.",
181
+ "x-printspec-ui": {
182
+ "order": [
183
+ "length",
184
+ "width",
185
+ "height",
186
+ "holeDiameter",
187
+ "holeCount",
188
+ "holeSpacing",
189
+ "bushingDiameter",
190
+ "holes",
191
+ "slots",
192
+ "chamfer",
193
+ "fillet",
194
+ "cornerRadius"
195
+ ],
196
+ "groups": [
197
+ {
198
+ "id": "parameters",
199
+ "title": "Parameters",
200
+ "fields": [
201
+ "length",
202
+ "width",
203
+ "height",
204
+ "holeDiameter",
205
+ "holeCount",
206
+ "holeSpacing",
207
+ "bushingDiameter",
208
+ "holes",
209
+ "slots",
210
+ "chamfer",
211
+ "fillet",
212
+ "cornerRadius"
213
+ ]
214
+ }
215
+ ]
216
+ }
217
+ },
218
+ "hardware": {
219
+ "type": "array",
220
+ "items": {
221
+ "$ref": "common.schema.json#/$defs/HardwareItem"
222
+ }
223
+ }
224
+ },
225
+ "additionalProperties": false,
226
+ "title": "Drill Guide",
227
+ "description": "Block used to guide repeated drilled holes."
228
+ }
@@ -0,0 +1,208 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.invisra.ai/printspec/0.1.0/electronics-standoff.schema.json",
4
+ "type": "object",
5
+ "required": [
6
+ "type",
7
+ "label",
8
+ "parameters"
9
+ ],
10
+ "properties": {
11
+ "type": {
12
+ "const": "electronics_standoff",
13
+ "title": "Part type",
14
+ "description": "Stable printspec part family identifier."
15
+ },
16
+ "label": {
17
+ "type": "string",
18
+ "minLength": 1,
19
+ "title": "Label",
20
+ "description": "Human-readable name for this part."
21
+ },
22
+ "description": {
23
+ "type": "string",
24
+ "title": "Description",
25
+ "description": "Optional human-readable notes for this part."
26
+ },
27
+ "parameters": {
28
+ "type": "object",
29
+ "required": [
30
+ "outerDiameter",
31
+ "height",
32
+ "holeDiameter"
33
+ ],
34
+ "properties": {
35
+ "outerDiameter": {
36
+ "type": "number",
37
+ "exclusiveMinimum": 0,
38
+ "maximum": 10000,
39
+ "title": "Outer diameter",
40
+ "description": "Outer diameter in millimeters.",
41
+ "x-printspec-control": "number",
42
+ "x-printspec-unit": "mm",
43
+ "x-printspec-step": 0.1,
44
+ "x-printspec-priority": "primary",
45
+ "examples": [
46
+ 12
47
+ ]
48
+ },
49
+ "height": {
50
+ "type": "number",
51
+ "exclusiveMinimum": 0,
52
+ "maximum": 10000,
53
+ "title": "Height",
54
+ "description": "Height in millimeters.",
55
+ "x-printspec-control": "number",
56
+ "x-printspec-unit": "mm",
57
+ "x-printspec-step": 0.1,
58
+ "x-printspec-priority": "primary",
59
+ "examples": [
60
+ 10
61
+ ]
62
+ },
63
+ "holeDiameter": {
64
+ "type": "number",
65
+ "exclusiveMinimum": 0,
66
+ "maximum": 10000,
67
+ "title": "Hole diameter",
68
+ "description": "Hole diameter in millimeters.",
69
+ "x-printspec-control": "number",
70
+ "x-printspec-unit": "mm",
71
+ "x-printspec-step": 0.1,
72
+ "x-printspec-priority": "primary",
73
+ "examples": [
74
+ 3.2
75
+ ]
76
+ },
77
+ "baseDiameter": {
78
+ "type": "number",
79
+ "exclusiveMinimum": 0,
80
+ "maximum": 10000,
81
+ "title": "Base diameter",
82
+ "description": "Base diameter in millimeters.",
83
+ "x-printspec-control": "number",
84
+ "x-printspec-unit": "mm",
85
+ "x-printspec-step": 0.1,
86
+ "x-printspec-priority": "advanced"
87
+ },
88
+ "baseHeight": {
89
+ "type": "number",
90
+ "exclusiveMinimum": 0,
91
+ "maximum": 10000,
92
+ "title": "Base height",
93
+ "description": "Base height in millimeters.",
94
+ "x-printspec-control": "number",
95
+ "x-printspec-unit": "mm",
96
+ "x-printspec-step": 0.1,
97
+ "x-printspec-priority": "advanced"
98
+ },
99
+ "holes": {
100
+ "type": "array",
101
+ "items": {
102
+ "$ref": "common.schema.json#/$defs/Hole"
103
+ },
104
+ "title": "Holes",
105
+ "description": "Optional hole features to include in the generated part.",
106
+ "x-printspec-control": "hole-list",
107
+ "x-printspec-priority": "advanced",
108
+ "default": []
109
+ },
110
+ "slots": {
111
+ "type": "array",
112
+ "items": {
113
+ "$ref": "common.schema.json#/$defs/Slot"
114
+ },
115
+ "title": "Slots",
116
+ "description": "Optional slot features to include in the generated part.",
117
+ "x-printspec-control": "slot-list",
118
+ "x-printspec-priority": "advanced",
119
+ "default": []
120
+ },
121
+ "chamfer": {
122
+ "$ref": "common.schema.json#/$defs/Chamfer",
123
+ "title": "Chamfer",
124
+ "description": "Optional chamfer edge finishing request.",
125
+ "x-printspec-control": "number",
126
+ "x-printspec-priority": "advanced"
127
+ },
128
+ "fillet": {
129
+ "$ref": "common.schema.json#/$defs/Fillet",
130
+ "title": "Fillet",
131
+ "description": "Optional fillet edge finishing request.",
132
+ "x-printspec-control": "number",
133
+ "x-printspec-priority": "advanced"
134
+ },
135
+ "cornerRadius": {
136
+ "type": "number",
137
+ "exclusiveMinimum": 0,
138
+ "maximum": 10000,
139
+ "title": "Corner radius",
140
+ "description": "Corner radius in millimeters.",
141
+ "x-printspec-control": "number",
142
+ "x-printspec-unit": "mm",
143
+ "x-printspec-step": 0.1,
144
+ "x-printspec-priority": "advanced",
145
+ "examples": [
146
+ 4
147
+ ]
148
+ }
149
+ },
150
+ "additionalProperties": false,
151
+ "title": "Parameters",
152
+ "description": "Editable parameters for Electronics Standoff.",
153
+ "x-printspec-ui": {
154
+ "order": [
155
+ "outerDiameter",
156
+ "height",
157
+ "holeDiameter",
158
+ "baseDiameter",
159
+ "baseHeight",
160
+ "cornerRadius",
161
+ "holes",
162
+ "slots",
163
+ "chamfer",
164
+ "fillet"
165
+ ],
166
+ "groups": [
167
+ {
168
+ "id": "dimensions",
169
+ "title": "Dimensions",
170
+ "fields": [
171
+ "outerDiameter",
172
+ "height",
173
+ "holeDiameter",
174
+ "baseDiameter",
175
+ "baseHeight",
176
+ "cornerRadius"
177
+ ]
178
+ },
179
+ {
180
+ "id": "features",
181
+ "title": "Features",
182
+ "fields": [
183
+ "holes",
184
+ "slots"
185
+ ]
186
+ },
187
+ {
188
+ "id": "finishing",
189
+ "title": "Finishing",
190
+ "fields": [
191
+ "chamfer",
192
+ "fillet"
193
+ ]
194
+ }
195
+ ]
196
+ }
197
+ },
198
+ "hardware": {
199
+ "type": "array",
200
+ "items": {
201
+ "$ref": "common.schema.json#/$defs/HardwareItem"
202
+ }
203
+ }
204
+ },
205
+ "additionalProperties": false,
206
+ "title": "Electronics Standoff",
207
+ "description": "Round standoff with optional base for supporting circuit boards."
208
+ }