jscad-electronics 0.0.204 → 0.0.205
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 +17 -2
- package/dist/index.js +903 -834
- package/dist/index.js.map +1 -1
- package/dist/vanilla.d.ts +17 -2
- package/dist/vanilla.js +81 -17
- 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 { ButtonScrewModelPropsInput, CableGrommetModelPropsInput, CompressionSpringModelPropsInput, FlangedBushingModelPropsInput, FlatHeadScrewModelPropsInput, SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexNutModelPropsInput, HexSocketBoltModelPropsInput, NemaMotorModelPropsInput, PanScrewModelPropsInput, PlainBushingModelPropsInput, SheetMetalModelPropsInput, TSlotExtrusionModelPropsInput, TSlotInsideCornerModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
6
|
+
import { ButtonScrewModelPropsInput, CableGrommetModelPropsInput, CompressionSpringModelPropsInput, FlangedBushingModelPropsInput, FlatHeadScrewModelPropsInput, SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexNutModelPropsInput, HexSocketBoltModelPropsInput, NemaMotorModelPropsInput, PanScrewModelPropsInput, PlainBushingModelPropsInput, SheetMetalModelPropsInput, TSlotExtrusionModelPropsInput, TSlotGussetModelPropsInput, TSlotInsideCornerModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
7
7
|
|
|
8
8
|
type VNode = {
|
|
9
9
|
type: any;
|
|
@@ -284,6 +284,21 @@ type TSlotExtrusionProps = TSlotExtrusionModelPropsInput & {
|
|
|
284
284
|
declare function createTSlotExtrusionGeom(input?: TSlotExtrusionModelPropsInput): _jscad_modeling_src_geometries_types.Geom3;
|
|
285
285
|
declare function TSlotExtrusion({ color, ...props }: TSlotExtrusionProps): react_jsx_runtime.JSX.Element;
|
|
286
286
|
|
|
287
|
+
interface TSlotGussetMesh {
|
|
288
|
+
positions: number[];
|
|
289
|
+
indices: number[];
|
|
290
|
+
}
|
|
291
|
+
/** Right triangular flat plate at Z=0..thickness, with both complete through
|
|
292
|
+
* capsules at the mounting centers/orientations resolved by modelprinter.
|
|
293
|
+
*/
|
|
294
|
+
declare function createTSlotGussetMesh(input?: TSlotGussetModelPropsInput): TSlotGussetMesh;
|
|
295
|
+
|
|
296
|
+
type TSlotGussetProps = TSlotGussetModelPropsInput & {
|
|
297
|
+
color?: string;
|
|
298
|
+
};
|
|
299
|
+
declare function createTSlotGussetGeom(input?: TSlotGussetModelPropsInput): _jscad_modeling_src_geometries_types.Geom3;
|
|
300
|
+
declare function TSlotGusset({ color, ...props }: TSlotGussetProps): react_jsx_runtime.JSX.Element;
|
|
301
|
+
|
|
287
302
|
interface TSlotInsideCornerMesh {
|
|
288
303
|
positions: number[];
|
|
289
304
|
indices: number[];
|
|
@@ -327,4 +342,4 @@ declare function createJSCADRenderer(jscad: typeof jscadModeling): {
|
|
|
327
342
|
};
|
|
328
343
|
};
|
|
329
344
|
|
|
330
|
-
export { ButtonScrew, type ButtonScrewMesh, type ButtonScrewMeshOptions, type ButtonScrewProps, CableGrommet, type CableGrommetMesh, type CableGrommetMeshOptions, type CableGrommetProps, 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, SheetMetal, type SheetMetalMesh, type SheetMetalProps, SpurGear, type SpurGearMesh, type SpurGearProps, TSlotExtrusion, type TSlotExtrusionMesh, type TSlotExtrusionProps, TSlotInsideCorner, type TSlotInsideCornerMesh, type TSlotInsideCornerProps, type VNode, WormGear, type WormGearMesh, type WormGearProps, convertCSGToThreeGeom, createButtonScrewGeom, createButtonScrewMesh, createCableGrommetGeom, createCableGrommetMesh, createCompressionSpringGeom, createCompressionSpringMesh, createFlangedBushingGeom, createFlangedBushingMesh, createFlatHeadScrewGeom, createFlatHeadScrewMesh, createHelicalGearGeom, createHelicalGearMesh, createHexBoltGeom, createHexBoltMesh, createHexNutGeom, createHexNutMesh, createHexSocketBoltGeom, createHexSocketBoltMesh, createJSCADRenderer, createPanScrewGeom, createPanScrewMesh, createPlainBushingGeom, createPlainBushingMesh, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createTSlotExtrusionGeom, createTSlotExtrusionMesh, createTSlotInsideCornerGeom, createTSlotInsideCornerMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
|
345
|
+
export { ButtonScrew, type ButtonScrewMesh, type ButtonScrewMeshOptions, type ButtonScrewProps, CableGrommet, type CableGrommetMesh, type CableGrommetMeshOptions, type CableGrommetProps, 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, 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, type VNode, WormGear, type WormGearMesh, type WormGearProps, convertCSGToThreeGeom, createButtonScrewGeom, createButtonScrewMesh, createCableGrommetGeom, createCableGrommetMesh, createCompressionSpringGeom, createCompressionSpringMesh, createFlangedBushingGeom, createFlangedBushingMesh, createFlatHeadScrewGeom, createFlatHeadScrewMesh, createHelicalGearGeom, createHelicalGearMesh, createHexBoltGeom, createHexBoltMesh, createHexNutGeom, createHexNutMesh, createHexSocketBoltGeom, createHexSocketBoltMesh, createJSCADRenderer, createPanScrewGeom, createPanScrewMesh, createPlainBushingGeom, createPlainBushingMesh, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createTSlotExtrusionGeom, createTSlotExtrusionMesh, createTSlotGussetGeom, createTSlotGussetMesh, createTSlotInsideCornerGeom, createTSlotInsideCornerMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
package/dist/vanilla.js
CHANGED
|
@@ -183,24 +183,24 @@ var FootprintPlatedHole = ({
|
|
|
183
183
|
import { buttonScrewModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
184
184
|
|
|
185
185
|
// lib/model-registry.ts
|
|
186
|
-
function defineModelRenderer(
|
|
187
|
-
return
|
|
186
|
+
function defineModelRenderer(model20) {
|
|
187
|
+
return model20;
|
|
188
188
|
}
|
|
189
189
|
var ModelRendererRegistry = class {
|
|
190
190
|
models = /* @__PURE__ */ new Map();
|
|
191
|
-
register(
|
|
192
|
-
if (typeof
|
|
191
|
+
register(model20) {
|
|
192
|
+
if (typeof model20.name !== "string" || !/^[a-z]+$/.test(model20.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(model20.name)) {
|
|
198
|
+
throw new Error(`Model renderer "${model20.name}" is already registered`);
|
|
199
199
|
}
|
|
200
|
-
if (
|
|
200
|
+
if (model20.pads !== "none" && model20.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 } = model20;
|
|
204
204
|
this.models.set(name, {
|
|
205
205
|
name,
|
|
206
206
|
schema,
|
|
@@ -3076,6 +3076,66 @@ function register16(registry) {
|
|
|
3076
3076
|
registry.register(model16);
|
|
3077
3077
|
}
|
|
3078
3078
|
|
|
3079
|
+
// lib/models/tslotgusset/register.tsx
|
|
3080
|
+
import { tSlotGussetModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
3081
|
+
|
|
3082
|
+
// lib/models/tslotgusset/mesh.ts
|
|
3083
|
+
import {
|
|
3084
|
+
getTSlotGussetMountingSlots,
|
|
3085
|
+
tSlotGussetModelPropsSchema
|
|
3086
|
+
} from "@tscircuit/modelprinter";
|
|
3087
|
+
function createTSlotGussetMesh(input = {}) {
|
|
3088
|
+
const props = tSlotGussetModelPropsSchema.parse(input);
|
|
3089
|
+
const holes = getTSlotGussetMountingSlots(props).map((slot) => {
|
|
3090
|
+
const radius = slot.width / 2;
|
|
3091
|
+
const halfStraight = (slot.length - slot.width) / 2;
|
|
3092
|
+
const rotate = (u, v) => slot.orientation === 0 ? [slot.center.x + u, slot.center.y + v] : [slot.center.x - v, slot.center.y + u];
|
|
3093
|
+
if (halfStraight === 0)
|
|
3094
|
+
return circularProfile(0, 0, radius).map(([u, v]) => rotate(u, v));
|
|
3095
|
+
const loop = [];
|
|
3096
|
+
for (const side of [1, -1])
|
|
3097
|
+
for (let step = 0; step <= 48; step++) {
|
|
3098
|
+
const angle = -Math.PI / 2 + step * Math.PI / 48 + (side < 0 ? Math.PI : 0);
|
|
3099
|
+
loop.push(
|
|
3100
|
+
rotate(
|
|
3101
|
+
side * halfStraight + radius * Math.cos(angle),
|
|
3102
|
+
radius * Math.sin(angle)
|
|
3103
|
+
)
|
|
3104
|
+
);
|
|
3105
|
+
}
|
|
3106
|
+
return loop;
|
|
3107
|
+
});
|
|
3108
|
+
return extrudePlanarProfile({
|
|
3109
|
+
outer: [
|
|
3110
|
+
[0, 0],
|
|
3111
|
+
[props.width, 0],
|
|
3112
|
+
[0, props.height]
|
|
3113
|
+
],
|
|
3114
|
+
holes,
|
|
3115
|
+
start: 0,
|
|
3116
|
+
end: props.thickness
|
|
3117
|
+
});
|
|
3118
|
+
}
|
|
3119
|
+
|
|
3120
|
+
// lib/models/tslotgusset/TSlotGusset.tsx
|
|
3121
|
+
function createTSlotGussetGeom(input = {}) {
|
|
3122
|
+
return indexedMeshToGeom3(createTSlotGussetMesh(input));
|
|
3123
|
+
}
|
|
3124
|
+
function TSlotGusset({ color = "#8995a3", ...props }) {
|
|
3125
|
+
return /* @__PURE__ */ jsx(Colorize, { color, children: /* @__PURE__ */ jsx(Custom, { geometry: createTSlotGussetGeom(props) }) });
|
|
3126
|
+
}
|
|
3127
|
+
|
|
3128
|
+
// lib/models/tslotgusset/register.tsx
|
|
3129
|
+
var model17 = defineModelRenderer({
|
|
3130
|
+
name: "tslotgusset",
|
|
3131
|
+
schema: tSlotGussetModelDefinitionSchema,
|
|
3132
|
+
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(TSlotGusset, { ...props }),
|
|
3133
|
+
pads: "none"
|
|
3134
|
+
});
|
|
3135
|
+
function register17(registry) {
|
|
3136
|
+
registry.register(model17);
|
|
3137
|
+
}
|
|
3138
|
+
|
|
3079
3139
|
// lib/models/tslotinsidecorner/register.tsx
|
|
3080
3140
|
import { tSlotInsideCornerModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
3081
3141
|
|
|
@@ -3153,14 +3213,14 @@ function TSlotInsideCorner({
|
|
|
3153
3213
|
}
|
|
3154
3214
|
|
|
3155
3215
|
// lib/models/tslotinsidecorner/register.tsx
|
|
3156
|
-
var
|
|
3216
|
+
var model18 = defineModelRenderer({
|
|
3157
3217
|
name: "tslotinsidecorner",
|
|
3158
3218
|
schema: tSlotInsideCornerModelDefinitionSchema,
|
|
3159
3219
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(TSlotInsideCorner, { ...props }),
|
|
3160
3220
|
pads: "none"
|
|
3161
3221
|
});
|
|
3162
|
-
function
|
|
3163
|
-
registry.register(
|
|
3222
|
+
function register18(registry) {
|
|
3223
|
+
registry.register(model18);
|
|
3164
3224
|
}
|
|
3165
3225
|
|
|
3166
3226
|
// lib/models/wormgear/register.tsx
|
|
@@ -3352,14 +3412,14 @@ function WormGear({ color = "#737e8f", ...props }) {
|
|
|
3352
3412
|
}
|
|
3353
3413
|
|
|
3354
3414
|
// lib/models/wormgear/register.tsx
|
|
3355
|
-
var
|
|
3415
|
+
var model19 = defineModelRenderer({
|
|
3356
3416
|
name: "wormgear",
|
|
3357
3417
|
schema: wormGearModelDefinitionSchema,
|
|
3358
3418
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(WormGear, { ...props }),
|
|
3359
3419
|
pads: "none"
|
|
3360
3420
|
});
|
|
3361
|
-
function
|
|
3362
|
-
registry.register(
|
|
3421
|
+
function register19(registry) {
|
|
3422
|
+
registry.register(model19);
|
|
3363
3423
|
}
|
|
3364
3424
|
|
|
3365
3425
|
// lib/generated/model-renderers.ts
|
|
@@ -3382,6 +3442,7 @@ function registerAllModelRenderers(registry) {
|
|
|
3382
3442
|
register16(registry);
|
|
3383
3443
|
register17(registry);
|
|
3384
3444
|
register18(registry);
|
|
3445
|
+
register19(registry);
|
|
3385
3446
|
}
|
|
3386
3447
|
|
|
3387
3448
|
// lib/default-model-registry.ts
|
|
@@ -10938,10 +10999,10 @@ var SOT143 = ({ footprint = "sot143" }) => {
|
|
|
10938
10999
|
var Footprinter3d = ({ footprint }) => {
|
|
10939
11000
|
const modelFn = mp3.string(footprint.split("_", 1)[0]).params().fn;
|
|
10940
11001
|
if (mp3.getModelNames().includes(modelFn)) {
|
|
10941
|
-
const
|
|
10942
|
-
const renderer = modelRendererRegistry.get(
|
|
11002
|
+
const model20 = mp3.string(footprint).json();
|
|
11003
|
+
const renderer = modelRendererRegistry.get(model20.fn);
|
|
10943
11004
|
if (renderer) {
|
|
10944
|
-
return renderer.render(
|
|
11005
|
+
return renderer.render(model20);
|
|
10945
11006
|
}
|
|
10946
11007
|
}
|
|
10947
11008
|
let normalizedFootprint = footprint;
|
|
@@ -11911,6 +11972,7 @@ export {
|
|
|
11911
11972
|
SheetMetal,
|
|
11912
11973
|
SpurGear,
|
|
11913
11974
|
TSlotExtrusion,
|
|
11975
|
+
TSlotGusset,
|
|
11914
11976
|
TSlotInsideCorner,
|
|
11915
11977
|
WormGear,
|
|
11916
11978
|
convertCSGToThreeGeom,
|
|
@@ -11943,6 +12005,8 @@ export {
|
|
|
11943
12005
|
createSpurGearMesh,
|
|
11944
12006
|
createTSlotExtrusionGeom,
|
|
11945
12007
|
createTSlotExtrusionMesh,
|
|
12008
|
+
createTSlotGussetGeom,
|
|
12009
|
+
createTSlotGussetMesh,
|
|
11946
12010
|
createTSlotInsideCornerGeom,
|
|
11947
12011
|
createTSlotInsideCornerMesh,
|
|
11948
12012
|
createWormGearGeom,
|