jscad-electronics 0.0.196 → 0.0.197
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 +921 -842
- package/dist/index.js.map +1 -1
- package/dist/vanilla.d.ts +17 -2
- package/dist/vanilla.js +94 -20
- 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 { FlatHeadScrewModelPropsInput, SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexSocketBoltModelPropsInput, NemaMotorModelPropsInput, PanScrewModelPropsInput, SheetMetalModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
6
|
+
import { FlatHeadScrewModelPropsInput, SpurGearModelPropsInput, HelicalGearModelPropsInput, HexBoltModelPropsInput, HexSocketBoltModelPropsInput, NemaMotorModelPropsInput, PanScrewModelPropsInput, PlainBushingModelPropsInput, SheetMetalModelPropsInput, WormGearModelPropsInput } from '@tscircuit/modelprinter';
|
|
7
7
|
|
|
8
8
|
type VNode = {
|
|
9
9
|
type: any;
|
|
@@ -141,6 +141,21 @@ type PanScrewProps = PanScrewModelPropsInput & {
|
|
|
141
141
|
declare function createPanScrewGeom(input: PanScrewModelPropsInput, options?: PanScrewMeshOptions): _jscad_modeling_src_geometries_types.Geom3;
|
|
142
142
|
declare function PanScrew({ color, ...props }: PanScrewProps): react_jsx_runtime.JSX.Element;
|
|
143
143
|
|
|
144
|
+
/** Shared ring vertices and outward counterclockwise triangles, in millimeters. */
|
|
145
|
+
interface PlainBushingMesh {
|
|
146
|
+
positions: number[];
|
|
147
|
+
indices: number[];
|
|
148
|
+
}
|
|
149
|
+
/** Annular end faces at Z=0/length; chamfers cut all four bore/outside rims. */
|
|
150
|
+
declare function createPlainBushingMesh(input: PlainBushingModelPropsInput): PlainBushingMesh;
|
|
151
|
+
|
|
152
|
+
type PlainBushingProps = PlainBushingModelPropsInput & {
|
|
153
|
+
color?: string;
|
|
154
|
+
};
|
|
155
|
+
/** Through sleeve from Z=0 to length, with four optional 45-degree rim chamfers. */
|
|
156
|
+
declare function createPlainBushingGeom(input: PlainBushingModelPropsInput): _jscad_modeling_src_geometries_types.Geom3;
|
|
157
|
+
declare function PlainBushing({ color, ...props }: PlainBushingProps): react_jsx_runtime.JSX.Element;
|
|
158
|
+
|
|
144
159
|
interface SheetMetalMesh {
|
|
145
160
|
positions: number[];
|
|
146
161
|
indices: number[];
|
|
@@ -195,4 +210,4 @@ declare function createJSCADRenderer(jscad: typeof jscadModeling): {
|
|
|
195
210
|
};
|
|
196
211
|
};
|
|
197
212
|
|
|
198
|
-
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, PanScrew, type PanScrewMesh, type PanScrewMeshOptions, type PanScrewProps, 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, createPanScrewGeom, createPanScrewMesh, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
|
213
|
+
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, PanScrew, type PanScrewMesh, type PanScrewMeshOptions, type PanScrewProps, PlainBushing, type PlainBushingMesh, type PlainBushingProps, 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, createPanScrewGeom, createPanScrewMesh, createPlainBushingGeom, createPlainBushingMesh, createSheetMetalGeom, createSheetMetalMesh, createSpurGearGeom, createSpurGearMesh, createWormGearGeom, createWormGearMesh, getJscadModelForFootprint, getJscadModelForFootprintWithPads, h };
|
package/dist/vanilla.js
CHANGED
|
@@ -183,24 +183,24 @@ var FootprintPlatedHole = ({
|
|
|
183
183
|
import { flatHeadScrewModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
184
184
|
|
|
185
185
|
// lib/model-registry.ts
|
|
186
|
-
function defineModelRenderer(
|
|
187
|
-
return
|
|
186
|
+
function defineModelRenderer(model12) {
|
|
187
|
+
return model12;
|
|
188
188
|
}
|
|
189
189
|
var ModelRendererRegistry = class {
|
|
190
190
|
models = /* @__PURE__ */ new Map();
|
|
191
|
-
register(
|
|
192
|
-
if (typeof
|
|
191
|
+
register(model12) {
|
|
192
|
+
if (typeof model12.name !== "string" || !/^[a-z]+$/.test(model12.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(model12.name)) {
|
|
198
|
+
throw new Error(`Model renderer "${model12.name}" is already registered`);
|
|
199
199
|
}
|
|
200
|
-
if (
|
|
200
|
+
if (model12.pads !== "none" && model12.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 } = model12;
|
|
204
204
|
this.models.set(name, {
|
|
205
205
|
name,
|
|
206
206
|
schema,
|
|
@@ -2038,6 +2038,76 @@ function register7(registry) {
|
|
|
2038
2038
|
registry.register(model7);
|
|
2039
2039
|
}
|
|
2040
2040
|
|
|
2041
|
+
// lib/models/plainbushing/register.tsx
|
|
2042
|
+
import { plainBushingModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
2043
|
+
|
|
2044
|
+
// lib/models/plainbushing/mesh.ts
|
|
2045
|
+
import {
|
|
2046
|
+
getPlainBushingDimensions,
|
|
2047
|
+
plainBushingModelPropsSchema
|
|
2048
|
+
} from "@tscircuit/modelprinter";
|
|
2049
|
+
function createPlainBushingMesh(input) {
|
|
2050
|
+
const props = plainBushingModelPropsSchema.parse(input);
|
|
2051
|
+
const d = getPlainBushingDimensions(props);
|
|
2052
|
+
const ri = d.innerDiameter / 2;
|
|
2053
|
+
const ro = d.outerDiameter / 2;
|
|
2054
|
+
const c = props.edgeChamfer;
|
|
2055
|
+
const profile = c > 0 ? [
|
|
2056
|
+
[d.endOuterDiameter / 2, 0],
|
|
2057
|
+
[ro, c],
|
|
2058
|
+
[ro, d.length - c],
|
|
2059
|
+
[d.endOuterDiameter / 2, d.length],
|
|
2060
|
+
[d.endInnerDiameter / 2, d.length],
|
|
2061
|
+
[ri, d.length - c],
|
|
2062
|
+
[ri, c],
|
|
2063
|
+
[d.endInnerDiameter / 2, 0]
|
|
2064
|
+
] : [
|
|
2065
|
+
[ro, 0],
|
|
2066
|
+
[ro, d.length],
|
|
2067
|
+
[ri, d.length],
|
|
2068
|
+
[ri, 0]
|
|
2069
|
+
];
|
|
2070
|
+
const segments = 96;
|
|
2071
|
+
const positions = [];
|
|
2072
|
+
const indices = [];
|
|
2073
|
+
for (const [radius, z] of profile)
|
|
2074
|
+
for (let i = 0; i < segments; i++) {
|
|
2075
|
+
const angle = i * Math.PI * 2 / segments;
|
|
2076
|
+
positions.push(radius * Math.cos(angle), radius * Math.sin(angle), z);
|
|
2077
|
+
}
|
|
2078
|
+
for (let ring = 0; ring < profile.length; ring++) {
|
|
2079
|
+
const a = ring * segments;
|
|
2080
|
+
const b = (ring + 1) % profile.length * segments;
|
|
2081
|
+
for (let i = 0; i < segments; i++) {
|
|
2082
|
+
const next = (i + 1) % segments;
|
|
2083
|
+
indices.push(a + i, a + next, b + next, a + i, b + next, b + i);
|
|
2084
|
+
}
|
|
2085
|
+
}
|
|
2086
|
+
return { positions, indices };
|
|
2087
|
+
}
|
|
2088
|
+
|
|
2089
|
+
// lib/models/plainbushing/PlainBushing.tsx
|
|
2090
|
+
function createPlainBushingGeom(input) {
|
|
2091
|
+
return indexedMeshToGeom3(createPlainBushingMesh(input));
|
|
2092
|
+
}
|
|
2093
|
+
function PlainBushing({
|
|
2094
|
+
color = "#a18450",
|
|
2095
|
+
...props
|
|
2096
|
+
}) {
|
|
2097
|
+
return /* @__PURE__ */ jsx(Colorize, { color, children: /* @__PURE__ */ jsx(Custom, { geometry: createPlainBushingGeom(props) }) });
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
// lib/models/plainbushing/register.tsx
|
|
2101
|
+
var model8 = defineModelRenderer({
|
|
2102
|
+
name: "plainbushing",
|
|
2103
|
+
schema: plainBushingModelDefinitionSchema,
|
|
2104
|
+
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(PlainBushing, { ...props }),
|
|
2105
|
+
pads: "none"
|
|
2106
|
+
});
|
|
2107
|
+
function register8(registry) {
|
|
2108
|
+
registry.register(model8);
|
|
2109
|
+
}
|
|
2110
|
+
|
|
2041
2111
|
// lib/models/sheetmetal/register.tsx
|
|
2042
2112
|
import { sheetMetalModelDefinitionSchema } from "@tscircuit/modelprinter";
|
|
2043
2113
|
|
|
@@ -2195,14 +2265,14 @@ function SheetMetal({ color = "#737e8f", ...props }) {
|
|
|
2195
2265
|
}
|
|
2196
2266
|
|
|
2197
2267
|
// lib/models/sheetmetal/register.tsx
|
|
2198
|
-
var
|
|
2268
|
+
var model9 = defineModelRenderer({
|
|
2199
2269
|
name: "sheetmetal",
|
|
2200
2270
|
schema: sheetMetalModelDefinitionSchema,
|
|
2201
2271
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(SheetMetal, { ...props }),
|
|
2202
2272
|
pads: "none"
|
|
2203
2273
|
});
|
|
2204
|
-
function
|
|
2205
|
-
registry.register(
|
|
2274
|
+
function register9(registry) {
|
|
2275
|
+
registry.register(model9);
|
|
2206
2276
|
}
|
|
2207
2277
|
|
|
2208
2278
|
// lib/models/spurgear/register.tsx
|
|
@@ -2217,14 +2287,14 @@ function SpurGear({ color = "#737e8f", ...props }) {
|
|
|
2217
2287
|
}
|
|
2218
2288
|
|
|
2219
2289
|
// lib/models/spurgear/register.tsx
|
|
2220
|
-
var
|
|
2290
|
+
var model10 = defineModelRenderer({
|
|
2221
2291
|
name: "spurgear",
|
|
2222
2292
|
schema: spurGearModelDefinitionSchema,
|
|
2223
2293
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(SpurGear, { ...props }),
|
|
2224
2294
|
pads: "none"
|
|
2225
2295
|
});
|
|
2226
|
-
function
|
|
2227
|
-
registry.register(
|
|
2296
|
+
function register10(registry) {
|
|
2297
|
+
registry.register(model10);
|
|
2228
2298
|
}
|
|
2229
2299
|
|
|
2230
2300
|
// lib/models/wormgear/register.tsx
|
|
@@ -2416,14 +2486,14 @@ function WormGear({ color = "#737e8f", ...props }) {
|
|
|
2416
2486
|
}
|
|
2417
2487
|
|
|
2418
2488
|
// lib/models/wormgear/register.tsx
|
|
2419
|
-
var
|
|
2489
|
+
var model11 = defineModelRenderer({
|
|
2420
2490
|
name: "wormgear",
|
|
2421
2491
|
schema: wormGearModelDefinitionSchema,
|
|
2422
2492
|
render: ({ fn, ...props }) => /* @__PURE__ */ jsx(WormGear, { ...props }),
|
|
2423
2493
|
pads: "none"
|
|
2424
2494
|
});
|
|
2425
|
-
function
|
|
2426
|
-
registry.register(
|
|
2495
|
+
function register11(registry) {
|
|
2496
|
+
registry.register(model11);
|
|
2427
2497
|
}
|
|
2428
2498
|
|
|
2429
2499
|
// lib/generated/model-renderers.ts
|
|
@@ -2438,6 +2508,7 @@ function registerAllModelRenderers(registry) {
|
|
|
2438
2508
|
register8(registry);
|
|
2439
2509
|
register9(registry);
|
|
2440
2510
|
register10(registry);
|
|
2511
|
+
register11(registry);
|
|
2441
2512
|
}
|
|
2442
2513
|
|
|
2443
2514
|
// lib/default-model-registry.ts
|
|
@@ -9994,10 +10065,10 @@ var SOT143 = ({ footprint = "sot143" }) => {
|
|
|
9994
10065
|
var Footprinter3d = ({ footprint }) => {
|
|
9995
10066
|
const modelFn = mp3.string(footprint.split("_", 1)[0]).params().fn;
|
|
9996
10067
|
if (mp3.getModelNames().includes(modelFn)) {
|
|
9997
|
-
const
|
|
9998
|
-
const renderer = modelRendererRegistry.get(
|
|
10068
|
+
const model12 = mp3.string(footprint).json();
|
|
10069
|
+
const renderer = modelRendererRegistry.get(model12.fn);
|
|
9999
10070
|
if (renderer) {
|
|
10000
|
-
return renderer.render(
|
|
10071
|
+
return renderer.render(model12);
|
|
10001
10072
|
}
|
|
10002
10073
|
}
|
|
10003
10074
|
let normalizedFootprint = footprint;
|
|
@@ -10958,6 +11029,7 @@ export {
|
|
|
10958
11029
|
NEMA8,
|
|
10959
11030
|
NemaMotor,
|
|
10960
11031
|
PanScrew,
|
|
11032
|
+
PlainBushing,
|
|
10961
11033
|
SheetMetal,
|
|
10962
11034
|
SpurGear,
|
|
10963
11035
|
WormGear,
|
|
@@ -10973,6 +11045,8 @@ export {
|
|
|
10973
11045
|
createJSCADRenderer,
|
|
10974
11046
|
createPanScrewGeom,
|
|
10975
11047
|
createPanScrewMesh,
|
|
11048
|
+
createPlainBushingGeom,
|
|
11049
|
+
createPlainBushingMesh,
|
|
10976
11050
|
createSheetMetalGeom,
|
|
10977
11051
|
createSheetMetalMesh,
|
|
10978
11052
|
createSpurGearGeom,
|