jscad-electronics 0.0.211 → 0.0.212
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 +1063 -926
- package/dist/index.js.map +1 -1
- package/dist/vanilla.d.ts +19 -2
- package/dist/vanilla.js +179 -47
- package/dist/vanilla.js.map +1 -1
- package/package.json +2 -2
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 { BallBearingModelPropsInput, ButtonScrewModelPropsInput, CableGrommetModelPropsInput, ClampingShaftCollarModelPropsInput, CompressionSpringModelPropsInput, FlangedBushingModelPropsInput, FlatHeadScrewModelPropsInput, SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexNutModelPropsInput, HexSocketBoltModelPropsInput, NemaMotorModelPropsInput, PanScrewModelPropsInput, PlainBushingModelPropsInput, RigidCouplerModelPropsInput, ShaftCollarModelPropsInput, SheetMetalModelPropsInput, ThreadedRodModelPropsInput, TSlotExtrusionModelPropsInput, TSlotGussetModelPropsInput, TSlotInsideCornerModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
6
|
+
import { BallBearingModelPropsInput, ButtonScrewModelPropsInput, CableGrommetModelPropsInput, ClampingShaftCollarModelPropsInput, CompressionSpringModelPropsInput, FlangedBushingModelPropsInput, FlatHeadScrewModelPropsInput, SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexNutModelPropsInput, HexSocketBoltModelPropsInput, HollowPositioningArmTubeModelPropsInput, NemaMotorModelPropsInput, PanScrewModelPropsInput, PlainBushingModelPropsInput, RigidCouplerModelPropsInput, ShaftCollarModelPropsInput, SheetMetalModelPropsInput, ThreadedRodModelPropsInput, TSlotExtrusionModelPropsInput, TSlotGussetModelPropsInput, TSlotInsideCornerModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
7
7
|
|
|
8
8
|
type VNode = {
|
|
9
9
|
type: any;
|
|
@@ -241,6 +241,23 @@ type HexSocketBoltProps = HexSocketBoltModelPropsInput & {
|
|
|
241
241
|
declare function createHexSocketBoltGeom(input: HexSocketBoltModelPropsInput): _jscad_modeling_src_geometries_types.Geom3;
|
|
242
242
|
declare function HexSocketBolt({ color, ...props }: HexSocketBoltProps): react_jsx_runtime.JSX.Element;
|
|
243
243
|
|
|
244
|
+
interface HollowPositioningArmTubeMesh {
|
|
245
|
+
positions: number[];
|
|
246
|
+
indices: number[];
|
|
247
|
+
}
|
|
248
|
+
interface HollowPositioningArmTubeMeshOptions {
|
|
249
|
+
radialSegments?: number;
|
|
250
|
+
segmentsPerRib?: number;
|
|
251
|
+
}
|
|
252
|
+
/** One closed annular sweep with open ends and a smooth, continuous wire bore. */
|
|
253
|
+
declare function createHollowPositioningArmTubeMesh(input: HollowPositioningArmTubeModelPropsInput, options?: HollowPositioningArmTubeMeshOptions): HollowPositioningArmTubeMesh;
|
|
254
|
+
|
|
255
|
+
type HollowPositioningArmTubeProps = HollowPositioningArmTubeModelPropsInput & {
|
|
256
|
+
color?: string;
|
|
257
|
+
};
|
|
258
|
+
declare function createHollowPositioningArmTubeGeom(input: HollowPositioningArmTubeModelPropsInput): _jscad_modeling_src_geometries_types.Geom3;
|
|
259
|
+
declare function HollowPositioningArmTube({ color, ...props }: HollowPositioningArmTubeProps): react_jsx_runtime.JSX.Element;
|
|
260
|
+
|
|
244
261
|
type NemaMotorProps = NemaMotorModelPropsInput & {
|
|
245
262
|
bodyColor?: string;
|
|
246
263
|
capColor?: string;
|
|
@@ -428,4 +445,4 @@ declare function createJSCADRenderer(jscad: typeof jscadModeling): {
|
|
|
428
445
|
};
|
|
429
446
|
};
|
|
430
447
|
|
|
431
|
-
export { BallBearing, type BallBearingMesh, type BallBearingMeshOptions, type BallBearingMeshPart, type BallBearingProps, ButtonScrew, type ButtonScrewMesh, type ButtonScrewMeshOptions, type ButtonScrewProps, CableGrommet, type CableGrommetMesh, type CableGrommetMeshOptions, type CableGrommetProps, ClampingShaftCollar, type ClampingShaftCollarMesh, type ClampingShaftCollarProps, type ColoredGeom, CompressionSpring, type CompressionSpringMesh, type CompressionSpringMeshOptions, type CompressionSpringProps, FlangedBushing, type FlangedBushingMesh, type FlangedBushingProps, FlatHeadScrew, type FlatHeadScrewMesh, type FlatHeadScrewMeshOptions, type FlatHeadScrewProps, Fragment, HelicalGear, type HelicalGearMesh, type HelicalGearProps, HexBolt, type HexBoltMesh, type HexBoltMeshOptions, type HexBoltProps, HexNut, type HexNutMesh, type HexNutMeshOptions, type HexNutProps, HexSocketBolt, type HexSocketBoltMesh, type HexSocketBoltProps, NEMA17, NEMA23, NEMA8, type NemaFrameMotorProps, NemaMotor, type NemaMotorProps, PanScrew, type PanScrewMesh, type PanScrewMeshOptions, type PanScrewProps, PlainBushing, type PlainBushingMesh, type PlainBushingProps, type RenderResult, RigidCoupler, type RigidCouplerMesh, type RigidCouplerProps, ShaftCollar, type ShaftCollarMesh, type ShaftCollarProps, SheetMetal, type SheetMetalMesh, type SheetMetalProps, SpurGear, type SpurGearMesh, type SpurGearProps, TSlotExtrusion, type TSlotExtrusionMesh, type TSlotExtrusionProps, TSlotGusset, type TSlotGussetMesh, type TSlotGussetProps, TSlotInsideCorner, type TSlotInsideCornerMesh, type TSlotInsideCornerProps, ThreadedRod, type ThreadedRodMesh, type ThreadedRodMeshOptions, type ThreadedRodProps, type VNode, WormGear, type WormGearMesh, type WormGearProps, convertCSGToThreeGeom, createBallBearingGeom, createBallBearingMesh, createButtonScrewGeom, createButtonScrewMesh, createCableGrommetGeom, createCableGrommetMesh, createClampingShaftCollarGeom, createClampingShaftCollarMesh, createCompressionSpringGeom, createCompressionSpringMesh, createFlangedBushingGeom, createFlangedBushingMesh, createFlatHeadScrewGeom, createFlatHeadScrewMesh, createHelicalGearGeom, createHelicalGearMesh, createHexBoltGeom, createHexBoltMesh, createHexNutGeom, createHexNutMesh, createHexSocketBoltGeom, createHexSocketBoltMesh, createJSCADRenderer, createPanScrewGeom, createPanScrewMesh, createPlainBushingGeom, createPlainBushingMesh, createRigidCouplerGeom, createRigidCouplerMesh, createShaftCollarGeom, createShaftCollarMesh, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createTSlotExtrusionGeom, createTSlotExtrusionMesh, createTSlotGussetGeom, createTSlotGussetMesh, createTSlotInsideCornerGeom, createTSlotInsideCornerMesh, createThreadedRodGeom, createThreadedRodMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
|
448
|
+
export { BallBearing, type BallBearingMesh, type BallBearingMeshOptions, type BallBearingMeshPart, type BallBearingProps, ButtonScrew, type ButtonScrewMesh, type ButtonScrewMeshOptions, type ButtonScrewProps, CableGrommet, type CableGrommetMesh, type CableGrommetMeshOptions, type CableGrommetProps, ClampingShaftCollar, type ClampingShaftCollarMesh, type ClampingShaftCollarProps, type ColoredGeom, CompressionSpring, type CompressionSpringMesh, type CompressionSpringMeshOptions, type CompressionSpringProps, FlangedBushing, type FlangedBushingMesh, type FlangedBushingProps, FlatHeadScrew, type FlatHeadScrewMesh, type FlatHeadScrewMeshOptions, type FlatHeadScrewProps, Fragment, HelicalGear, type HelicalGearMesh, type HelicalGearProps, HexBolt, type HexBoltMesh, type HexBoltMeshOptions, type HexBoltProps, HexNut, type HexNutMesh, type HexNutMeshOptions, type HexNutProps, HexSocketBolt, type HexSocketBoltMesh, type HexSocketBoltProps, HollowPositioningArmTube, type HollowPositioningArmTubeMesh, type HollowPositioningArmTubeMeshOptions, type HollowPositioningArmTubeProps, NEMA17, NEMA23, NEMA8, type NemaFrameMotorProps, NemaMotor, type NemaMotorProps, PanScrew, type PanScrewMesh, type PanScrewMeshOptions, type PanScrewProps, PlainBushing, type PlainBushingMesh, type PlainBushingProps, type RenderResult, RigidCoupler, type RigidCouplerMesh, type RigidCouplerProps, ShaftCollar, type ShaftCollarMesh, type ShaftCollarProps, SheetMetal, type SheetMetalMesh, type SheetMetalProps, SpurGear, type SpurGearMesh, type SpurGearProps, TSlotExtrusion, type TSlotExtrusionMesh, type TSlotExtrusionProps, TSlotGusset, type TSlotGussetMesh, type TSlotGussetProps, TSlotInsideCorner, type TSlotInsideCornerMesh, type TSlotInsideCornerProps, ThreadedRod, type ThreadedRodMesh, type ThreadedRodMeshOptions, type ThreadedRodProps, type VNode, WormGear, type WormGearMesh, type WormGearProps, convertCSGToThreeGeom, createBallBearingGeom, createBallBearingMesh, createButtonScrewGeom, createButtonScrewMesh, createCableGrommetGeom, createCableGrommetMesh, createClampingShaftCollarGeom, createClampingShaftCollarMesh, createCompressionSpringGeom, createCompressionSpringMesh, createFlangedBushingGeom, createFlangedBushingMesh, createFlatHeadScrewGeom, createFlatHeadScrewMesh, createHelicalGearGeom, createHelicalGearMesh, createHexBoltGeom, createHexBoltMesh, createHexNutGeom, createHexNutMesh, createHexSocketBoltGeom, createHexSocketBoltMesh, createHollowPositioningArmTubeGeom, createHollowPositioningArmTubeMesh, createJSCADRenderer, createPanScrewGeom, createPanScrewMesh, createPlainBushingGeom, createPlainBushingMesh, createRigidCouplerGeom, createRigidCouplerMesh, createShaftCollarGeom, createShaftCollarMesh, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createTSlotExtrusionGeom, createTSlotExtrusionMesh, createTSlotGussetGeom, createTSlotGussetMesh, createTSlotInsideCornerGeom, createTSlotInsideCornerMesh, createThreadedRodGeom, createThreadedRodMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
package/dist/vanilla.js
CHANGED
|
@@ -183,24 +183,24 @@ var FootprintPlatedHole = ({
|
|
|
183
183
|
import { ballBearingModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
184
184
|
|
|
185
185
|
// lib/model-registry.ts
|
|
186
|
-
function defineModelRenderer(
|
|
187
|
-
return
|
|
186
|
+
function defineModelRenderer(model26) {
|
|
187
|
+
return model26;
|
|
188
188
|
}
|
|
189
189
|
var ModelRendererRegistry = class {
|
|
190
190
|
models = /* @__PURE__ */ new Map();
|
|
191
|
-
register(
|
|
192
|
-
if (typeof
|
|
191
|
+
register(model26) {
|
|
192
|
+
if (typeof model26.name !== "string" || !/^[a-z]+$/.test(model26.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(model26.name)) {
|
|
198
|
+
throw new Error(`Model renderer "${model26.name}" is already registered`);
|
|
199
199
|
}
|
|
200
|
-
if (
|
|
200
|
+
if (model26.pads !== "none" && model26.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 } = model26;
|
|
204
204
|
this.models.set(name, {
|
|
205
205
|
name,
|
|
206
206
|
schema,
|
|
@@ -2739,6 +2739,134 @@ function register12(registry) {
|
|
|
2739
2739
|
registry.register(model12);
|
|
2740
2740
|
}
|
|
2741
2741
|
|
|
2742
|
+
// lib/models/hollowpositioningarmtube/register.tsx
|
|
2743
|
+
import { hollowPositioningArmTubeModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
2744
|
+
|
|
2745
|
+
// lib/models/hollowpositioningarmtube/mesh.ts
|
|
2746
|
+
import {
|
|
2747
|
+
getHollowPositioningArmTubeDimensions,
|
|
2748
|
+
getHollowPositioningArmTubeFrame,
|
|
2749
|
+
hollowPositioningArmTubeModelPropsSchema
|
|
2750
|
+
} from "@tscircuit/modelprinter";
|
|
2751
|
+
function createHollowPositioningArmTubeMesh(input, options = {}) {
|
|
2752
|
+
const props = hollowPositioningArmTubeModelPropsSchema.parse(input);
|
|
2753
|
+
const dimensions = getHollowPositioningArmTubeDimensions(props);
|
|
2754
|
+
const radialSegments = options.radialSegments ?? 24;
|
|
2755
|
+
const segmentsPerRib = options.segmentsPerRib ?? 4;
|
|
2756
|
+
for (const [name, value, minimum, maximum] of [
|
|
2757
|
+
["radialSegments", radialSegments, 12, 128],
|
|
2758
|
+
["segmentsPerRib", segmentsPerRib, 4, 32]
|
|
2759
|
+
])
|
|
2760
|
+
if (!Number.isInteger(value) || value < minimum || value > maximum || value % 4 !== 0)
|
|
2761
|
+
throw new Error(
|
|
2762
|
+
`${name} must be a multiple of four in [${minimum},${maximum}]`
|
|
2763
|
+
);
|
|
2764
|
+
const { totalLength, bendLength, minimumWallThickness } = dimensions;
|
|
2765
|
+
const innerRadius = props.innerDiameter / 2;
|
|
2766
|
+
const scale = Math.max(totalLength, props.outerDiameter);
|
|
2767
|
+
const tolerance = scale * 1e-10;
|
|
2768
|
+
if (Math.min(innerRadius, minimumWallThickness, totalLength) <= tolerance)
|
|
2769
|
+
throw new Error(
|
|
2770
|
+
"Hollow positioning arm tube wall, bore or length exceeds mesh resolution limit"
|
|
2771
|
+
);
|
|
2772
|
+
const sagitta = Math.min(innerRadius, minimumWallThickness) * 0.02;
|
|
2773
|
+
const angleStep = Math.min(
|
|
2774
|
+
Math.PI / 36,
|
|
2775
|
+
2 * Math.acos(1 - Math.min(sagitta / props.bendRadius, 1))
|
|
2776
|
+
);
|
|
2777
|
+
const bendSteps = props.bendAngle === 0 ? 0 : Math.ceil(props.bendAngle * Math.PI / 180 / angleStep);
|
|
2778
|
+
const ribSteps = props.ribDepth === 0 ? 0 : Math.ceil(totalLength / props.ribPitch * segmentsPerRib);
|
|
2779
|
+
const maximumRings = Math.floor(25e4 / (2 * radialSegments));
|
|
2780
|
+
if (!Number.isSafeInteger(bendSteps + ribSteps) || bendSteps + ribSteps + 5 > maximumRings)
|
|
2781
|
+
throw new Error(
|
|
2782
|
+
"Hollow positioning arm tube exceeds mesh resolution limit (250000 vertices)"
|
|
2783
|
+
);
|
|
2784
|
+
const samples = [
|
|
2785
|
+
0,
|
|
2786
|
+
props.startLength,
|
|
2787
|
+
props.startLength + bendLength,
|
|
2788
|
+
totalLength
|
|
2789
|
+
];
|
|
2790
|
+
for (let i = 1; i < bendSteps; i++)
|
|
2791
|
+
samples.push(props.startLength + bendLength * i / bendSteps);
|
|
2792
|
+
for (let i = 1; i < ribSteps; i++)
|
|
2793
|
+
samples.push(i * props.ribPitch / segmentsPerRib);
|
|
2794
|
+
samples.sort((a, b) => a - b);
|
|
2795
|
+
const stations = samples.filter(
|
|
2796
|
+
(s, i) => i === 0 || s - samples[i - 1] > tolerance
|
|
2797
|
+
);
|
|
2798
|
+
if (totalLength - stations[stations.length - 1] <= tolerance)
|
|
2799
|
+
stations[stations.length - 1] = totalLength;
|
|
2800
|
+
const positions = [];
|
|
2801
|
+
const indices = [];
|
|
2802
|
+
const stride = radialSegments * 2;
|
|
2803
|
+
for (const s of stations) {
|
|
2804
|
+
const { position, normal } = getHollowPositioningArmTubeFrame(props, s);
|
|
2805
|
+
const outerRadius = props.outerDiameter / 2 - (props.ribDepth === 0 ? 0 : props.ribDepth / 2 * (1 + Math.cos(2 * Math.PI * (s / props.ribPitch % 1))));
|
|
2806
|
+
for (const radius of [outerRadius, innerRadius])
|
|
2807
|
+
for (let j = 0; j < radialSegments; j++) {
|
|
2808
|
+
const angle = j * 2 * Math.PI / radialSegments;
|
|
2809
|
+
const cosine = j === radialSegments / 4 || j === 3 * radialSegments / 4 ? 0 : Math.cos(angle);
|
|
2810
|
+
const sine = j === 0 || j === radialSegments / 2 ? 0 : Math.sin(angle);
|
|
2811
|
+
positions.push(
|
|
2812
|
+
position[0] + radius * cosine * normal[0],
|
|
2813
|
+
radius * sine,
|
|
2814
|
+
position[2] + radius * cosine * normal[2]
|
|
2815
|
+
);
|
|
2816
|
+
}
|
|
2817
|
+
}
|
|
2818
|
+
const quad = (a, b, c, d) => {
|
|
2819
|
+
indices.push(a, b, c, a, c, d);
|
|
2820
|
+
};
|
|
2821
|
+
for (let ring = 0; ring + 1 < stations.length; ring++)
|
|
2822
|
+
for (let j = 0; j < radialSegments; j++) {
|
|
2823
|
+
const next = (j + 1) % radialSegments;
|
|
2824
|
+
const a = ring * stride;
|
|
2825
|
+
const b = (ring + 1) * stride;
|
|
2826
|
+
quad(a + j, a + next, b + next, b + j);
|
|
2827
|
+
quad(
|
|
2828
|
+
a + radialSegments + j,
|
|
2829
|
+
b + radialSegments + j,
|
|
2830
|
+
b + radialSegments + next,
|
|
2831
|
+
a + radialSegments + next
|
|
2832
|
+
);
|
|
2833
|
+
}
|
|
2834
|
+
for (let j = 0; j < radialSegments; j++) {
|
|
2835
|
+
const next = (j + 1) % radialSegments;
|
|
2836
|
+
quad(j, radialSegments + j, radialSegments + next, next);
|
|
2837
|
+
const end = (stations.length - 1) * stride;
|
|
2838
|
+
quad(
|
|
2839
|
+
end + j,
|
|
2840
|
+
end + next,
|
|
2841
|
+
end + radialSegments + next,
|
|
2842
|
+
end + radialSegments + j
|
|
2843
|
+
);
|
|
2844
|
+
}
|
|
2845
|
+
return { positions, indices };
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2848
|
+
// lib/models/hollowpositioningarmtube/HollowPositioningArmTube.tsx
|
|
2849
|
+
function createHollowPositioningArmTubeGeom(input) {
|
|
2850
|
+
return indexedMeshToGeom3(createHollowPositioningArmTubeMesh(input));
|
|
2851
|
+
}
|
|
2852
|
+
function HollowPositioningArmTube({
|
|
2853
|
+
color = "#343943",
|
|
2854
|
+
...props
|
|
2855
|
+
}) {
|
|
2856
|
+
return /* @__PURE__ */ jsx(Colorize, { color, children: /* @__PURE__ */ jsx(Custom, { geometry: createHollowPositioningArmTubeGeom(props) }) });
|
|
2857
|
+
}
|
|
2858
|
+
|
|
2859
|
+
// lib/models/hollowpositioningarmtube/register.tsx
|
|
2860
|
+
var model13 = defineModelRenderer({
|
|
2861
|
+
name: "hollowpositioningarmtube",
|
|
2862
|
+
schema: hollowPositioningArmTubeModelDefinitionSchema,
|
|
2863
|
+
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(HollowPositioningArmTube, { ...props }),
|
|
2864
|
+
pads: "none"
|
|
2865
|
+
});
|
|
2866
|
+
function register13(registry) {
|
|
2867
|
+
registry.register(model13);
|
|
2868
|
+
}
|
|
2869
|
+
|
|
2742
2870
|
// lib/models/nema/register.tsx
|
|
2743
2871
|
import { nemaMotorModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
2744
2872
|
|
|
@@ -3005,14 +3133,14 @@ var NEMA17 = (props) => /* @__PURE__ */ jsx(NemaMotor, { ...props, nemaSize: 17
|
|
|
3005
3133
|
var NEMA23 = (props) => /* @__PURE__ */ jsx(NemaMotor, { ...props, nemaSize: 23 });
|
|
3006
3134
|
|
|
3007
3135
|
// lib/models/nema/register.tsx
|
|
3008
|
-
var
|
|
3136
|
+
var model14 = defineModelRenderer({
|
|
3009
3137
|
name: "nema",
|
|
3010
3138
|
schema: nemaMotorModelDefinitionSchema,
|
|
3011
3139
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(NemaMotor, { ...props }),
|
|
3012
3140
|
pads: "none"
|
|
3013
3141
|
});
|
|
3014
|
-
function
|
|
3015
|
-
registry.register(
|
|
3142
|
+
function register14(registry) {
|
|
3143
|
+
registry.register(model14);
|
|
3016
3144
|
}
|
|
3017
3145
|
|
|
3018
3146
|
// lib/models/panscrew/register.tsx
|
|
@@ -3224,14 +3352,14 @@ function PanScrew({ color = "#737e8f", ...props }) {
|
|
|
3224
3352
|
}
|
|
3225
3353
|
|
|
3226
3354
|
// lib/models/panscrew/register.tsx
|
|
3227
|
-
var
|
|
3355
|
+
var model15 = defineModelRenderer({
|
|
3228
3356
|
name: "panscrew",
|
|
3229
3357
|
schema: panScrewModelDefinitionSchema,
|
|
3230
3358
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(PanScrew, { ...props }),
|
|
3231
3359
|
pads: "none"
|
|
3232
3360
|
});
|
|
3233
|
-
function
|
|
3234
|
-
registry.register(
|
|
3361
|
+
function register15(registry) {
|
|
3362
|
+
registry.register(model15);
|
|
3235
3363
|
}
|
|
3236
3364
|
|
|
3237
3365
|
// lib/models/plainbushing/register.tsx
|
|
@@ -3294,14 +3422,14 @@ function PlainBushing({
|
|
|
3294
3422
|
}
|
|
3295
3423
|
|
|
3296
3424
|
// lib/models/plainbushing/register.tsx
|
|
3297
|
-
var
|
|
3425
|
+
var model16 = defineModelRenderer({
|
|
3298
3426
|
name: "plainbushing",
|
|
3299
3427
|
schema: plainBushingModelDefinitionSchema,
|
|
3300
3428
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(PlainBushing, { ...props }),
|
|
3301
3429
|
pads: "none"
|
|
3302
3430
|
});
|
|
3303
|
-
function
|
|
3304
|
-
registry.register(
|
|
3431
|
+
function register16(registry) {
|
|
3432
|
+
registry.register(model16);
|
|
3305
3433
|
}
|
|
3306
3434
|
|
|
3307
3435
|
// lib/models/rigidcoupler/register.tsx
|
|
@@ -3345,14 +3473,14 @@ function RigidCoupler({
|
|
|
3345
3473
|
}
|
|
3346
3474
|
|
|
3347
3475
|
// lib/models/rigidcoupler/register.tsx
|
|
3348
|
-
var
|
|
3476
|
+
var model17 = defineModelRenderer({
|
|
3349
3477
|
name: "rigidcoupler",
|
|
3350
3478
|
schema: rigidCouplerModelDefinitionSchema,
|
|
3351
3479
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(RigidCoupler, { ...props }),
|
|
3352
3480
|
pads: "none"
|
|
3353
3481
|
});
|
|
3354
|
-
function
|
|
3355
|
-
registry.register(
|
|
3482
|
+
function register17(registry) {
|
|
3483
|
+
registry.register(model17);
|
|
3356
3484
|
}
|
|
3357
3485
|
|
|
3358
3486
|
// lib/models/shaftcollar/register.tsx
|
|
@@ -3391,14 +3519,14 @@ function ShaftCollar({ color = "#737e8f", ...props }) {
|
|
|
3391
3519
|
}
|
|
3392
3520
|
|
|
3393
3521
|
// lib/models/shaftcollar/register.tsx
|
|
3394
|
-
var
|
|
3522
|
+
var model18 = defineModelRenderer({
|
|
3395
3523
|
name: "shaftcollar",
|
|
3396
3524
|
schema: shaftCollarModelDefinitionSchema,
|
|
3397
3525
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(ShaftCollar, { ...props }),
|
|
3398
3526
|
pads: "none"
|
|
3399
3527
|
});
|
|
3400
|
-
function
|
|
3401
|
-
registry.register(
|
|
3528
|
+
function register18(registry) {
|
|
3529
|
+
registry.register(model18);
|
|
3402
3530
|
}
|
|
3403
3531
|
|
|
3404
3532
|
// lib/models/sheetmetal/register.tsx
|
|
@@ -3558,14 +3686,14 @@ function SheetMetal({ color = "#737e8f", ...props }) {
|
|
|
3558
3686
|
}
|
|
3559
3687
|
|
|
3560
3688
|
// lib/models/sheetmetal/register.tsx
|
|
3561
|
-
var
|
|
3689
|
+
var model19 = defineModelRenderer({
|
|
3562
3690
|
name: "sheetmetal",
|
|
3563
3691
|
schema: sheetMetalModelDefinitionSchema,
|
|
3564
3692
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(SheetMetal, { ...props }),
|
|
3565
3693
|
pads: "none"
|
|
3566
3694
|
});
|
|
3567
|
-
function
|
|
3568
|
-
registry.register(
|
|
3695
|
+
function register19(registry) {
|
|
3696
|
+
registry.register(model19);
|
|
3569
3697
|
}
|
|
3570
3698
|
|
|
3571
3699
|
// lib/models/spurgear/register.tsx
|
|
@@ -3580,14 +3708,14 @@ function SpurGear({ color = "#737e8f", ...props }) {
|
|
|
3580
3708
|
}
|
|
3581
3709
|
|
|
3582
3710
|
// lib/models/spurgear/register.tsx
|
|
3583
|
-
var
|
|
3711
|
+
var model20 = defineModelRenderer({
|
|
3584
3712
|
name: "spurgear",
|
|
3585
3713
|
schema: spurGearModelDefinitionSchema,
|
|
3586
3714
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(SpurGear, { ...props }),
|
|
3587
3715
|
pads: "none"
|
|
3588
3716
|
});
|
|
3589
|
-
function
|
|
3590
|
-
registry.register(
|
|
3717
|
+
function register20(registry) {
|
|
3718
|
+
registry.register(model20);
|
|
3591
3719
|
}
|
|
3592
3720
|
|
|
3593
3721
|
// lib/models/threadedrod/register.tsx
|
|
@@ -3689,14 +3817,14 @@ function ThreadedRod({ color = "#737e8f", ...props }) {
|
|
|
3689
3817
|
}
|
|
3690
3818
|
|
|
3691
3819
|
// lib/models/threadedrod/register.tsx
|
|
3692
|
-
var
|
|
3820
|
+
var model21 = defineModelRenderer({
|
|
3693
3821
|
name: "threadedrod",
|
|
3694
3822
|
schema: threadedRodModelDefinitionSchema,
|
|
3695
3823
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(ThreadedRod, { ...props }),
|
|
3696
3824
|
pads: "none"
|
|
3697
3825
|
});
|
|
3698
|
-
function
|
|
3699
|
-
registry.register(
|
|
3826
|
+
function register21(registry) {
|
|
3827
|
+
registry.register(model21);
|
|
3700
3828
|
}
|
|
3701
3829
|
|
|
3702
3830
|
// lib/models/tslotextrusion/register.tsx
|
|
@@ -3846,14 +3974,14 @@ function TSlotExtrusion({
|
|
|
3846
3974
|
}
|
|
3847
3975
|
|
|
3848
3976
|
// lib/models/tslotextrusion/register.tsx
|
|
3849
|
-
var
|
|
3977
|
+
var model22 = defineModelRenderer({
|
|
3850
3978
|
name: "tslotextrusion",
|
|
3851
3979
|
schema: tSlotExtrusionModelDefinitionSchema,
|
|
3852
3980
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(TSlotExtrusion, { ...props }),
|
|
3853
3981
|
pads: "none"
|
|
3854
3982
|
});
|
|
3855
|
-
function
|
|
3856
|
-
registry.register(
|
|
3983
|
+
function register22(registry) {
|
|
3984
|
+
registry.register(model22);
|
|
3857
3985
|
}
|
|
3858
3986
|
|
|
3859
3987
|
// lib/models/tslotgusset/register.tsx
|
|
@@ -3906,14 +4034,14 @@ function TSlotGusset({ color = "#8995a3", ...props }) {
|
|
|
3906
4034
|
}
|
|
3907
4035
|
|
|
3908
4036
|
// lib/models/tslotgusset/register.tsx
|
|
3909
|
-
var
|
|
4037
|
+
var model23 = defineModelRenderer({
|
|
3910
4038
|
name: "tslotgusset",
|
|
3911
4039
|
schema: tSlotGussetModelDefinitionSchema,
|
|
3912
4040
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(TSlotGusset, { ...props }),
|
|
3913
4041
|
pads: "none"
|
|
3914
4042
|
});
|
|
3915
|
-
function
|
|
3916
|
-
registry.register(
|
|
4043
|
+
function register23(registry) {
|
|
4044
|
+
registry.register(model23);
|
|
3917
4045
|
}
|
|
3918
4046
|
|
|
3919
4047
|
// lib/models/tslotinsidecorner/register.tsx
|
|
@@ -3993,14 +4121,14 @@ function TSlotInsideCorner({
|
|
|
3993
4121
|
}
|
|
3994
4122
|
|
|
3995
4123
|
// lib/models/tslotinsidecorner/register.tsx
|
|
3996
|
-
var
|
|
4124
|
+
var model24 = defineModelRenderer({
|
|
3997
4125
|
name: "tslotinsidecorner",
|
|
3998
4126
|
schema: tSlotInsideCornerModelDefinitionSchema,
|
|
3999
4127
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(TSlotInsideCorner, { ...props }),
|
|
4000
4128
|
pads: "none"
|
|
4001
4129
|
});
|
|
4002
|
-
function
|
|
4003
|
-
registry.register(
|
|
4130
|
+
function register24(registry) {
|
|
4131
|
+
registry.register(model24);
|
|
4004
4132
|
}
|
|
4005
4133
|
|
|
4006
4134
|
// lib/models/wormgear/register.tsx
|
|
@@ -4192,14 +4320,14 @@ function WormGear({ color = "#737e8f", ...props }) {
|
|
|
4192
4320
|
}
|
|
4193
4321
|
|
|
4194
4322
|
// lib/models/wormgear/register.tsx
|
|
4195
|
-
var
|
|
4323
|
+
var model25 = defineModelRenderer({
|
|
4196
4324
|
name: "wormgear",
|
|
4197
4325
|
schema: wormGearModelDefinitionSchema,
|
|
4198
4326
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(WormGear, { ...props }),
|
|
4199
4327
|
pads: "none"
|
|
4200
4328
|
});
|
|
4201
|
-
function
|
|
4202
|
-
registry.register(
|
|
4329
|
+
function register25(registry) {
|
|
4330
|
+
registry.register(model25);
|
|
4203
4331
|
}
|
|
4204
4332
|
|
|
4205
4333
|
// lib/generated/model-renderers.ts
|
|
@@ -4228,6 +4356,7 @@ function registerAllModelRenderers(registry) {
|
|
|
4228
4356
|
register22(registry);
|
|
4229
4357
|
register23(registry);
|
|
4230
4358
|
register24(registry);
|
|
4359
|
+
register25(registry);
|
|
4231
4360
|
}
|
|
4232
4361
|
|
|
4233
4362
|
// lib/default-model-registry.ts
|
|
@@ -11784,10 +11913,10 @@ var SOT143 = ({ footprint = "sot143" }) => {
|
|
|
11784
11913
|
var Footprinter3d = ({ footprint }) => {
|
|
11785
11914
|
const modelFn = mp3.string(footprint.split("_", 1)[0]).params().fn;
|
|
11786
11915
|
if (mp3.getModelNames().includes(modelFn)) {
|
|
11787
|
-
const
|
|
11788
|
-
const renderer = modelRendererRegistry.get(
|
|
11916
|
+
const model26 = mp3.string(footprint).json();
|
|
11917
|
+
const renderer = modelRendererRegistry.get(model26.fn);
|
|
11789
11918
|
if (renderer) {
|
|
11790
|
-
return renderer.render(
|
|
11919
|
+
return renderer.render(model26);
|
|
11791
11920
|
}
|
|
11792
11921
|
}
|
|
11793
11922
|
let normalizedFootprint = footprint;
|
|
@@ -12750,6 +12879,7 @@ export {
|
|
|
12750
12879
|
HexBolt,
|
|
12751
12880
|
HexNut,
|
|
12752
12881
|
HexSocketBolt,
|
|
12882
|
+
HollowPositioningArmTube,
|
|
12753
12883
|
NEMA17,
|
|
12754
12884
|
NEMA23,
|
|
12755
12885
|
NEMA8,
|
|
@@ -12788,6 +12918,8 @@ export {
|
|
|
12788
12918
|
createHexNutMesh,
|
|
12789
12919
|
createHexSocketBoltGeom,
|
|
12790
12920
|
createHexSocketBoltMesh,
|
|
12921
|
+
createHollowPositioningArmTubeGeom,
|
|
12922
|
+
createHollowPositioningArmTubeMesh,
|
|
12791
12923
|
createJSCADRenderer,
|
|
12792
12924
|
createPanScrewGeom,
|
|
12793
12925
|
createPanScrewMesh,
|