@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,189 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.invisra.ai/printspec/0.1.0/rounded-rectangular-plate.schema.json",
4
+ "type": "object",
5
+ "required": [
6
+ "type",
7
+ "label",
8
+ "parameters"
9
+ ],
10
+ "properties": {
11
+ "type": {
12
+ "const": "rounded_rectangular_plate",
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
+ "thickness",
33
+ "cornerRadius"
34
+ ],
35
+ "properties": {
36
+ "length": {
37
+ "type": "number",
38
+ "exclusiveMinimum": 0,
39
+ "maximum": 10000,
40
+ "title": "Length",
41
+ "description": "Length in millimeters.",
42
+ "x-printspec-control": "number",
43
+ "x-printspec-unit": "mm",
44
+ "x-printspec-step": 0.1,
45
+ "x-printspec-priority": "primary",
46
+ "examples": [
47
+ 100
48
+ ]
49
+ },
50
+ "width": {
51
+ "type": "number",
52
+ "exclusiveMinimum": 0,
53
+ "maximum": 10000,
54
+ "title": "Width",
55
+ "description": "Width in millimeters.",
56
+ "x-printspec-control": "number",
57
+ "x-printspec-unit": "mm",
58
+ "x-printspec-step": 0.1,
59
+ "x-printspec-priority": "primary",
60
+ "examples": [
61
+ 50
62
+ ]
63
+ },
64
+ "thickness": {
65
+ "type": "number",
66
+ "exclusiveMinimum": 0,
67
+ "maximum": 10000,
68
+ "title": "Thickness",
69
+ "description": "Thickness in millimeters.",
70
+ "x-printspec-control": "number",
71
+ "x-printspec-unit": "mm",
72
+ "x-printspec-step": 0.1,
73
+ "x-printspec-priority": "primary",
74
+ "examples": [
75
+ 3
76
+ ]
77
+ },
78
+ "cornerRadius": {
79
+ "type": "number",
80
+ "exclusiveMinimum": 0,
81
+ "maximum": 10000,
82
+ "title": "Corner radius",
83
+ "description": "Corner radius in millimeters.",
84
+ "x-printspec-control": "number",
85
+ "x-printspec-unit": "mm",
86
+ "x-printspec-step": 0.1,
87
+ "x-printspec-priority": "primary",
88
+ "examples": [
89
+ 4
90
+ ]
91
+ },
92
+ "holes": {
93
+ "type": "array",
94
+ "items": {
95
+ "$ref": "common.schema.json#/$defs/Hole"
96
+ },
97
+ "title": "Holes",
98
+ "description": "Optional hole features to include in the generated part.",
99
+ "x-printspec-control": "hole-list",
100
+ "x-printspec-priority": "advanced",
101
+ "default": []
102
+ },
103
+ "slots": {
104
+ "type": "array",
105
+ "items": {
106
+ "$ref": "common.schema.json#/$defs/Slot"
107
+ },
108
+ "title": "Slots",
109
+ "description": "Optional slot features to include in the generated part.",
110
+ "x-printspec-control": "slot-list",
111
+ "x-printspec-priority": "advanced",
112
+ "default": []
113
+ },
114
+ "chamfer": {
115
+ "$ref": "common.schema.json#/$defs/Chamfer",
116
+ "title": "Chamfer",
117
+ "description": "Optional chamfer edge finishing request.",
118
+ "x-printspec-control": "number",
119
+ "x-printspec-priority": "advanced"
120
+ },
121
+ "fillet": {
122
+ "$ref": "common.schema.json#/$defs/Fillet",
123
+ "title": "Fillet",
124
+ "description": "Optional fillet edge finishing request.",
125
+ "x-printspec-control": "number",
126
+ "x-printspec-priority": "advanced"
127
+ }
128
+ },
129
+ "additionalProperties": false,
130
+ "title": "Parameters",
131
+ "description": "Editable parameters for Rounded Rectangular Plate.",
132
+ "x-printspec-ui": {
133
+ "order": [
134
+ "length",
135
+ "width",
136
+ "thickness",
137
+ "cornerRadius",
138
+ "holes",
139
+ "slots",
140
+ "chamfer",
141
+ "fillet"
142
+ ],
143
+ "groups": [
144
+ {
145
+ "id": "dimensions",
146
+ "title": "Dimensions",
147
+ "fields": [
148
+ "length",
149
+ "width",
150
+ "thickness",
151
+ "cornerRadius"
152
+ ]
153
+ },
154
+ {
155
+ "id": "features",
156
+ "title": "Features",
157
+ "fields": [
158
+ "holes",
159
+ "slots"
160
+ ]
161
+ },
162
+ {
163
+ "id": "finishing",
164
+ "title": "Finishing",
165
+ "fields": [
166
+ "chamfer",
167
+ "fillet"
168
+ ]
169
+ }
170
+ ]
171
+ },
172
+ "x-printspec-warnings": [
173
+ {
174
+ "condition": "cornerRadius > min(length, width) / 2",
175
+ "message": "Corner radius should be no more than half the smaller side."
176
+ }
177
+ ]
178
+ },
179
+ "hardware": {
180
+ "type": "array",
181
+ "items": {
182
+ "$ref": "common.schema.json#/$defs/HardwareItem"
183
+ }
184
+ }
185
+ },
186
+ "additionalProperties": false,
187
+ "title": "Rounded Rectangular Plate",
188
+ "description": "Flat plate with rounded outside corners and optional hole or slot features."
189
+ }
@@ -0,0 +1,216 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.invisra.ai/printspec/0.1.0/simple-box.schema.json",
4
+ "type": "object",
5
+ "required": [
6
+ "type",
7
+ "label",
8
+ "parameters"
9
+ ],
10
+ "properties": {
11
+ "type": {
12
+ "const": "simple_box",
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
+ "outerLength",
31
+ "outerWidth",
32
+ "outerHeight",
33
+ "wallThickness"
34
+ ],
35
+ "properties": {
36
+ "outerLength": {
37
+ "type": "number",
38
+ "exclusiveMinimum": 0,
39
+ "maximum": 10000,
40
+ "title": "Outer length",
41
+ "description": "Outer length in millimeters.",
42
+ "x-printspec-control": "number",
43
+ "x-printspec-unit": "mm",
44
+ "x-printspec-step": 0.1,
45
+ "x-printspec-priority": "primary"
46
+ },
47
+ "outerWidth": {
48
+ "type": "number",
49
+ "exclusiveMinimum": 0,
50
+ "maximum": 10000,
51
+ "title": "Outer width",
52
+ "description": "Outer width in millimeters.",
53
+ "x-printspec-control": "number",
54
+ "x-printspec-unit": "mm",
55
+ "x-printspec-step": 0.1,
56
+ "x-printspec-priority": "primary"
57
+ },
58
+ "outerHeight": {
59
+ "type": "number",
60
+ "exclusiveMinimum": 0,
61
+ "maximum": 10000,
62
+ "title": "Outer height",
63
+ "description": "Outer height in millimeters.",
64
+ "x-printspec-control": "number",
65
+ "x-printspec-unit": "mm",
66
+ "x-printspec-step": 0.1,
67
+ "x-printspec-priority": "primary"
68
+ },
69
+ "wallThickness": {
70
+ "type": "number",
71
+ "exclusiveMinimum": 0,
72
+ "maximum": 10000,
73
+ "title": "Wall thickness",
74
+ "description": "Wall thickness in millimeters.",
75
+ "x-printspec-control": "number",
76
+ "x-printspec-unit": "mm",
77
+ "x-printspec-step": 0.1,
78
+ "x-printspec-priority": "primary",
79
+ "examples": [
80
+ 2
81
+ ]
82
+ },
83
+ "holes": {
84
+ "type": "array",
85
+ "items": {
86
+ "$ref": "common.schema.json#/$defs/Hole"
87
+ },
88
+ "title": "Holes",
89
+ "description": "Optional hole features to include in the generated part.",
90
+ "x-printspec-control": "hole-list",
91
+ "x-printspec-priority": "advanced",
92
+ "default": []
93
+ },
94
+ "slots": {
95
+ "type": "array",
96
+ "items": {
97
+ "$ref": "common.schema.json#/$defs/Slot"
98
+ },
99
+ "title": "Slots",
100
+ "description": "Optional slot features to include in the generated part.",
101
+ "x-printspec-control": "slot-list",
102
+ "x-printspec-priority": "advanced",
103
+ "default": []
104
+ },
105
+ "chamfer": {
106
+ "$ref": "common.schema.json#/$defs/Chamfer",
107
+ "title": "Chamfer",
108
+ "description": "Optional chamfer edge finishing request.",
109
+ "x-printspec-control": "number",
110
+ "x-printspec-priority": "advanced"
111
+ },
112
+ "fillet": {
113
+ "$ref": "common.schema.json#/$defs/Fillet",
114
+ "title": "Fillet",
115
+ "description": "Optional fillet edge finishing request.",
116
+ "x-printspec-control": "number",
117
+ "x-printspec-priority": "advanced"
118
+ },
119
+ "cornerRadius": {
120
+ "type": "number",
121
+ "exclusiveMinimum": 0,
122
+ "maximum": 10000,
123
+ "title": "Corner radius",
124
+ "description": "Corner radius in millimeters.",
125
+ "x-printspec-control": "number",
126
+ "x-printspec-unit": "mm",
127
+ "x-printspec-step": 0.1,
128
+ "x-printspec-priority": "advanced",
129
+ "examples": [
130
+ 4
131
+ ]
132
+ },
133
+ "mountingBosses": {
134
+ "type": "array",
135
+ "items": {
136
+ "type": "object"
137
+ },
138
+ "title": "Mounting bosses",
139
+ "description": "Mounting bosses parameter.",
140
+ "x-printspec-control": "array",
141
+ "x-printspec-priority": "advanced",
142
+ "default": []
143
+ },
144
+ "cableCutouts": {
145
+ "type": "array",
146
+ "items": {
147
+ "$ref": "common.schema.json#/$defs/Slot"
148
+ },
149
+ "title": "Cable cutouts",
150
+ "description": "Cable cutouts parameter.",
151
+ "x-printspec-control": "array",
152
+ "x-printspec-priority": "advanced",
153
+ "default": []
154
+ }
155
+ },
156
+ "additionalProperties": false,
157
+ "title": "Parameters",
158
+ "description": "Editable parameters for Simple Box.",
159
+ "x-printspec-ui": {
160
+ "order": [
161
+ "outerLength",
162
+ "outerWidth",
163
+ "outerHeight",
164
+ "wallThickness",
165
+ "cornerRadius",
166
+ "mountingBosses",
167
+ "cableCutouts",
168
+ "holes",
169
+ "slots",
170
+ "chamfer",
171
+ "fillet"
172
+ ],
173
+ "groups": [
174
+ {
175
+ "id": "dimensions",
176
+ "title": "Dimensions",
177
+ "fields": [
178
+ "outerLength",
179
+ "outerWidth",
180
+ "outerHeight",
181
+ "wallThickness",
182
+ "cornerRadius"
183
+ ]
184
+ },
185
+ {
186
+ "id": "features",
187
+ "title": "Features",
188
+ "fields": [
189
+ "mountingBosses",
190
+ "cableCutouts",
191
+ "holes",
192
+ "slots"
193
+ ]
194
+ },
195
+ {
196
+ "id": "finishing",
197
+ "title": "Finishing",
198
+ "fields": [
199
+ "chamfer",
200
+ "fillet"
201
+ ]
202
+ }
203
+ ]
204
+ }
205
+ },
206
+ "hardware": {
207
+ "type": "array",
208
+ "items": {
209
+ "$ref": "common.schema.json#/$defs/HardwareItem"
210
+ }
211
+ }
212
+ },
213
+ "additionalProperties": false,
214
+ "title": "Simple Box",
215
+ "description": "Open-top box or enclosure body with walls and optional cutouts."
216
+ }
@@ -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/simple-lid.schema.json",
4
+ "type": "object",
5
+ "required": [
6
+ "type",
7
+ "label",
8
+ "parameters"
9
+ ],
10
+ "properties": {
11
+ "type": {
12
+ "const": "simple_lid",
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
+ "thickness"
33
+ ],
34
+ "properties": {
35
+ "length": {
36
+ "type": "number",
37
+ "exclusiveMinimum": 0,
38
+ "maximum": 10000,
39
+ "title": "Length",
40
+ "description": "Length 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
+ 100
47
+ ]
48
+ },
49
+ "width": {
50
+ "type": "number",
51
+ "exclusiveMinimum": 0,
52
+ "maximum": 10000,
53
+ "title": "Width",
54
+ "description": "Width 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
+ 50
61
+ ]
62
+ },
63
+ "thickness": {
64
+ "type": "number",
65
+ "exclusiveMinimum": 0,
66
+ "maximum": 10000,
67
+ "title": "Thickness",
68
+ "description": "Thickness 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
75
+ ]
76
+ },
77
+ "lipHeight": {
78
+ "type": "number",
79
+ "exclusiveMinimum": 0,
80
+ "maximum": 10000,
81
+ "title": "Lip height",
82
+ "description": "Lip height 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
+ "lipClearance": {
89
+ "type": "number",
90
+ "exclusiveMinimum": 0,
91
+ "maximum": 10000,
92
+ "title": "Lip clearance",
93
+ "description": "Lip clearance 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 Simple Lid.",
153
+ "x-printspec-ui": {
154
+ "order": [
155
+ "length",
156
+ "width",
157
+ "thickness",
158
+ "lipHeight",
159
+ "lipClearance",
160
+ "cornerRadius",
161
+ "holes",
162
+ "slots",
163
+ "chamfer",
164
+ "fillet"
165
+ ],
166
+ "groups": [
167
+ {
168
+ "id": "dimensions",
169
+ "title": "Dimensions",
170
+ "fields": [
171
+ "length",
172
+ "width",
173
+ "thickness",
174
+ "lipHeight",
175
+ "lipClearance",
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": "Simple Lid",
207
+ "description": "Flat lid with optional lip, holes, and edge finishing."
208
+ }