jscad-electronics 0.0.194 → 0.0.195
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/dist/index.d.ts +19 -2
- package/dist/index.js +1079 -930
- package/dist/index.js.map +1 -1
- package/dist/vanilla.d.ts +19 -2
- package/dist/vanilla.js +196 -52
- package/dist/vanilla.js.map +1 -1
- package/package.json +1 -1
package/dist/vanilla.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { BufferGeometry } from 'three';
|
|
|
3
3
|
import * as jscadModeling from '@jscad/modeling';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
import * as _jscad_modeling_src_geometries_types from '@jscad/modeling/src/geometries/types';
|
|
6
|
-
import { SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexSocketBoltModelPropsInput, NemaMotorModelPropsInput, SheetMetalModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
6
|
+
import { FlatHeadScrewModelPropsInput, SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexSocketBoltModelPropsInput, NemaMotorModelPropsInput, SheetMetalModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
7
7
|
|
|
8
8
|
type VNode = {
|
|
9
9
|
type: any;
|
|
@@ -26,6 +26,23 @@ type RenderResult = {
|
|
|
26
26
|
|
|
27
27
|
declare function convertCSGToThreeGeom(csg: any): BufferGeometry;
|
|
28
28
|
|
|
29
|
+
interface FlatHeadScrewMeshOptions {
|
|
30
|
+
radialSegments?: number;
|
|
31
|
+
threadStepsPerTurn?: number;
|
|
32
|
+
}
|
|
33
|
+
/** Outward-oriented, welded indexed surface, in millimeters. */
|
|
34
|
+
interface FlatHeadScrewMesh {
|
|
35
|
+
positions: number[];
|
|
36
|
+
indices: number[];
|
|
37
|
+
}
|
|
38
|
+
declare function createFlatHeadScrewMesh(input: FlatHeadScrewModelPropsInput, options?: FlatHeadScrewMeshOptions): FlatHeadScrewMesh;
|
|
39
|
+
|
|
40
|
+
type FlatHeadScrewProps = FlatHeadScrewModelPropsInput & {
|
|
41
|
+
color?: string;
|
|
42
|
+
};
|
|
43
|
+
declare function createFlatHeadScrewGeom(input: FlatHeadScrewModelPropsInput, options?: FlatHeadScrewMeshOptions): _jscad_modeling_src_geometries_types.Geom3;
|
|
44
|
+
declare function FlatHeadScrew({ color, ...props }: FlatHeadScrewProps): react_jsx_runtime.JSX.Element;
|
|
45
|
+
|
|
29
46
|
/** Indexed triangles, counterclockwise from outside; millimeters, Z up. */
|
|
30
47
|
interface SpurGearMesh {
|
|
31
48
|
positions: number[];
|
|
@@ -161,4 +178,4 @@ declare function createJSCADRenderer(jscad: typeof jscadModeling): {
|
|
|
161
178
|
};
|
|
162
179
|
};
|
|
163
180
|
|
|
164
|
-
export { type ColoredGeom, Fragment, HelicalGear, type HelicalGearMesh, type HelicalGearProps, HexBolt, type HexBoltMesh, type HexBoltMeshOptions, type HexBoltProps, HexSocketBolt, type HexSocketBoltMesh, type HexSocketBoltProps, NEMA17, NEMA23, NEMA8, type NemaFrameMotorProps, NemaMotor, type NemaMotorProps, type RenderResult, SheetMetal, type SheetMetalMesh, type SheetMetalProps, SpurGear, type SpurGearMesh, type SpurGearProps, type VNode, WormGear, type WormGearMesh, type WormGearProps, convertCSGToThreeGeom, createHelicalGearGeom, createHelicalGearMesh, createHexBoltGeom, createHexBoltMesh, createHexSocketBoltGeom, createHexSocketBoltMesh, createJSCADRenderer, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
|
181
|
+
export { type ColoredGeom, FlatHeadScrew, type FlatHeadScrewMesh, type FlatHeadScrewMeshOptions, type FlatHeadScrewProps, Fragment, HelicalGear, type HelicalGearMesh, type HelicalGearProps, HexBolt, type HexBoltMesh, type HexBoltMeshOptions, type HexBoltProps, HexSocketBolt, type HexSocketBoltMesh, type HexSocketBoltProps, NEMA17, NEMA23, NEMA8, type NemaFrameMotorProps, NemaMotor, type NemaMotorProps, type RenderResult, SheetMetal, type SheetMetalMesh, type SheetMetalProps, SpurGear, type SpurGearMesh, type SpurGearProps, type VNode, WormGear, type WormGearMesh, type WormGearProps, convertCSGToThreeGeom, createFlatHeadScrewGeom, createFlatHeadScrewMesh, createHelicalGearGeom, createHelicalGearMesh, createHexBoltGeom, createHexBoltMesh, createHexSocketBoltGeom, createHexSocketBoltMesh, createJSCADRenderer, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
package/dist/vanilla.js
CHANGED
|
@@ -179,28 +179,28 @@ var FootprintPlatedHole = ({
|
|
|
179
179
|
throw new Error("Shape not supported: " + hole.shape);
|
|
180
180
|
};
|
|
181
181
|
|
|
182
|
-
// lib/models/
|
|
183
|
-
import {
|
|
182
|
+
// lib/models/flatheadscrew/register.tsx
|
|
183
|
+
import { flatHeadScrewModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
184
184
|
|
|
185
185
|
// lib/model-registry.ts
|
|
186
|
-
function defineModelRenderer(
|
|
187
|
-
return
|
|
186
|
+
function defineModelRenderer(model10) {
|
|
187
|
+
return model10;
|
|
188
188
|
}
|
|
189
189
|
var ModelRendererRegistry = class {
|
|
190
190
|
models = /* @__PURE__ */ new Map();
|
|
191
|
-
register(
|
|
192
|
-
if (typeof
|
|
191
|
+
register(model10) {
|
|
192
|
+
if (typeof model10.name !== "string" || !/^[a-z]+$/.test(model10.name)) {
|
|
193
193
|
throw new Error(
|
|
194
194
|
"Model renderer names must contain only lowercase letters"
|
|
195
195
|
);
|
|
196
196
|
}
|
|
197
|
-
if (this.models.has(
|
|
198
|
-
throw new Error(`Model renderer "${
|
|
197
|
+
if (this.models.has(model10.name)) {
|
|
198
|
+
throw new Error(`Model renderer "${model10.name}" is already registered`);
|
|
199
199
|
}
|
|
200
|
-
if (
|
|
200
|
+
if (model10.pads !== "none" && model10.pads !== "footprinter") {
|
|
201
201
|
throw new Error('Model renderer pads must be "none" or "footprinter"');
|
|
202
202
|
}
|
|
203
|
-
const { name, schema, render: render2, pads } =
|
|
203
|
+
const { name, schema, render: render2, pads } = model10;
|
|
204
204
|
this.models.set(name, {
|
|
205
205
|
name,
|
|
206
206
|
schema,
|
|
@@ -226,6 +226,161 @@ var ModelRendererRegistry = class {
|
|
|
226
226
|
}
|
|
227
227
|
};
|
|
228
228
|
|
|
229
|
+
// lib/models/flatheadscrew/mesh.ts
|
|
230
|
+
import {
|
|
231
|
+
flatHeadScrewModelPropsSchema
|
|
232
|
+
} from "@tscircuit/modelprinter";
|
|
233
|
+
function createFlatHeadScrewMesh(input, options = {}) {
|
|
234
|
+
const p = flatHeadScrewModelPropsSchema.parse(input);
|
|
235
|
+
const segments = options.radialSegments ?? 96;
|
|
236
|
+
const axial = options.threadStepsPerTurn ?? 24;
|
|
237
|
+
if (!Number.isInteger(segments) || segments < 24 || segments > 192 || segments % 24 !== 0 || !Number.isInteger(axial) || axial < 24 || axial > 96)
|
|
238
|
+
throw new Error(
|
|
239
|
+
"Screw mesh resolution requires 24..192 radial segments divisible by 24 and 24..96 thread steps"
|
|
240
|
+
);
|
|
241
|
+
const positions = [], indices = [];
|
|
242
|
+
const welded = /* @__PURE__ */ new Map();
|
|
243
|
+
const vertex = (x, y, z) => {
|
|
244
|
+
const key = [x, y, z].map((v) => Math.round(v * 1e10)).join(":");
|
|
245
|
+
const existing = welded.get(key);
|
|
246
|
+
if (existing !== void 0) return existing;
|
|
247
|
+
const index = positions.length / 3;
|
|
248
|
+
positions.push(x, y, z);
|
|
249
|
+
welded.set(key, index);
|
|
250
|
+
return index;
|
|
251
|
+
};
|
|
252
|
+
const triangle = (a, b, c) => {
|
|
253
|
+
if (a === b || b === c || c === a) return;
|
|
254
|
+
const point = (i) => positions.slice(3 * i, 3 * i + 3);
|
|
255
|
+
const A = point(a), B = point(b), C = point(c);
|
|
256
|
+
const u = B.map((v2, i) => v2 - A[i]), v = C.map((w, i) => w - A[i]);
|
|
257
|
+
const area = Math.hypot(
|
|
258
|
+
u[1] * v[2] - u[2] * v[1],
|
|
259
|
+
u[2] * v[0] - u[0] * v[2],
|
|
260
|
+
u[0] * v[1] - u[1] * v[0]
|
|
261
|
+
);
|
|
262
|
+
if (area > 1e-12) indices.push(a, b, c);
|
|
263
|
+
};
|
|
264
|
+
const ring = (radiusAt, zAt) => Array.from({ length: segments }, (_, i) => {
|
|
265
|
+
const theta = i * 2 * Math.PI / segments, r = radiusAt(theta);
|
|
266
|
+
return vertex(
|
|
267
|
+
r * Math.cos(theta),
|
|
268
|
+
r * Math.sin(theta),
|
|
269
|
+
typeof zAt === "number" ? zAt : zAt(theta)
|
|
270
|
+
);
|
|
271
|
+
});
|
|
272
|
+
const connect = (a, b) => {
|
|
273
|
+
for (let i = 0; i < segments; i++) {
|
|
274
|
+
const n = (i + 1) % segments;
|
|
275
|
+
triangle(a[i], a[n], b[n]);
|
|
276
|
+
triangle(a[i], b[n], b[i]);
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
const cap = (a, z, up) => {
|
|
280
|
+
const c = vertex(0, 0, z);
|
|
281
|
+
for (let i = 0; i < segments; i++) {
|
|
282
|
+
const n = (i + 1) % segments;
|
|
283
|
+
up ? triangle(c, a[i], a[n]) : triangle(c, a[n], a[i]);
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
let previous = [];
|
|
287
|
+
const add = (radiusAt, zAt) => {
|
|
288
|
+
const r = ring(radiusAt, zAt);
|
|
289
|
+
if (previous.length) connect(previous, r);
|
|
290
|
+
previous = r;
|
|
291
|
+
return r;
|
|
292
|
+
};
|
|
293
|
+
const major = p.diameter / 2, minor = p.threadRootDiameter / 2, pitch = p.threadPitch;
|
|
294
|
+
const shaftEnd = -p.headHeight - p.underHeadRadius * (Math.sqrt(2) - 1);
|
|
295
|
+
const steps = p.showThreads ? Math.ceil((shaftEnd + p.length) / pitch * axial) : 1;
|
|
296
|
+
if ((steps + 100) * segments > 4e5)
|
|
297
|
+
throw new Error("Screw exceeds mesh resolution limit");
|
|
298
|
+
const levels = /* @__PURE__ */ new Set([
|
|
299
|
+
-p.length,
|
|
300
|
+
-p.length + p.tipChamfer,
|
|
301
|
+
shaftEnd
|
|
302
|
+
]);
|
|
303
|
+
if (p.showThreads)
|
|
304
|
+
for (let i = 0; i <= steps; i++)
|
|
305
|
+
levels.add(-p.length + (shaftEnd + p.length) * i / steps);
|
|
306
|
+
for (const z of [...levels].sort((a, b) => a - b)) {
|
|
307
|
+
const r = add((theta) => {
|
|
308
|
+
const phase = (((z + p.length) / pitch - (p.threadHand === "right" ? 1 : -1) * theta / (2 * Math.PI)) % 1 + 1) % 1;
|
|
309
|
+
const d = Math.min(phase, 1 - phase);
|
|
310
|
+
const groove = Math.min(
|
|
311
|
+
major - minor,
|
|
312
|
+
Math.max(0, (d - 1 / 16) * pitch * Math.sqrt(3))
|
|
313
|
+
);
|
|
314
|
+
const thread = p.showThreads ? major - groove : major;
|
|
315
|
+
return Math.min(
|
|
316
|
+
thread,
|
|
317
|
+
major - Math.max(0, p.tipChamfer - (z + p.length))
|
|
318
|
+
);
|
|
319
|
+
}, z);
|
|
320
|
+
if (z === -p.length) cap(r, z, false);
|
|
321
|
+
}
|
|
322
|
+
add(() => major, shaftEnd);
|
|
323
|
+
const filletCenterR = major + p.underHeadRadius;
|
|
324
|
+
const filletCenterZ = shaftEnd;
|
|
325
|
+
for (let i = 1; i <= 16; i++) {
|
|
326
|
+
const angle = Math.PI - (Math.PI - 3 * Math.PI / 4) * i / 16;
|
|
327
|
+
add(
|
|
328
|
+
() => filletCenterR + p.underHeadRadius * Math.cos(angle),
|
|
329
|
+
filletCenterZ + p.underHeadRadius * Math.sin(angle)
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
const hexRadius = (theta) => p.socketAcrossFlats / 2 / Math.max(
|
|
333
|
+
Math.abs(Math.sin(theta)),
|
|
334
|
+
Math.abs(Math.sin(theta + 2 * Math.PI / 3)),
|
|
335
|
+
Math.abs(Math.sin(theta + 4 * Math.PI / 3))
|
|
336
|
+
);
|
|
337
|
+
add(() => p.headDiameter / 2, 0);
|
|
338
|
+
add(hexRadius, 0);
|
|
339
|
+
add(hexRadius, -p.socketDepth);
|
|
340
|
+
cap(previous, -p.socketDepth, true);
|
|
341
|
+
return { positions, indices };
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// lib/mechanical/indexedMeshToGeom3.ts
|
|
345
|
+
import jscad from "@jscad/modeling";
|
|
346
|
+
function indexedMeshToGeom3(mesh) {
|
|
347
|
+
const polygons = [];
|
|
348
|
+
for (let i = 0; i < mesh.indices.length; i += 3)
|
|
349
|
+
polygons.push(
|
|
350
|
+
mesh.indices.slice(i, i + 3).map((index) => [
|
|
351
|
+
mesh.positions[index * 3],
|
|
352
|
+
mesh.positions[index * 3 + 1],
|
|
353
|
+
mesh.positions[index * 3 + 2]
|
|
354
|
+
])
|
|
355
|
+
);
|
|
356
|
+
return jscad.geometries.geom3.fromPoints(polygons);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// lib/models/flatheadscrew/FlatHeadScrew.tsx
|
|
360
|
+
function createFlatHeadScrewGeom(input, options) {
|
|
361
|
+
return indexedMeshToGeom3(createFlatHeadScrewMesh(input, options));
|
|
362
|
+
}
|
|
363
|
+
function FlatHeadScrew({
|
|
364
|
+
color = "#737e8f",
|
|
365
|
+
...props
|
|
366
|
+
}) {
|
|
367
|
+
return /* @__PURE__ */ jsx(Colorize, { color, children: /* @__PURE__ */ jsx(Custom, { geometry: createFlatHeadScrewGeom(props) }) });
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// lib/models/flatheadscrew/register.tsx
|
|
371
|
+
var model = defineModelRenderer({
|
|
372
|
+
name: "flatheadscrew",
|
|
373
|
+
schema: flatHeadScrewModelDefinitionSchema,
|
|
374
|
+
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(FlatHeadScrew, { ...props }),
|
|
375
|
+
pads: "none"
|
|
376
|
+
});
|
|
377
|
+
function register(registry) {
|
|
378
|
+
registry.register(model);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// lib/models/flexscreen/register.tsx
|
|
382
|
+
import { flexScreenModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
383
|
+
|
|
229
384
|
// lib/Screen.tsx
|
|
230
385
|
var Screen = ({
|
|
231
386
|
width: width10 = 30,
|
|
@@ -898,34 +1053,19 @@ var FlexScreen = (props) => {
|
|
|
898
1053
|
};
|
|
899
1054
|
|
|
900
1055
|
// lib/models/flexscreen/register.tsx
|
|
901
|
-
var
|
|
1056
|
+
var model2 = defineModelRenderer({
|
|
902
1057
|
name: "flexscreen",
|
|
903
1058
|
schema: flexScreenModelDefinitionSchema,
|
|
904
1059
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(FlexScreen, { ...props }),
|
|
905
1060
|
pads: "footprinter"
|
|
906
1061
|
});
|
|
907
|
-
function
|
|
908
|
-
registry.register(
|
|
1062
|
+
function register2(registry) {
|
|
1063
|
+
registry.register(model2);
|
|
909
1064
|
}
|
|
910
1065
|
|
|
911
1066
|
// lib/models/helicalgear/register.tsx
|
|
912
1067
|
import { helicalGearModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
913
1068
|
|
|
914
|
-
// lib/mechanical/indexedMeshToGeom3.ts
|
|
915
|
-
import jscad from "@jscad/modeling";
|
|
916
|
-
function indexedMeshToGeom3(mesh) {
|
|
917
|
-
const polygons = [];
|
|
918
|
-
for (let i = 0; i < mesh.indices.length; i += 3)
|
|
919
|
-
polygons.push(
|
|
920
|
-
mesh.indices.slice(i, i + 3).map((index) => [
|
|
921
|
-
mesh.positions[index * 3],
|
|
922
|
-
mesh.positions[index * 3 + 1],
|
|
923
|
-
mesh.positions[index * 3 + 2]
|
|
924
|
-
])
|
|
925
|
-
);
|
|
926
|
-
return jscad.geometries.geom3.fromPoints(polygons);
|
|
927
|
-
}
|
|
928
|
-
|
|
929
1069
|
// lib/mechanical/helical-gear-mesh.ts
|
|
930
1070
|
import {
|
|
931
1071
|
getHelicalGearDimensions,
|
|
@@ -1126,14 +1266,14 @@ function HelicalGear({ color = "#737e8f", ...props }) {
|
|
|
1126
1266
|
}
|
|
1127
1267
|
|
|
1128
1268
|
// lib/models/helicalgear/register.tsx
|
|
1129
|
-
var
|
|
1269
|
+
var model3 = defineModelRenderer({
|
|
1130
1270
|
name: "helicalgear",
|
|
1131
1271
|
schema: helicalGearModelDefinitionSchema,
|
|
1132
1272
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(HelicalGear, { ...props }),
|
|
1133
1273
|
pads: "none"
|
|
1134
1274
|
});
|
|
1135
|
-
function
|
|
1136
|
-
registry.register(
|
|
1275
|
+
function register3(registry) {
|
|
1276
|
+
registry.register(model3);
|
|
1137
1277
|
}
|
|
1138
1278
|
|
|
1139
1279
|
// lib/models/hexbolt/register.tsx
|
|
@@ -1274,14 +1414,14 @@ function HexBolt({ color = "#737e8f", ...props }) {
|
|
|
1274
1414
|
}
|
|
1275
1415
|
|
|
1276
1416
|
// lib/models/hexbolt/register.tsx
|
|
1277
|
-
var
|
|
1417
|
+
var model4 = defineModelRenderer({
|
|
1278
1418
|
name: "hexbolt",
|
|
1279
1419
|
schema: hexBoltModelDefinitionSchema,
|
|
1280
1420
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(HexBolt, { ...props }),
|
|
1281
1421
|
pads: "none"
|
|
1282
1422
|
});
|
|
1283
|
-
function
|
|
1284
|
-
registry.register(
|
|
1423
|
+
function register4(registry) {
|
|
1424
|
+
registry.register(model4);
|
|
1285
1425
|
}
|
|
1286
1426
|
|
|
1287
1427
|
// lib/models/hexsocketbolt/register.tsx
|
|
@@ -1393,14 +1533,14 @@ function HexSocketBolt({
|
|
|
1393
1533
|
}
|
|
1394
1534
|
|
|
1395
1535
|
// lib/models/hexsocketbolt/register.tsx
|
|
1396
|
-
var
|
|
1536
|
+
var model5 = defineModelRenderer({
|
|
1397
1537
|
name: "hexsocketbolt",
|
|
1398
1538
|
schema: hexSocketBoltModelDefinitionSchema,
|
|
1399
1539
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(HexSocketBolt, { ...props }),
|
|
1400
1540
|
pads: "none"
|
|
1401
1541
|
});
|
|
1402
|
-
function
|
|
1403
|
-
registry.register(
|
|
1542
|
+
function register5(registry) {
|
|
1543
|
+
registry.register(model5);
|
|
1404
1544
|
}
|
|
1405
1545
|
|
|
1406
1546
|
// lib/models/nema/register.tsx
|
|
@@ -1669,14 +1809,14 @@ var NEMA17 = (props) => /* @__PURE__ */ jsx(NemaMotor, { ...props, nemaSize: 17
|
|
|
1669
1809
|
var NEMA23 = (props) => /* @__PURE__ */ jsx(NemaMotor, { ...props, nemaSize: 23 });
|
|
1670
1810
|
|
|
1671
1811
|
// lib/models/nema/register.tsx
|
|
1672
|
-
var
|
|
1812
|
+
var model6 = defineModelRenderer({
|
|
1673
1813
|
name: "nema",
|
|
1674
1814
|
schema: nemaMotorModelDefinitionSchema,
|
|
1675
1815
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(NemaMotor, { ...props }),
|
|
1676
1816
|
pads: "none"
|
|
1677
1817
|
});
|
|
1678
|
-
function
|
|
1679
|
-
registry.register(
|
|
1818
|
+
function register6(registry) {
|
|
1819
|
+
registry.register(model6);
|
|
1680
1820
|
}
|
|
1681
1821
|
|
|
1682
1822
|
// lib/models/sheetmetal/register.tsx
|
|
@@ -1836,14 +1976,14 @@ function SheetMetal({ color = "#737e8f", ...props }) {
|
|
|
1836
1976
|
}
|
|
1837
1977
|
|
|
1838
1978
|
// lib/models/sheetmetal/register.tsx
|
|
1839
|
-
var
|
|
1979
|
+
var model7 = defineModelRenderer({
|
|
1840
1980
|
name: "sheetmetal",
|
|
1841
1981
|
schema: sheetMetalModelDefinitionSchema,
|
|
1842
1982
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(SheetMetal, { ...props }),
|
|
1843
1983
|
pads: "none"
|
|
1844
1984
|
});
|
|
1845
|
-
function
|
|
1846
|
-
registry.register(
|
|
1985
|
+
function register7(registry) {
|
|
1986
|
+
registry.register(model7);
|
|
1847
1987
|
}
|
|
1848
1988
|
|
|
1849
1989
|
// lib/models/spurgear/register.tsx
|
|
@@ -1858,14 +1998,14 @@ function SpurGear({ color = "#737e8f", ...props }) {
|
|
|
1858
1998
|
}
|
|
1859
1999
|
|
|
1860
2000
|
// lib/models/spurgear/register.tsx
|
|
1861
|
-
var
|
|
2001
|
+
var model8 = defineModelRenderer({
|
|
1862
2002
|
name: "spurgear",
|
|
1863
2003
|
schema: spurGearModelDefinitionSchema,
|
|
1864
2004
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(SpurGear, { ...props }),
|
|
1865
2005
|
pads: "none"
|
|
1866
2006
|
});
|
|
1867
|
-
function
|
|
1868
|
-
registry.register(
|
|
2007
|
+
function register8(registry) {
|
|
2008
|
+
registry.register(model8);
|
|
1869
2009
|
}
|
|
1870
2010
|
|
|
1871
2011
|
// lib/models/wormgear/register.tsx
|
|
@@ -2057,14 +2197,14 @@ function WormGear({ color = "#737e8f", ...props }) {
|
|
|
2057
2197
|
}
|
|
2058
2198
|
|
|
2059
2199
|
// lib/models/wormgear/register.tsx
|
|
2060
|
-
var
|
|
2200
|
+
var model9 = defineModelRenderer({
|
|
2061
2201
|
name: "wormgear",
|
|
2062
2202
|
schema: wormGearModelDefinitionSchema,
|
|
2063
2203
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(WormGear, { ...props }),
|
|
2064
2204
|
pads: "none"
|
|
2065
2205
|
});
|
|
2066
|
-
function
|
|
2067
|
-
registry.register(
|
|
2206
|
+
function register9(registry) {
|
|
2207
|
+
registry.register(model9);
|
|
2068
2208
|
}
|
|
2069
2209
|
|
|
2070
2210
|
// lib/generated/model-renderers.ts
|
|
@@ -2077,6 +2217,7 @@ function registerAllModelRenderers(registry) {
|
|
|
2077
2217
|
register6(registry);
|
|
2078
2218
|
register7(registry);
|
|
2079
2219
|
register8(registry);
|
|
2220
|
+
register9(registry);
|
|
2080
2221
|
}
|
|
2081
2222
|
|
|
2082
2223
|
// lib/default-model-registry.ts
|
|
@@ -9633,10 +9774,10 @@ var SOT143 = ({ footprint = "sot143" }) => {
|
|
|
9633
9774
|
var Footprinter3d = ({ footprint }) => {
|
|
9634
9775
|
const modelFn = mp3.string(footprint.split("_", 1)[0]).params().fn;
|
|
9635
9776
|
if (mp3.getModelNames().includes(modelFn)) {
|
|
9636
|
-
const
|
|
9637
|
-
const renderer = modelRendererRegistry.get(
|
|
9777
|
+
const model10 = mp3.string(footprint).json();
|
|
9778
|
+
const renderer = modelRendererRegistry.get(model10.fn);
|
|
9638
9779
|
if (renderer) {
|
|
9639
|
-
return renderer.render(
|
|
9780
|
+
return renderer.render(model10);
|
|
9640
9781
|
}
|
|
9641
9782
|
}
|
|
9642
9783
|
let normalizedFootprint = footprint;
|
|
@@ -10587,6 +10728,7 @@ function createJSCADRenderer(jscad4) {
|
|
|
10587
10728
|
return { createJSCADRoot };
|
|
10588
10729
|
}
|
|
10589
10730
|
export {
|
|
10731
|
+
FlatHeadScrew,
|
|
10590
10732
|
Fragment,
|
|
10591
10733
|
HelicalGear,
|
|
10592
10734
|
HexBolt,
|
|
@@ -10599,6 +10741,8 @@ export {
|
|
|
10599
10741
|
SpurGear,
|
|
10600
10742
|
WormGear,
|
|
10601
10743
|
convertCSGToThreeGeom,
|
|
10744
|
+
createFlatHeadScrewGeom,
|
|
10745
|
+
createFlatHeadScrewMesh,
|
|
10602
10746
|
createHelicalGearGeom,
|
|
10603
10747
|
createHelicalGearMesh,
|
|
10604
10748
|
createHexBoltGeom,
|