jscad-electronics 0.0.149 → 0.0.150
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 +342 -5
- package/dist/index.js +982 -318
- package/dist/index.js.map +1 -1
- package/dist/vanilla.js +845 -119
- package/dist/vanilla.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -349,7 +349,7 @@ var BGA = ({
|
|
|
349
349
|
}) => {
|
|
350
350
|
const bodyHeight = packageHeight - standoffHeight;
|
|
351
351
|
const bodyOffset = standoffHeight + bodyHeight / 2;
|
|
352
|
-
const ballOffset =
|
|
352
|
+
const ballOffset = Math.max(standoffHeight / 2, ballDiameter / 2);
|
|
353
353
|
const ballsSoup = footprintString ? fp.string(footprintString).circuitJson() : null;
|
|
354
354
|
return /* @__PURE__ */ jsxs10(Fragment10, { children: [
|
|
355
355
|
/* @__PURE__ */ jsx10(Translate2, { z: bodyOffset, children: /* @__PURE__ */ jsx10(Colorize, { color: "#555", children: /* @__PURE__ */ jsx10(Cuboid10, { size: [packageWidth, packageLength, bodyHeight] }) }) }),
|
|
@@ -757,7 +757,8 @@ var ExtrudedPads = ({
|
|
|
757
757
|
};
|
|
758
758
|
|
|
759
759
|
// lib/Footprinter3d.tsx
|
|
760
|
-
import { fp as
|
|
760
|
+
import { fp as fp5 } from "@tscircuit/footprinter";
|
|
761
|
+
import { Rotate as Rotate17, Translate as Translate37 } from "jscad-fiber";
|
|
761
762
|
|
|
762
763
|
// lib/DualInlinePackage.tsx
|
|
763
764
|
import { Polygon as Polygon3, ExtrudeLinear as ExtrudeLinear3, Rotate as Rotate3, Translate as Translate6 } from "jscad-fiber";
|
|
@@ -2457,8 +2458,8 @@ var SMA = () => {
|
|
|
2457
2458
|
import { Cuboid as Cuboid21, Colorize as Colorize14, Union as Union7, Hull as Hull9, Translate as Translate13 } from "jscad-fiber";
|
|
2458
2459
|
import { Fragment as Fragment31, jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2459
2460
|
var SMB = () => {
|
|
2460
|
-
const bodyWidth = 4.
|
|
2461
|
-
const bodyLength10 =
|
|
2461
|
+
const bodyWidth = 4.6;
|
|
2462
|
+
const bodyLength10 = 4;
|
|
2462
2463
|
const bodyHeight = 2.3;
|
|
2463
2464
|
const padWidth = 1.45;
|
|
2464
2465
|
const padThickness = 0.12;
|
|
@@ -2748,12 +2749,14 @@ var SOD123FL = () => {
|
|
|
2748
2749
|
// lib/sod-123W.tsx
|
|
2749
2750
|
import { Colorize as Colorize19, Cuboid as Cuboid26, Hull as Hull14, Translate as Translate18, Union as Union12 } from "jscad-fiber";
|
|
2750
2751
|
import { Fragment as Fragment36, jsx as jsx40, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
2751
|
-
var SOD123W = (
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
const
|
|
2752
|
+
var SOD123W = ({
|
|
2753
|
+
bodyWidth = 2.6,
|
|
2754
|
+
bodyLength: bodyLength10 = 1.7,
|
|
2755
|
+
bodyHeight = 1
|
|
2756
|
+
} = {}) => {
|
|
2757
|
+
const fullWidth = bodyWidth;
|
|
2758
|
+
const padWidth = bodyLength10 * 0.53;
|
|
2759
|
+
const padLength = bodyWidth * 0.35;
|
|
2757
2760
|
const padThickness = 0.2;
|
|
2758
2761
|
const leftPadCenterX = -(fullWidth / 2 - 0.075);
|
|
2759
2762
|
const rightPadCenterX = fullWidth / 2 - 0.075;
|
|
@@ -3022,17 +3025,19 @@ var SOD923 = () => {
|
|
|
3022
3025
|
|
|
3023
3026
|
// lib/SOT-223.tsx
|
|
3024
3027
|
import { Fragment as Fragment40, jsx as jsx44, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
3025
|
-
var SOT223 = (
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3028
|
+
var SOT223 = ({
|
|
3029
|
+
fullWidth = 6.6,
|
|
3030
|
+
bodyWidth = 3.5,
|
|
3031
|
+
bodyLength: bodyLength10 = 6.5,
|
|
3032
|
+
bodyHeight = 1.7,
|
|
3033
|
+
leadWidth = 0.7,
|
|
3034
|
+
tabLeadWidth = 3,
|
|
3035
|
+
padPitch = 2.3,
|
|
3036
|
+
leadHeight = 0.75
|
|
3037
|
+
} = {}) => {
|
|
3038
|
+
const leftLeadWidth = tabLeadWidth;
|
|
3032
3039
|
const leadThickness = 0.25;
|
|
3033
|
-
const leadHeight = 0.75;
|
|
3034
3040
|
const padContactLength = 0.5;
|
|
3035
|
-
const padPitch = 2.3;
|
|
3036
3041
|
const extendedBodyDistance = fullWidth - bodyWidth;
|
|
3037
3042
|
return /* @__PURE__ */ jsxs40(Fragment40, { children: [
|
|
3038
3043
|
/* @__PURE__ */ jsx44(
|
|
@@ -3914,85 +3919,73 @@ var MS013 = ({
|
|
|
3914
3919
|
import {
|
|
3915
3920
|
Colorize as Colorize27,
|
|
3916
3921
|
Cuboid as Cuboid34,
|
|
3917
|
-
Hull as Hull19,
|
|
3918
|
-
Rotate as Rotate10,
|
|
3919
|
-
Translate as Translate22,
|
|
3920
3922
|
Cylinder as Cylinder7,
|
|
3921
|
-
|
|
3923
|
+
Rotate as Rotate10,
|
|
3924
|
+
Subtract as Subtract4,
|
|
3925
|
+
Translate as Translate22
|
|
3922
3926
|
} from "jscad-fiber";
|
|
3923
3927
|
import { Fragment as Fragment52, jsx as jsx56, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
3924
|
-
var
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
ChipBody,
|
|
3928
|
+
var TO220_DEFAULT_LEADS = [
|
|
3929
|
+
{ x: -2.54, y: -1 },
|
|
3930
|
+
{ x: 0, y: -1 },
|
|
3931
|
+
{ x: 2.54, y: -1 }
|
|
3932
|
+
];
|
|
3933
|
+
var TO220 = ({
|
|
3934
|
+
mouldedTab = false,
|
|
3935
|
+
leads = TO220_DEFAULT_LEADS,
|
|
3936
|
+
bodyWidth = 10,
|
|
3937
|
+
bodyThickness = 4.5,
|
|
3938
|
+
bodyHeight = 9.2,
|
|
3939
|
+
tabHeight = 6.4,
|
|
3940
|
+
tabThickness = 1.4,
|
|
3941
|
+
mountingHoleDiameter = 3.6,
|
|
3942
|
+
standoff = 3,
|
|
3943
|
+
leadLength = 3,
|
|
3944
|
+
bodyColor = "#222",
|
|
3945
|
+
tabColor = "#ccc",
|
|
3946
|
+
leadColor = "#d4b106"
|
|
3947
|
+
} = {}) => {
|
|
3948
|
+
const centerX = leads.reduce((sum, lead) => sum + lead.x, 0) / leads.length;
|
|
3949
|
+
const centerY = leads.reduce((sum, lead) => sum + lead.y, 0) / leads.length;
|
|
3950
|
+
const bodyBottom = standoff;
|
|
3951
|
+
const bodyTop = bodyBottom + bodyHeight;
|
|
3952
|
+
const tabTop = bodyTop + tabHeight;
|
|
3953
|
+
const tabY = centerY + (bodyThickness - tabThickness) / 2;
|
|
3954
|
+
const holeZ = tabTop - Math.max(mountingHoleDiameter * 0.8, 2.6);
|
|
3955
|
+
const leadWidth = 0.8;
|
|
3956
|
+
const leadThickness = 0.5;
|
|
3957
|
+
return /* @__PURE__ */ jsxs52(Fragment52, { children: [
|
|
3958
|
+
/* @__PURE__ */ jsx56(Colorize27, { color: bodyColor, children: /* @__PURE__ */ jsx56(
|
|
3959
|
+
Cuboid34,
|
|
3960
|
+
{
|
|
3961
|
+
size: [bodyWidth, bodyThickness, bodyHeight],
|
|
3962
|
+
center: [centerX, centerY, bodyBottom + bodyHeight / 2]
|
|
3963
|
+
}
|
|
3964
|
+
) }),
|
|
3965
|
+
/* @__PURE__ */ jsx56(Colorize27, { color: mouldedTab ? bodyColor : tabColor, children: /* @__PURE__ */ jsxs52(Subtract4, { children: [
|
|
3966
|
+
/* @__PURE__ */ jsx56(
|
|
3967
|
+
Cuboid34,
|
|
3965
3968
|
{
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
height: bodyHeight,
|
|
3969
|
-
center: { x: fullLength10, y: 0, z: -2.4 },
|
|
3970
|
-
includeNotch: false,
|
|
3971
|
-
straightHeightRatio: 0.3,
|
|
3972
|
-
taperRatio: 0.04,
|
|
3973
|
-
heightAboveSurface: 1
|
|
3969
|
+
size: [bodyWidth, tabThickness, tabHeight],
|
|
3970
|
+
center: [centerX, tabY, bodyTop + tabHeight / 2]
|
|
3974
3971
|
}
|
|
3975
|
-
)
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
/* @__PURE__ */ jsx56(Translate22, { center: [x, y, z], children: /* @__PURE__ */ jsx56(Cuboid34, { size: [prongLength + 0.1, prongWidth, prongHeight] }) })
|
|
3993
|
-
] }, `prong-${i}`);
|
|
3994
|
-
}) })
|
|
3995
|
-
] }) });
|
|
3972
|
+
),
|
|
3973
|
+
/* @__PURE__ */ jsx56(Rotate10, { rotation: ["90deg", 0, 0], children: /* @__PURE__ */ jsx56(Translate22, { center: [centerX, holeZ, -tabY], children: /* @__PURE__ */ jsx56(
|
|
3974
|
+
Cylinder7,
|
|
3975
|
+
{
|
|
3976
|
+
radius: mountingHoleDiameter / 2,
|
|
3977
|
+
height: tabThickness * 3
|
|
3978
|
+
}
|
|
3979
|
+
) }) })
|
|
3980
|
+
] }) }),
|
|
3981
|
+
leads.map((lead) => /* @__PURE__ */ jsx56(Colorize27, { color: leadColor, children: /* @__PURE__ */ jsx56(
|
|
3982
|
+
Cuboid34,
|
|
3983
|
+
{
|
|
3984
|
+
size: [leadWidth, leadThickness, standoff + leadLength],
|
|
3985
|
+
center: [lead.x, lead.y, (standoff - leadLength) / 2]
|
|
3986
|
+
}
|
|
3987
|
+
) }, `lead-${lead.x}-${lead.y}`))
|
|
3988
|
+
] });
|
|
3996
3989
|
};
|
|
3997
3990
|
|
|
3998
3991
|
// lib/SOT-457.tsx
|
|
@@ -4196,50 +4189,106 @@ var SOT963 = () => {
|
|
|
4196
4189
|
import {
|
|
4197
4190
|
Colorize as Colorize28,
|
|
4198
4191
|
Cuboid as Cuboid36,
|
|
4199
|
-
Hull as
|
|
4192
|
+
Hull as Hull19,
|
|
4200
4193
|
Translate as Translate23,
|
|
4201
4194
|
Cylinder as Cylinder8,
|
|
4202
4195
|
Subtract as Subtract5
|
|
4203
4196
|
} from "jscad-fiber";
|
|
4204
|
-
import { jsx as jsx59, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
4205
|
-
var
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4197
|
+
import { Fragment as Fragment55, jsx as jsx59, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
4198
|
+
var TO92_DEFAULT_LEADS = [
|
|
4199
|
+
{ x: -1.27, y: 0.98 },
|
|
4200
|
+
{ x: 0, y: 2.25 },
|
|
4201
|
+
{ x: 1.27, y: 0.98 }
|
|
4202
|
+
];
|
|
4203
|
+
var splitOuterLeads = (leads) => {
|
|
4204
|
+
let outer = [leads[0], leads[leads.length - 1]];
|
|
4205
|
+
let best = -1;
|
|
4206
|
+
for (let i = 0; i < leads.length; i++) {
|
|
4207
|
+
for (let j = i + 1; j < leads.length; j++) {
|
|
4208
|
+
const separation = Math.hypot(
|
|
4209
|
+
leads[i].x - leads[j].x,
|
|
4210
|
+
leads[i].y - leads[j].y
|
|
4211
|
+
);
|
|
4212
|
+
if (separation > best) {
|
|
4213
|
+
best = separation;
|
|
4214
|
+
outer = [leads[i], leads[j]];
|
|
4215
|
+
}
|
|
4216
|
+
}
|
|
4217
|
+
}
|
|
4218
|
+
return { outer, separation: best };
|
|
4219
|
+
};
|
|
4220
|
+
var TO92 = ({
|
|
4221
|
+
bodyDiameter = 4.8,
|
|
4222
|
+
bodyHeight = 4.5,
|
|
4223
|
+
flatCut = 1.1,
|
|
4224
|
+
leads = TO92_DEFAULT_LEADS,
|
|
4225
|
+
standoff = 1.5,
|
|
4226
|
+
leadLength = 3,
|
|
4227
|
+
bodyColor = "#222"
|
|
4228
|
+
} = {}) => {
|
|
4229
|
+
const bodyRadius = bodyDiameter / 2;
|
|
4209
4230
|
const legWidth = 0.4;
|
|
4210
4231
|
const legThickness = 0.25;
|
|
4211
|
-
const
|
|
4212
|
-
const
|
|
4213
|
-
const
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4232
|
+
const { outer, separation } = splitOuterLeads(leads);
|
|
4233
|
+
const [first, last] = outer;
|
|
4234
|
+
const bodyCenter = {
|
|
4235
|
+
x: (first.x + last.x) / 2,
|
|
4236
|
+
y: (first.y + last.y) / 2
|
|
4237
|
+
};
|
|
4238
|
+
const axisLength = Math.max(separation, 1e-3);
|
|
4239
|
+
const axis = {
|
|
4240
|
+
x: (last.x - first.x) / axisLength,
|
|
4241
|
+
y: (last.y - first.y) / axisLength
|
|
4242
|
+
};
|
|
4243
|
+
const exitPitch = separation / 2;
|
|
4244
|
+
const exitFor = (index) => {
|
|
4245
|
+
const offset = (index - (leads.length - 1) / 2) * exitPitch;
|
|
4246
|
+
return {
|
|
4247
|
+
x: bodyCenter.x + axis.x * offset,
|
|
4248
|
+
y: bodyCenter.y + axis.y * offset
|
|
4249
|
+
};
|
|
4250
|
+
};
|
|
4251
|
+
const leadSize = [
|
|
4252
|
+
legThickness,
|
|
4217
4253
|
legWidth,
|
|
4218
4254
|
legThickness
|
|
4219
4255
|
];
|
|
4220
|
-
|
|
4221
|
-
const leadMidPosA = [0, 0, -1.32];
|
|
4222
|
-
const leadMidPosB = [0, 1.28, -2.72];
|
|
4223
|
-
const leadTipPos2 = [0, 1.28, -8.9];
|
|
4224
|
-
const sideLeadZ = -7.5;
|
|
4225
|
-
return /* @__PURE__ */ jsxs55(Translate23, { center: [0, 1, 10.5], children: [
|
|
4256
|
+
return /* @__PURE__ */ jsxs55(Fragment55, { children: [
|
|
4226
4257
|
/* @__PURE__ */ jsx59(Colorize28, { color: bodyColor, children: /* @__PURE__ */ jsxs55(Subtract5, { children: [
|
|
4227
|
-
/* @__PURE__ */ jsx59(
|
|
4228
|
-
|
|
4258
|
+
/* @__PURE__ */ jsx59(
|
|
4259
|
+
Translate23,
|
|
4260
|
+
{
|
|
4261
|
+
center: [bodyCenter.x, bodyCenter.y, standoff + bodyHeight / 2],
|
|
4262
|
+
children: /* @__PURE__ */ jsx59(Cylinder8, { radius: bodyRadius, height: bodyHeight })
|
|
4263
|
+
}
|
|
4264
|
+
),
|
|
4265
|
+
/* @__PURE__ */ jsx59(
|
|
4266
|
+
Translate23,
|
|
4267
|
+
{
|
|
4268
|
+
center: [
|
|
4269
|
+
bodyCenter.x,
|
|
4270
|
+
bodyCenter.y - (bodyRadius - flatCut / 2),
|
|
4271
|
+
standoff + bodyHeight / 2
|
|
4272
|
+
],
|
|
4273
|
+
children: /* @__PURE__ */ jsx59(Cuboid36, { size: [bodyRadius * 2, flatCut, bodyHeight + 0.2] })
|
|
4274
|
+
}
|
|
4275
|
+
)
|
|
4229
4276
|
] }) }),
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
/* @__PURE__ */
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4277
|
+
leads.map((lead, index) => {
|
|
4278
|
+
const exit = exitFor(index);
|
|
4279
|
+
return /* @__PURE__ */ jsxs55(Translate23, { center: [0, 0, 0], children: [
|
|
4280
|
+
/* @__PURE__ */ jsxs55(Hull19, { children: [
|
|
4281
|
+
/* @__PURE__ */ jsx59(Translate23, { center: [lead.x, lead.y, 0], children: /* @__PURE__ */ jsx59(Cuboid36, { size: leadSize }) }),
|
|
4282
|
+
/* @__PURE__ */ jsx59(Translate23, { center: [exit.x, exit.y, standoff], children: /* @__PURE__ */ jsx59(Cuboid36, { size: leadSize }) })
|
|
4283
|
+
] }),
|
|
4284
|
+
/* @__PURE__ */ jsx59(Translate23, { center: [lead.x, lead.y, -leadLength / 2], children: /* @__PURE__ */ jsx59(Cuboid36, { size: [legThickness, legWidth, leadLength] }) })
|
|
4285
|
+
] }, `lead-${lead.x}-${lead.y}`);
|
|
4286
|
+
})
|
|
4238
4287
|
] });
|
|
4239
4288
|
};
|
|
4240
4289
|
|
|
4241
4290
|
// lib/SOT-363.tsx
|
|
4242
|
-
import { Fragment as
|
|
4291
|
+
import { Fragment as Fragment56, jsx as jsx60, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
4243
4292
|
var SOT363 = () => {
|
|
4244
4293
|
const fullWidth = 2;
|
|
4245
4294
|
const bodyWidth = 1.25;
|
|
@@ -4250,7 +4299,7 @@ var SOT363 = () => {
|
|
|
4250
4299
|
const leadHeight = 0.85;
|
|
4251
4300
|
const padContactLength = 0.3;
|
|
4252
4301
|
const extendedBodyDistance = fullWidth - bodyWidth;
|
|
4253
|
-
return /* @__PURE__ */ jsxs56(
|
|
4302
|
+
return /* @__PURE__ */ jsxs56(Fragment56, { children: [
|
|
4254
4303
|
/* @__PURE__ */ jsx60(
|
|
4255
4304
|
SmdChipLead,
|
|
4256
4305
|
{
|
|
@@ -4372,7 +4421,7 @@ var SOT_363_default = SOT363;
|
|
|
4372
4421
|
|
|
4373
4422
|
// lib/SOT-886.tsx
|
|
4374
4423
|
import { Cuboid as Cuboid37 } from "jscad-fiber";
|
|
4375
|
-
import { Fragment as
|
|
4424
|
+
import { Fragment as Fragment57, jsx as jsx61, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
4376
4425
|
var SOT886 = () => {
|
|
4377
4426
|
const bodyWidth = 1;
|
|
4378
4427
|
const bodyLength10 = 1.45;
|
|
@@ -4383,7 +4432,7 @@ var SOT886 = () => {
|
|
|
4383
4432
|
const pitch = 0.5;
|
|
4384
4433
|
const pinsPerSide = 3;
|
|
4385
4434
|
const pinSpan = pitch * (pinsPerSide - 1);
|
|
4386
|
-
return /* @__PURE__ */ jsxs57(
|
|
4435
|
+
return /* @__PURE__ */ jsxs57(Fragment57, { children: [
|
|
4387
4436
|
/* @__PURE__ */ jsx61(
|
|
4388
4437
|
ChipBody,
|
|
4389
4438
|
{
|
|
@@ -4432,11 +4481,11 @@ var SOT886 = () => {
|
|
|
4432
4481
|
|
|
4433
4482
|
// lib/sod-323.tsx
|
|
4434
4483
|
import { Colorize as Colorize29, Cuboid as Cuboid38 } from "jscad-fiber";
|
|
4435
|
-
import { Fragment as
|
|
4484
|
+
import { Fragment as Fragment58, jsx as jsx62, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
4436
4485
|
var SOD323 = () => {
|
|
4437
4486
|
const fullWidth = 2.5;
|
|
4438
|
-
const bodyLength10 = 1.
|
|
4439
|
-
const bodyWidth = 1.
|
|
4487
|
+
const bodyLength10 = 1.4;
|
|
4488
|
+
const bodyWidth = 1.8;
|
|
4440
4489
|
const bodyHeight = 0.95;
|
|
4441
4490
|
const leadWidth = 0.3;
|
|
4442
4491
|
const leadThickness = 0.175;
|
|
@@ -4444,7 +4493,7 @@ var SOD323 = () => {
|
|
|
4444
4493
|
const padCenterX = bodyWidth / 2;
|
|
4445
4494
|
const bodyDistance = 0.45;
|
|
4446
4495
|
const leadHeight = 0.7;
|
|
4447
|
-
return /* @__PURE__ */ jsxs58(
|
|
4496
|
+
return /* @__PURE__ */ jsxs58(Fragment58, { children: [
|
|
4448
4497
|
/* @__PURE__ */ jsx62(
|
|
4449
4498
|
SmdChipLead,
|
|
4450
4499
|
{
|
|
@@ -4503,8 +4552,8 @@ var SOD323 = () => {
|
|
|
4503
4552
|
};
|
|
4504
4553
|
|
|
4505
4554
|
// lib/sod-323F.tsx
|
|
4506
|
-
import { Colorize as Colorize30, Cuboid as Cuboid39, Hull as
|
|
4507
|
-
import { Fragment as
|
|
4555
|
+
import { Colorize as Colorize30, Cuboid as Cuboid39, Hull as Hull21, Translate as Translate25, Union as Union17 } from "jscad-fiber";
|
|
4556
|
+
import { Fragment as Fragment59, jsx as jsx63, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
4508
4557
|
var SOD323F = () => {
|
|
4509
4558
|
const fullWidth = 1.7;
|
|
4510
4559
|
const bodyLength10 = 1.25;
|
|
@@ -4516,7 +4565,7 @@ var SOD323F = () => {
|
|
|
4516
4565
|
const rightPadCenterX = fullWidth / 2 + padLength / 2;
|
|
4517
4566
|
const taperOffset = 0.2;
|
|
4518
4567
|
const straightHeight = padThickness;
|
|
4519
|
-
return /* @__PURE__ */ jsxs59(
|
|
4568
|
+
return /* @__PURE__ */ jsxs59(Fragment59, { children: [
|
|
4520
4569
|
/* @__PURE__ */ jsx63(
|
|
4521
4570
|
Cuboid39,
|
|
4522
4571
|
{
|
|
@@ -4535,7 +4584,7 @@ var SOD323F = () => {
|
|
|
4535
4584
|
),
|
|
4536
4585
|
/* @__PURE__ */ jsx63(Colorize30, { color: "#222", children: /* @__PURE__ */ jsxs59(Union17, { children: [
|
|
4537
4586
|
/* @__PURE__ */ jsx63(Translate25, { z: straightHeight / 2, children: /* @__PURE__ */ jsx63(Cuboid39, { size: [fullWidth, bodyLength10, straightHeight] }) }),
|
|
4538
|
-
/* @__PURE__ */ jsxs59(
|
|
4587
|
+
/* @__PURE__ */ jsxs59(Hull21, { children: [
|
|
4539
4588
|
/* @__PURE__ */ jsx63(Translate25, { z: straightHeight, children: /* @__PURE__ */ jsx63(Cuboid39, { size: [fullWidth, bodyLength10, 0.01] }) }),
|
|
4540
4589
|
/* @__PURE__ */ jsx63(Translate25, { z: bodyHeight, children: /* @__PURE__ */ jsx63(
|
|
4541
4590
|
Cuboid39,
|
|
@@ -4558,7 +4607,7 @@ var SOD323F = () => {
|
|
|
4558
4607
|
|
|
4559
4608
|
// lib/sod-323FL.tsx
|
|
4560
4609
|
import { Colorize as Colorize31, Cuboid as Cuboid40 } from "jscad-fiber";
|
|
4561
|
-
import { Fragment as
|
|
4610
|
+
import { Fragment as Fragment60, jsx as jsx64, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
4562
4611
|
var SOD323FL = () => {
|
|
4563
4612
|
const fullWidth = 1.775;
|
|
4564
4613
|
const bodyLength10 = 1.25;
|
|
@@ -4569,7 +4618,7 @@ var SOD323FL = () => {
|
|
|
4569
4618
|
const leftPadCenterX = -fullWidth / 2 - padLength / 2 + 0.04;
|
|
4570
4619
|
const rightPadCenterX = fullWidth / 2 + padLength / 2 - 0.04;
|
|
4571
4620
|
const taperOffset = 0.2;
|
|
4572
|
-
return /* @__PURE__ */ jsxs60(
|
|
4621
|
+
return /* @__PURE__ */ jsxs60(Fragment60, { children: [
|
|
4573
4622
|
/* @__PURE__ */ jsx64(
|
|
4574
4623
|
Cuboid40,
|
|
4575
4624
|
{
|
|
@@ -4612,10 +4661,10 @@ var SOD323FL = () => {
|
|
|
4612
4661
|
|
|
4613
4662
|
// lib/AxialCapacitor.tsx
|
|
4614
4663
|
import { Colorize as Colorize32, Cylinder as Cylinder9, Rotate as Rotate11, Sphere as Sphere2, Translate as Translate27 } from "jscad-fiber";
|
|
4615
|
-
import { Fragment as
|
|
4664
|
+
import { Fragment as Fragment61, jsx as jsx65, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
4616
4665
|
var AxialCapacitor = ({ pitch = 10 }) => {
|
|
4617
4666
|
const heightToCenterOfCapacitor = 0.5 + 4 / 2;
|
|
4618
|
-
return /* @__PURE__ */ jsxs61(
|
|
4667
|
+
return /* @__PURE__ */ jsxs61(Fragment61, { children: [
|
|
4619
4668
|
/* @__PURE__ */ jsx65(Cylinder9, { height: 4, radius: 0.5, center: [-pitch / 2, 0, 0.5] }),
|
|
4620
4669
|
/* @__PURE__ */ jsx65(
|
|
4621
4670
|
Sphere2,
|
|
@@ -4649,7 +4698,7 @@ var AxialCapacitor = ({ pitch = 10 }) => {
|
|
|
4649
4698
|
|
|
4650
4699
|
// lib/stampboard.tsx
|
|
4651
4700
|
import { Colorize as Colorize33, Cuboid as Cuboid41, Cylinder as Cylinder10, Subtract as Subtract6, Union as Union19 } from "jscad-fiber";
|
|
4652
|
-
import { Fragment as
|
|
4701
|
+
import { Fragment as Fragment62, jsx as jsx66, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
4653
4702
|
var StampBoard = ({
|
|
4654
4703
|
bodyWidth = 21,
|
|
4655
4704
|
boardThickness = 0.5,
|
|
@@ -4782,7 +4831,7 @@ var StampBoard = ({
|
|
|
4782
4831
|
},
|
|
4783
4832
|
index
|
|
4784
4833
|
));
|
|
4785
|
-
return /* @__PURE__ */ jsxs62(
|
|
4834
|
+
return /* @__PURE__ */ jsxs62(Fragment62, { children: [
|
|
4786
4835
|
boardBody,
|
|
4787
4836
|
/* @__PURE__ */ jsx66(Colorize33, { color: "#FFD700", children: innerHoles ? /* @__PURE__ */ jsxs62(Subtract6, { children: [
|
|
4788
4837
|
/* @__PURE__ */ jsx66(Union19, { children: pads.map((pad, index) => /* @__PURE__ */ jsx66(
|
|
@@ -4867,7 +4916,7 @@ var Screen = ({
|
|
|
4867
4916
|
var Display = Screen;
|
|
4868
4917
|
|
|
4869
4918
|
// lib/MountedPcbModule.tsx
|
|
4870
|
-
import { Fragment as
|
|
4919
|
+
import { Fragment as Fragment63, jsx as jsx68, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
4871
4920
|
var MountedPcbModule = ({
|
|
4872
4921
|
numPins = 5,
|
|
4873
4922
|
rows = 1,
|
|
@@ -5035,7 +5084,7 @@ var MountedPcbModule = ({
|
|
|
5035
5084
|
},
|
|
5036
5085
|
`female-pin-3d-${index}`
|
|
5037
5086
|
));
|
|
5038
|
-
return /* @__PURE__ */ jsxs64(
|
|
5087
|
+
return /* @__PURE__ */ jsxs64(Fragment63, { children: [
|
|
5039
5088
|
boardBody,
|
|
5040
5089
|
platedHoles,
|
|
5041
5090
|
!female && !nopin && headerPins,
|
|
@@ -5056,8 +5105,8 @@ var MountedPcbModule = ({
|
|
|
5056
5105
|
};
|
|
5057
5106
|
|
|
5058
5107
|
// lib/SOD723.tsx
|
|
5059
|
-
import { Colorize as Colorize36, Cuboid as Cuboid44, Hull as
|
|
5060
|
-
import { Fragment as
|
|
5108
|
+
import { Colorize as Colorize36, Cuboid as Cuboid44, Hull as Hull23, Translate as Translate29, Union as Union20 } from "jscad-fiber";
|
|
5109
|
+
import { Fragment as Fragment64, jsx as jsx69, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
5061
5110
|
var SOD723 = () => {
|
|
5062
5111
|
const fullWidth = 1.4;
|
|
5063
5112
|
const bodyLength10 = 0.6;
|
|
@@ -5070,7 +5119,7 @@ var SOD723 = () => {
|
|
|
5070
5119
|
const rightPadCenterX = bodyWidth / 2 - padLength / 2 + 0.15;
|
|
5071
5120
|
const taperOffset = 0.2;
|
|
5072
5121
|
const straightHeight = bodyHeight * 0.24;
|
|
5073
|
-
return /* @__PURE__ */ jsxs65(
|
|
5122
|
+
return /* @__PURE__ */ jsxs65(Fragment64, { children: [
|
|
5074
5123
|
/* @__PURE__ */ jsx69(
|
|
5075
5124
|
Cuboid44,
|
|
5076
5125
|
{
|
|
@@ -5089,7 +5138,7 @@ var SOD723 = () => {
|
|
|
5089
5138
|
),
|
|
5090
5139
|
/* @__PURE__ */ jsx69(Colorize36, { color: "#222", children: /* @__PURE__ */ jsxs65(Union20, { children: [
|
|
5091
5140
|
/* @__PURE__ */ jsx69(Translate29, { z: straightHeight / 2, children: /* @__PURE__ */ jsx69(Cuboid44, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
|
|
5092
|
-
/* @__PURE__ */ jsxs65(
|
|
5141
|
+
/* @__PURE__ */ jsxs65(Hull23, { children: [
|
|
5093
5142
|
/* @__PURE__ */ jsx69(Translate29, { z: straightHeight, children: /* @__PURE__ */ jsx69(Cuboid44, { size: [bodyWidth, bodyLength10, 0.01] }) }),
|
|
5094
5143
|
/* @__PURE__ */ jsx69(Translate29, { z: bodyHeight, children: /* @__PURE__ */ jsx69(
|
|
5095
5144
|
Cuboid44,
|
|
@@ -5120,7 +5169,7 @@ import {
|
|
|
5120
5169
|
Subtract as Subtract9,
|
|
5121
5170
|
Translate as Translate30
|
|
5122
5171
|
} from "jscad-fiber";
|
|
5123
|
-
import { Fragment as
|
|
5172
|
+
import { Fragment as Fragment65, jsx as jsx70, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
5124
5173
|
var JSTZH1_5mm = ({
|
|
5125
5174
|
numPins = 7,
|
|
5126
5175
|
showPins = true,
|
|
@@ -5136,7 +5185,7 @@ var JSTZH1_5mm = ({
|
|
|
5136
5185
|
const pinLength = 6;
|
|
5137
5186
|
const bodyWidth = (numPins - 1) * pitch + 4;
|
|
5138
5187
|
const startX = -((numPins - 1) * pitch) / 2;
|
|
5139
|
-
return /* @__PURE__ */ jsxs66(
|
|
5188
|
+
return /* @__PURE__ */ jsxs66(Fragment65, { children: [
|
|
5140
5189
|
/* @__PURE__ */ jsx70(Translate30, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx70(Rotate12, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx70(Colorize37, { color: bodyColor, children: /* @__PURE__ */ jsxs66(Subtract9, { children: [
|
|
5141
5190
|
/* @__PURE__ */ jsx70(
|
|
5142
5191
|
Cuboid45,
|
|
@@ -5280,7 +5329,7 @@ import {
|
|
|
5280
5329
|
Subtract as Subtract10,
|
|
5281
5330
|
Translate as Translate31
|
|
5282
5331
|
} from "jscad-fiber";
|
|
5283
|
-
import { Fragment as
|
|
5332
|
+
import { Fragment as Fragment66, jsx as jsx71, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
5284
5333
|
var HOUSING_COLOR = "#303339";
|
|
5285
5334
|
var HOUSING_SHADOW = "#1f2227";
|
|
5286
5335
|
var ACTUATOR_COLOR = "#eee8d8";
|
|
@@ -5367,7 +5416,7 @@ var FPC = ({
|
|
|
5367
5416
|
const clipCapX = bodyWidth / 2 - 0.23;
|
|
5368
5417
|
const sideBossX = bodyWidth / 2 - 0.32;
|
|
5369
5418
|
const sideBossWidth = 0.68;
|
|
5370
|
-
return /* @__PURE__ */ jsxs67(
|
|
5419
|
+
return /* @__PURE__ */ jsxs67(Fragment66, { children: [
|
|
5371
5420
|
[-1, 1].map((direction) => /* @__PURE__ */ jsx71(
|
|
5372
5421
|
Cuboid46,
|
|
5373
5422
|
{
|
|
@@ -5546,8 +5595,8 @@ var FPC = ({
|
|
|
5546
5595
|
};
|
|
5547
5596
|
|
|
5548
5597
|
// lib/SmdPinHeader.tsx
|
|
5549
|
-
import { Colorize as Colorize39, Cuboid as Cuboid47, Hull as
|
|
5550
|
-
import { Fragment as
|
|
5598
|
+
import { Colorize as Colorize39, Cuboid as Cuboid47, Hull as Hull24, Translate as Translate32 } from "jscad-fiber";
|
|
5599
|
+
import { Fragment as Fragment67, jsx as jsx72, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
5551
5600
|
var SmdPinHeader = ({
|
|
5552
5601
|
numberOfPins,
|
|
5553
5602
|
pitch = 2.54,
|
|
@@ -5562,7 +5611,7 @@ var SmdPinHeader = ({
|
|
|
5562
5611
|
const bodyTop = standoffHeight + bodyHeight;
|
|
5563
5612
|
const tailLength = tailSpan / 2;
|
|
5564
5613
|
const tipChamferHeight = pinThickness * 0.35;
|
|
5565
|
-
return /* @__PURE__ */ jsx72(
|
|
5614
|
+
return /* @__PURE__ */ jsx72(Fragment67, { children: Array.from({ length: numberOfPins }, (_, index) => {
|
|
5566
5615
|
const x = xStart + index * pitch;
|
|
5567
5616
|
const tailDirection = index % 2 === 0 ? 1 : -1;
|
|
5568
5617
|
const postBodyLength = matingPinLength - tipChamferHeight;
|
|
@@ -5598,7 +5647,7 @@ var SmdPinHeader = ({
|
|
|
5598
5647
|
center: [0, 0, bodyTop + postBodyLength / 2]
|
|
5599
5648
|
}
|
|
5600
5649
|
),
|
|
5601
|
-
/* @__PURE__ */ jsxs68(
|
|
5650
|
+
/* @__PURE__ */ jsxs68(Hull24, { children: [
|
|
5602
5651
|
/* @__PURE__ */ jsx72(
|
|
5603
5652
|
Cuboid47,
|
|
5604
5653
|
{
|
|
@@ -5622,9 +5671,88 @@ var SmdPinHeader = ({
|
|
|
5622
5671
|
// lib/Footprinter3d.tsx
|
|
5623
5672
|
import { mm } from "@tscircuit/mm";
|
|
5624
5673
|
|
|
5674
|
+
// lib/utils/getPlatedHoleCenters.ts
|
|
5675
|
+
import { fp as fp3 } from "@tscircuit/footprinter";
|
|
5676
|
+
var getPlatedHoleCenters = (footprint) => {
|
|
5677
|
+
const elements = fp3.string(footprint).circuitJson();
|
|
5678
|
+
return elements.filter(
|
|
5679
|
+
(element) => element.type === "pcb_plated_hole" && Number.isFinite(element.x) && Number.isFinite(element.y)
|
|
5680
|
+
).map((element) => ({
|
|
5681
|
+
x: element.x,
|
|
5682
|
+
y: element.y,
|
|
5683
|
+
pin: element.port_hints?.[0]
|
|
5684
|
+
}));
|
|
5685
|
+
};
|
|
5686
|
+
|
|
5687
|
+
// lib/utils/getSmtPadRects.ts
|
|
5688
|
+
import { fp as fp4 } from "@tscircuit/footprinter";
|
|
5689
|
+
var getSmtPadRects = (footprint) => {
|
|
5690
|
+
const elements = fp4.string(footprint).circuitJson();
|
|
5691
|
+
return elements.filter(
|
|
5692
|
+
(element) => element.type === "pcb_smtpad" && element.shape === "rect" && Number.isFinite(element.x) && Number.isFinite(element.y)
|
|
5693
|
+
).map((element) => ({
|
|
5694
|
+
x: element.x,
|
|
5695
|
+
y: element.y,
|
|
5696
|
+
width: element.width ?? 0.4,
|
|
5697
|
+
height: element.height ?? 0.4,
|
|
5698
|
+
pin: element.port_hints?.[0]
|
|
5699
|
+
}));
|
|
5700
|
+
};
|
|
5701
|
+
|
|
5702
|
+
// lib/GullWingBody.tsx
|
|
5703
|
+
import { Fragment as Fragment68, jsx as jsx73, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
5704
|
+
var GullWingBody = ({
|
|
5705
|
+
bodyWidth,
|
|
5706
|
+
bodyLength: bodyLength10,
|
|
5707
|
+
bodyHeight = 1,
|
|
5708
|
+
pads,
|
|
5709
|
+
leadThickness = 0.15,
|
|
5710
|
+
leadHeightRatio = 0.75
|
|
5711
|
+
}) => {
|
|
5712
|
+
const centerX = pads.reduce((sum, pad) => sum + pad.x, 0) / (pads.length || 1);
|
|
5713
|
+
const centerY = pads.reduce((sum, pad) => sum + pad.y, 0) / (pads.length || 1);
|
|
5714
|
+
const leadHeight = bodyHeight * leadHeightRatio;
|
|
5715
|
+
return /* @__PURE__ */ jsxs69(Fragment68, { children: [
|
|
5716
|
+
/* @__PURE__ */ jsx73(
|
|
5717
|
+
ChipBody,
|
|
5718
|
+
{
|
|
5719
|
+
center: { x: centerX, y: centerY, z: 0 },
|
|
5720
|
+
width: bodyWidth,
|
|
5721
|
+
length: bodyLength10,
|
|
5722
|
+
height: bodyHeight
|
|
5723
|
+
}
|
|
5724
|
+
),
|
|
5725
|
+
pads.map((pad) => {
|
|
5726
|
+
const padWidth = pad.width ?? 0.4;
|
|
5727
|
+
const padLength = pad.height ?? 0.4;
|
|
5728
|
+
const side = pad.x >= centerX ? 1 : -1;
|
|
5729
|
+
const outerX = pad.x + side * padWidth / 2;
|
|
5730
|
+
const run = Math.max(Math.abs(outerX - centerX) - bodyWidth / 2, 0.1);
|
|
5731
|
+
const overlap = Math.min(0.15, bodyWidth * 0.15);
|
|
5732
|
+
return /* @__PURE__ */ jsx73(
|
|
5733
|
+
SmdChipLead,
|
|
5734
|
+
{
|
|
5735
|
+
rotation: side > 0 ? Math.PI : 0,
|
|
5736
|
+
position: {
|
|
5737
|
+
x: outerX,
|
|
5738
|
+
y: pad.y,
|
|
5739
|
+
z: leadThickness / 2
|
|
5740
|
+
},
|
|
5741
|
+
width: padLength,
|
|
5742
|
+
thickness: leadThickness,
|
|
5743
|
+
padContactLength: padWidth * 0.6,
|
|
5744
|
+
bodyDistance: run + overlap,
|
|
5745
|
+
height: leadHeight
|
|
5746
|
+
},
|
|
5747
|
+
`lead-${pad.x}-${pad.y}`
|
|
5748
|
+
);
|
|
5749
|
+
})
|
|
5750
|
+
] });
|
|
5751
|
+
};
|
|
5752
|
+
|
|
5625
5753
|
// lib/ParametricChip.tsx
|
|
5626
5754
|
import { Cuboid as Cuboid48 } from "jscad-fiber";
|
|
5627
|
-
import { Fragment as
|
|
5755
|
+
import { Fragment as Fragment69, jsx as jsx74, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
5628
5756
|
var ParametricChip = ({
|
|
5629
5757
|
padPitch,
|
|
5630
5758
|
padHeight,
|
|
@@ -5635,8 +5763,8 @@ var ParametricChip = ({
|
|
|
5635
5763
|
const height10 = width10;
|
|
5636
5764
|
const terminatorWidth9 = fullLength10 * 0.2;
|
|
5637
5765
|
const bodyLength10 = fullLength10 - terminatorWidth9 * 2;
|
|
5638
|
-
return /* @__PURE__ */
|
|
5639
|
-
/* @__PURE__ */
|
|
5766
|
+
return /* @__PURE__ */ jsxs70(Fragment69, { children: [
|
|
5767
|
+
/* @__PURE__ */ jsx74(
|
|
5640
5768
|
Cuboid48,
|
|
5641
5769
|
{
|
|
5642
5770
|
size: [bodyLength10, width10, height10],
|
|
@@ -5644,7 +5772,7 @@ var ParametricChip = ({
|
|
|
5644
5772
|
color
|
|
5645
5773
|
}
|
|
5646
5774
|
),
|
|
5647
|
-
/* @__PURE__ */
|
|
5775
|
+
/* @__PURE__ */ jsx74(
|
|
5648
5776
|
Cuboid48,
|
|
5649
5777
|
{
|
|
5650
5778
|
size: [terminatorWidth9, height10, width10],
|
|
@@ -5652,7 +5780,7 @@ var ParametricChip = ({
|
|
|
5652
5780
|
color: "#ccc"
|
|
5653
5781
|
}
|
|
5654
5782
|
),
|
|
5655
|
-
/* @__PURE__ */
|
|
5783
|
+
/* @__PURE__ */ jsx74(
|
|
5656
5784
|
Cuboid48,
|
|
5657
5785
|
{
|
|
5658
5786
|
size: [terminatorWidth9, height10, width10],
|
|
@@ -5672,7 +5800,7 @@ import {
|
|
|
5672
5800
|
Subtract as Subtract11,
|
|
5673
5801
|
Translate as Translate33
|
|
5674
5802
|
} from "jscad-fiber";
|
|
5675
|
-
import { Fragment as
|
|
5803
|
+
import { Fragment as Fragment70, jsx as jsx75, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
5676
5804
|
var Led5050 = ({
|
|
5677
5805
|
color = "#ffff00",
|
|
5678
5806
|
bodyColor = "#ffffff",
|
|
@@ -5693,9 +5821,9 @@ var Led5050 = ({
|
|
|
5693
5821
|
const cornerCutDepth = 0.3;
|
|
5694
5822
|
const leadYPositions = [-1.7, 0, 1.7];
|
|
5695
5823
|
const leadSides = [-1, 1];
|
|
5696
|
-
return /* @__PURE__ */
|
|
5824
|
+
return /* @__PURE__ */ jsxs71(Fragment70, { children: [
|
|
5697
5825
|
leadYPositions.flatMap(
|
|
5698
|
-
(y) => leadSides.map((side) => /* @__PURE__ */
|
|
5826
|
+
(y) => leadSides.map((side) => /* @__PURE__ */ jsx75(
|
|
5699
5827
|
Cuboid49,
|
|
5700
5828
|
{
|
|
5701
5829
|
color: leadColor,
|
|
@@ -5705,8 +5833,8 @@ var Led5050 = ({
|
|
|
5705
5833
|
`${side}-${y}`
|
|
5706
5834
|
))
|
|
5707
5835
|
),
|
|
5708
|
-
/* @__PURE__ */
|
|
5709
|
-
/* @__PURE__ */
|
|
5836
|
+
/* @__PURE__ */ jsx75(Colorize40, { color: bodyColor, children: /* @__PURE__ */ jsxs71(Subtract11, { children: [
|
|
5837
|
+
/* @__PURE__ */ jsx75(
|
|
5710
5838
|
ChipBody,
|
|
5711
5839
|
{
|
|
5712
5840
|
width: bodySize,
|
|
@@ -5720,7 +5848,7 @@ var Led5050 = ({
|
|
|
5720
5848
|
includeNotch: false
|
|
5721
5849
|
}
|
|
5722
5850
|
),
|
|
5723
|
-
/* @__PURE__ */
|
|
5851
|
+
/* @__PURE__ */ jsx75(
|
|
5724
5852
|
Cylinder14,
|
|
5725
5853
|
{
|
|
5726
5854
|
radius: lensRadius,
|
|
@@ -5728,7 +5856,7 @@ var Led5050 = ({
|
|
|
5728
5856
|
center: [0, 0, bodyTop - lensHeight / 2]
|
|
5729
5857
|
}
|
|
5730
5858
|
),
|
|
5731
|
-
/* @__PURE__ */
|
|
5859
|
+
/* @__PURE__ */ jsx75(
|
|
5732
5860
|
Translate33,
|
|
5733
5861
|
{
|
|
5734
5862
|
offset: [
|
|
@@ -5736,11 +5864,11 @@ var Led5050 = ({
|
|
|
5736
5864
|
bodySize / 2,
|
|
5737
5865
|
bodyTop - cornerCutDepth / 2 + 5e-3
|
|
5738
5866
|
],
|
|
5739
|
-
children: /* @__PURE__ */
|
|
5867
|
+
children: /* @__PURE__ */ jsx75(Rotate14, { rotation: [0, 0, Math.PI / 4], children: /* @__PURE__ */ jsx75(Cuboid49, { size: [0.9, 0.9, cornerCutDepth + 0.01] }) })
|
|
5740
5868
|
}
|
|
5741
5869
|
)
|
|
5742
5870
|
] }) }),
|
|
5743
|
-
/* @__PURE__ */
|
|
5871
|
+
/* @__PURE__ */ jsx75(
|
|
5744
5872
|
Cylinder14,
|
|
5745
5873
|
{
|
|
5746
5874
|
color,
|
|
@@ -5752,17 +5880,70 @@ var Led5050 = ({
|
|
|
5752
5880
|
] });
|
|
5753
5881
|
};
|
|
5754
5882
|
|
|
5883
|
+
// lib/Led2835.tsx
|
|
5884
|
+
import { Colorize as Colorize41, Cuboid as Cuboid50 } from "jscad-fiber";
|
|
5885
|
+
import { Fragment as Fragment71, jsx as jsx76, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
5886
|
+
var Led2835 = ({
|
|
5887
|
+
bodyWidth = 3.5,
|
|
5888
|
+
bodyLength: bodyLength10 = 2.8,
|
|
5889
|
+
bodyHeight = 0.8,
|
|
5890
|
+
color = "#ffe08a",
|
|
5891
|
+
bodyColor = "#f2f2f2",
|
|
5892
|
+
padColor = "#cccccc",
|
|
5893
|
+
pad1X = -0.9,
|
|
5894
|
+
pad1Width = 2.2,
|
|
5895
|
+
pad2X = 1.375,
|
|
5896
|
+
pad2Width = 1.25,
|
|
5897
|
+
padLength = 2.2
|
|
5898
|
+
} = {}) => {
|
|
5899
|
+
const padThickness = 0.1;
|
|
5900
|
+
const lensHeight = 0.15;
|
|
5901
|
+
const bodyCenterX = (pad1X + pad2X) / 2;
|
|
5902
|
+
const lensWidth = bodyWidth * 0.55;
|
|
5903
|
+
const lensLength = bodyLength10 * 0.55;
|
|
5904
|
+
return /* @__PURE__ */ jsxs72(Fragment71, { children: [
|
|
5905
|
+
[
|
|
5906
|
+
{ x: pad1X, w: pad1Width, key: "pad-1" },
|
|
5907
|
+
{ x: pad2X, w: pad2Width, key: "pad-2" }
|
|
5908
|
+
].map(({ x, w, key }) => /* @__PURE__ */ jsx76(Colorize41, { color: padColor, children: /* @__PURE__ */ jsx76(
|
|
5909
|
+
Cuboid50,
|
|
5910
|
+
{
|
|
5911
|
+
size: [w, padLength, padThickness],
|
|
5912
|
+
center: [x, 0, padThickness / 2]
|
|
5913
|
+
}
|
|
5914
|
+
) }, key)),
|
|
5915
|
+
/* @__PURE__ */ jsx76(Colorize41, { color: bodyColor, children: /* @__PURE__ */ jsx76(
|
|
5916
|
+
Cuboid50,
|
|
5917
|
+
{
|
|
5918
|
+
size: [bodyWidth, bodyLength10, bodyHeight],
|
|
5919
|
+
center: [bodyCenterX, 0, padThickness + bodyHeight / 2]
|
|
5920
|
+
}
|
|
5921
|
+
) }),
|
|
5922
|
+
/* @__PURE__ */ jsx76(Colorize41, { color, children: /* @__PURE__ */ jsx76(
|
|
5923
|
+
Cuboid50,
|
|
5924
|
+
{
|
|
5925
|
+
size: [lensWidth, lensLength, lensHeight],
|
|
5926
|
+
center: [
|
|
5927
|
+
bodyCenterX,
|
|
5928
|
+
0,
|
|
5929
|
+
padThickness + bodyHeight + lensHeight / 2 - 0.05
|
|
5930
|
+
]
|
|
5931
|
+
}
|
|
5932
|
+
) })
|
|
5933
|
+
] });
|
|
5934
|
+
};
|
|
5935
|
+
|
|
5755
5936
|
// lib/RJ45.tsx
|
|
5756
5937
|
import {
|
|
5757
|
-
Colorize as
|
|
5758
|
-
Cuboid as
|
|
5938
|
+
Colorize as Colorize42,
|
|
5939
|
+
Cuboid as Cuboid51,
|
|
5759
5940
|
Cylinder as Cylinder15,
|
|
5760
5941
|
Rotate as Rotate15,
|
|
5761
5942
|
RoundedCuboid as RoundedCuboid4,
|
|
5762
5943
|
Subtract as Subtract12,
|
|
5763
5944
|
Translate as Translate34
|
|
5764
5945
|
} from "jscad-fiber";
|
|
5765
|
-
import { Fragment as
|
|
5946
|
+
import { Fragment as Fragment72, jsx as jsx77, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
5766
5947
|
var range2 = (length) => Array.from({ length }, (_, index) => index);
|
|
5767
5948
|
var RJ45 = ({
|
|
5768
5949
|
bodyWidth = 16.26,
|
|
@@ -5820,18 +6001,18 @@ var RJ45 = ({
|
|
|
5820
6001
|
const contactY = frontY - frontDirection * Math.max(cavityDepth * 0.48, 1.2);
|
|
5821
6002
|
const contactZ = openingCenterZ + openingHeight * 0.18;
|
|
5822
6003
|
const frontLipY = frontY + frontDirection * shellThickness * 0.2;
|
|
5823
|
-
return /* @__PURE__ */
|
|
5824
|
-
/* @__PURE__ */
|
|
5825
|
-
/* @__PURE__ */
|
|
5826
|
-
/* @__PURE__ */
|
|
5827
|
-
|
|
6004
|
+
return /* @__PURE__ */ jsxs73(Fragment72, { children: [
|
|
6005
|
+
/* @__PURE__ */ jsxs73(Colorize42, { color: shellColor, children: [
|
|
6006
|
+
/* @__PURE__ */ jsxs73(Subtract12, { children: [
|
|
6007
|
+
/* @__PURE__ */ jsx77(
|
|
6008
|
+
Cuboid51,
|
|
5828
6009
|
{
|
|
5829
6010
|
center: [0, bodyCenterY, bodyHeight / 2],
|
|
5830
6011
|
size: [bodyWidth, bodyDepth, bodyHeight]
|
|
5831
6012
|
}
|
|
5832
6013
|
),
|
|
5833
|
-
/* @__PURE__ */
|
|
5834
|
-
|
|
6014
|
+
/* @__PURE__ */ jsx77(
|
|
6015
|
+
Cuboid51,
|
|
5835
6016
|
{
|
|
5836
6017
|
center: [0, cavityCenterY, openingCenterZ],
|
|
5837
6018
|
size: [
|
|
@@ -5842,15 +6023,15 @@ var RJ45 = ({
|
|
|
5842
6023
|
}
|
|
5843
6024
|
)
|
|
5844
6025
|
] }),
|
|
5845
|
-
/* @__PURE__ */
|
|
5846
|
-
|
|
6026
|
+
/* @__PURE__ */ jsx77(
|
|
6027
|
+
Cuboid51,
|
|
5847
6028
|
{
|
|
5848
6029
|
center: [0, frontLipY, 0.72],
|
|
5849
6030
|
size: [openingWidth + 0.5, shellThickness * 1.25, 1.05]
|
|
5850
6031
|
}
|
|
5851
6032
|
),
|
|
5852
|
-
[-1, 1].map((direction) => /* @__PURE__ */
|
|
5853
|
-
|
|
6033
|
+
[-1, 1].map((direction) => /* @__PURE__ */ jsx77(
|
|
6034
|
+
Cuboid51,
|
|
5854
6035
|
{
|
|
5855
6036
|
center: [direction * shieldPinX, shieldPinY, 0.25],
|
|
5856
6037
|
size: [
|
|
@@ -5861,8 +6042,8 @@ var RJ45 = ({
|
|
|
5861
6042
|
},
|
|
5862
6043
|
`shield-tab:${direction}`
|
|
5863
6044
|
)),
|
|
5864
|
-
[-1, 1].map((direction) => /* @__PURE__ */
|
|
5865
|
-
|
|
6045
|
+
[-1, 1].map((direction) => /* @__PURE__ */ jsx77(
|
|
6046
|
+
Cuboid51,
|
|
5866
6047
|
{
|
|
5867
6048
|
center: [
|
|
5868
6049
|
direction * bodyWidth * 0.24,
|
|
@@ -5874,9 +6055,9 @@ var RJ45 = ({
|
|
|
5874
6055
|
`top-seam:${direction}`
|
|
5875
6056
|
))
|
|
5876
6057
|
] }),
|
|
5877
|
-
/* @__PURE__ */
|
|
5878
|
-
/* @__PURE__ */
|
|
5879
|
-
/* @__PURE__ */
|
|
6058
|
+
/* @__PURE__ */ jsxs73(Colorize42, { color: housingColor, children: [
|
|
6059
|
+
/* @__PURE__ */ jsxs73(Subtract12, { children: [
|
|
6060
|
+
/* @__PURE__ */ jsx77(
|
|
5880
6061
|
RoundedCuboid4,
|
|
5881
6062
|
{
|
|
5882
6063
|
center: [0, cavityCenterY, openingCenterZ],
|
|
@@ -5888,8 +6069,8 @@ var RJ45 = ({
|
|
|
5888
6069
|
roundRadius: 0.22
|
|
5889
6070
|
}
|
|
5890
6071
|
),
|
|
5891
|
-
/* @__PURE__ */
|
|
5892
|
-
|
|
6072
|
+
/* @__PURE__ */ jsx77(
|
|
6073
|
+
Cuboid51,
|
|
5893
6074
|
{
|
|
5894
6075
|
center: [
|
|
5895
6076
|
0,
|
|
@@ -5904,14 +6085,14 @@ var RJ45 = ({
|
|
|
5904
6085
|
}
|
|
5905
6086
|
)
|
|
5906
6087
|
] }),
|
|
5907
|
-
/* @__PURE__ */
|
|
5908
|
-
|
|
6088
|
+
/* @__PURE__ */ jsx77(
|
|
6089
|
+
Cuboid51,
|
|
5909
6090
|
{
|
|
5910
6091
|
center: [0, backWallY, openingCenterZ],
|
|
5911
6092
|
size: [openingWidth - 1.15, shellThickness, openingHeight - 1.25]
|
|
5912
6093
|
}
|
|
5913
6094
|
),
|
|
5914
|
-
/* @__PURE__ */
|
|
6095
|
+
/* @__PURE__ */ jsx77(
|
|
5915
6096
|
RoundedCuboid4,
|
|
5916
6097
|
{
|
|
5917
6098
|
center: [0, frontY - frontDirection * cavityDepth * 0.28, 1.55],
|
|
@@ -5919,7 +6100,7 @@ var RJ45 = ({
|
|
|
5919
6100
|
roundRadius: 0.16
|
|
5920
6101
|
}
|
|
5921
6102
|
),
|
|
5922
|
-
[-1, 1].map((direction) => /* @__PURE__ */
|
|
6103
|
+
[-1, 1].map((direction) => /* @__PURE__ */ jsx77(
|
|
5923
6104
|
Cylinder15,
|
|
5924
6105
|
{
|
|
5925
6106
|
center: [direction * locatorHoleX, locatorHoleY, -0.25],
|
|
@@ -5929,8 +6110,8 @@ var RJ45 = ({
|
|
|
5929
6110
|
`locator:${direction}`
|
|
5930
6111
|
))
|
|
5931
6112
|
] }),
|
|
5932
|
-
/* @__PURE__ */
|
|
5933
|
-
signalPinPositions.map(({ x, y }, index) => /* @__PURE__ */
|
|
6113
|
+
/* @__PURE__ */ jsxs73(Colorize42, { color: contactColor, children: [
|
|
6114
|
+
signalPinPositions.map(({ x, y }, index) => /* @__PURE__ */ jsx77(
|
|
5934
6115
|
Cylinder15,
|
|
5935
6116
|
{
|
|
5936
6117
|
center: [x, y, 0.15],
|
|
@@ -5939,7 +6120,7 @@ var RJ45 = ({
|
|
|
5939
6120
|
},
|
|
5940
6121
|
`signal-lead:${index}`
|
|
5941
6122
|
)),
|
|
5942
|
-
range2(8).map((index) => /* @__PURE__ */
|
|
6123
|
+
range2(8).map((index) => /* @__PURE__ */ jsx77(
|
|
5943
6124
|
Translate34,
|
|
5944
6125
|
{
|
|
5945
6126
|
offset: [
|
|
@@ -5947,7 +6128,7 @@ var RJ45 = ({
|
|
|
5947
6128
|
contactY,
|
|
5948
6129
|
contactZ + (index % 2 === 0 ? 0.03 : -0.03)
|
|
5949
6130
|
],
|
|
5950
|
-
children: /* @__PURE__ */
|
|
6131
|
+
children: /* @__PURE__ */ jsx77(Rotate15, { rotation: [frontDirection * 0.2, 0, 0], children: /* @__PURE__ */ jsx77(
|
|
5951
6132
|
RoundedCuboid4,
|
|
5952
6133
|
{
|
|
5953
6134
|
size: [Math.max(contactPitch * 0.28, 0.28), 3.25, 0.16],
|
|
@@ -5957,7 +6138,7 @@ var RJ45 = ({
|
|
|
5957
6138
|
},
|
|
5958
6139
|
`socket-contact:${index}`
|
|
5959
6140
|
)),
|
|
5960
|
-
ledPins && ledPinPositions.map((x, index) => /* @__PURE__ */
|
|
6141
|
+
ledPins && ledPinPositions.map((x, index) => /* @__PURE__ */ jsx77(
|
|
5961
6142
|
Cylinder15,
|
|
5962
6143
|
{
|
|
5963
6144
|
center: [x, ledPinY, 0.15],
|
|
@@ -5967,8 +6148,8 @@ var RJ45 = ({
|
|
|
5967
6148
|
`led-lead:${index}`
|
|
5968
6149
|
))
|
|
5969
6150
|
] }),
|
|
5970
|
-
ledPins && /* @__PURE__ */
|
|
5971
|
-
/* @__PURE__ */
|
|
6151
|
+
ledPins && /* @__PURE__ */ jsxs73(Fragment72, { children: [
|
|
6152
|
+
/* @__PURE__ */ jsx77(
|
|
5972
6153
|
RoundedCuboid4,
|
|
5973
6154
|
{
|
|
5974
6155
|
color: "#73b744",
|
|
@@ -5981,7 +6162,7 @@ var RJ45 = ({
|
|
|
5981
6162
|
roundRadius: 0.18
|
|
5982
6163
|
}
|
|
5983
6164
|
),
|
|
5984
|
-
/* @__PURE__ */
|
|
6165
|
+
/* @__PURE__ */ jsx77(
|
|
5985
6166
|
RoundedCuboid4,
|
|
5986
6167
|
{
|
|
5987
6168
|
color: "#e0aa35",
|
|
@@ -5998,8 +6179,311 @@ var RJ45 = ({
|
|
|
5998
6179
|
] });
|
|
5999
6180
|
};
|
|
6000
6181
|
|
|
6182
|
+
// lib/DPAK.tsx
|
|
6183
|
+
import { Colorize as Colorize43, Cuboid as Cuboid52, Hull as Hull25 } from "jscad-fiber";
|
|
6184
|
+
import { Fragment as Fragment73, jsx as jsx78, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
6185
|
+
var DPAK = ({
|
|
6186
|
+
bodyWidth = 6.1,
|
|
6187
|
+
bodyLength: bodyLength10 = 6.5,
|
|
6188
|
+
bodyHeight = 2.3,
|
|
6189
|
+
tabWidth = 6.2,
|
|
6190
|
+
tabLength = 5.8,
|
|
6191
|
+
span = 6.85,
|
|
6192
|
+
pitch = 2.29,
|
|
6193
|
+
leadWidth = 0.9,
|
|
6194
|
+
leadContactLength = 1.5,
|
|
6195
|
+
color = "#222",
|
|
6196
|
+
tabColor = "#cccccc",
|
|
6197
|
+
leadColor = "#cccccc"
|
|
6198
|
+
}) => {
|
|
6199
|
+
const tabThickness = 0.5;
|
|
6200
|
+
const tabCenterX = span / 2;
|
|
6201
|
+
const leadPadX = -span / 2;
|
|
6202
|
+
const bodyCenterX = tabCenterX + (tabWidth - bodyWidth) / 2;
|
|
6203
|
+
const bodyFrontX = bodyCenterX - bodyWidth / 2;
|
|
6204
|
+
const leadZ = tabThickness / 2;
|
|
6205
|
+
const leadThickness = 0.4;
|
|
6206
|
+
return /* @__PURE__ */ jsxs74(Fragment73, { children: [
|
|
6207
|
+
/* @__PURE__ */ jsx78(Colorize43, { color: tabColor, children: /* @__PURE__ */ jsx78(
|
|
6208
|
+
Cuboid52,
|
|
6209
|
+
{
|
|
6210
|
+
size: [tabWidth, tabLength, tabThickness],
|
|
6211
|
+
center: [tabCenterX, 0, tabThickness / 2]
|
|
6212
|
+
}
|
|
6213
|
+
) }),
|
|
6214
|
+
/* @__PURE__ */ jsx78(Colorize43, { color, children: /* @__PURE__ */ jsx78(
|
|
6215
|
+
Cuboid52,
|
|
6216
|
+
{
|
|
6217
|
+
size: [bodyWidth, bodyLength10, bodyHeight],
|
|
6218
|
+
center: [bodyCenterX, 0, tabThickness + bodyHeight / 2]
|
|
6219
|
+
}
|
|
6220
|
+
) }),
|
|
6221
|
+
[-1, 1].map((side) => {
|
|
6222
|
+
return /* @__PURE__ */ jsxs74(Colorize43, { color: leadColor, children: [
|
|
6223
|
+
/* @__PURE__ */ jsx78(
|
|
6224
|
+
Cuboid52,
|
|
6225
|
+
{
|
|
6226
|
+
size: [leadContactLength, leadWidth, leadThickness],
|
|
6227
|
+
center: [
|
|
6228
|
+
leadPadX + leadContactLength / 2,
|
|
6229
|
+
side * pitch,
|
|
6230
|
+
leadThickness / 2
|
|
6231
|
+
]
|
|
6232
|
+
}
|
|
6233
|
+
),
|
|
6234
|
+
/* @__PURE__ */ jsxs74(Hull25, { children: [
|
|
6235
|
+
/* @__PURE__ */ jsx78(
|
|
6236
|
+
Cuboid52,
|
|
6237
|
+
{
|
|
6238
|
+
size: [0.1, leadWidth, leadThickness],
|
|
6239
|
+
center: [
|
|
6240
|
+
leadPadX + leadContactLength,
|
|
6241
|
+
side * pitch,
|
|
6242
|
+
leadThickness / 2
|
|
6243
|
+
]
|
|
6244
|
+
}
|
|
6245
|
+
),
|
|
6246
|
+
/* @__PURE__ */ jsx78(
|
|
6247
|
+
Cuboid52,
|
|
6248
|
+
{
|
|
6249
|
+
size: [0.1, leadWidth, leadThickness],
|
|
6250
|
+
center: [bodyFrontX, side * pitch, leadZ + tabThickness / 2]
|
|
6251
|
+
}
|
|
6252
|
+
)
|
|
6253
|
+
] })
|
|
6254
|
+
] }, `lead-${side}`);
|
|
6255
|
+
})
|
|
6256
|
+
] });
|
|
6257
|
+
};
|
|
6258
|
+
|
|
6259
|
+
// lib/ElectrolyticCapacitor.tsx
|
|
6260
|
+
import {
|
|
6261
|
+
Colorize as Colorize44,
|
|
6262
|
+
Cuboid as Cuboid53,
|
|
6263
|
+
Cylinder as Cylinder16,
|
|
6264
|
+
RoundedCylinder as RoundedCylinder5,
|
|
6265
|
+
Subtract as Subtract13
|
|
6266
|
+
} from "jscad-fiber";
|
|
6267
|
+
import { Fragment as Fragment74, jsx as jsx79, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
6268
|
+
var ElectrolyticCapacitor = ({
|
|
6269
|
+
diameter = 6.3,
|
|
6270
|
+
heightToDiameterRatio = 1.4,
|
|
6271
|
+
height: height10 = diameter * heightToDiameterRatio,
|
|
6272
|
+
leadPitch = 2.5,
|
|
6273
|
+
leadDiameter = 0.6,
|
|
6274
|
+
leadLength = 3,
|
|
6275
|
+
sleeveColor = "#1b2a6b",
|
|
6276
|
+
baseColor = "#1a1a1a"
|
|
6277
|
+
}) => {
|
|
6278
|
+
const radius = diameter / 2;
|
|
6279
|
+
const baseHeight = Math.min(1, diameter * 0.12);
|
|
6280
|
+
const canHeight = Math.max(height10 - baseHeight, 0.1);
|
|
6281
|
+
const canBottom = baseHeight;
|
|
6282
|
+
const canTop = canBottom + canHeight;
|
|
6283
|
+
const grooveWidth = Math.max(diameter * 0.06, 0.2);
|
|
6284
|
+
const grooveDepth = 0.3;
|
|
6285
|
+
return /* @__PURE__ */ jsxs75(Fragment74, { children: [
|
|
6286
|
+
/* @__PURE__ */ jsx79(Colorize44, { color: baseColor, children: /* @__PURE__ */ jsx79(
|
|
6287
|
+
Cylinder16,
|
|
6288
|
+
{
|
|
6289
|
+
radius: radius - 0.05,
|
|
6290
|
+
height: baseHeight,
|
|
6291
|
+
center: [0, 0, baseHeight / 2]
|
|
6292
|
+
}
|
|
6293
|
+
) }),
|
|
6294
|
+
/* @__PURE__ */ jsx79(Colorize44, { color: sleeveColor, children: /* @__PURE__ */ jsxs75(Subtract13, { children: [
|
|
6295
|
+
/* @__PURE__ */ jsx79(
|
|
6296
|
+
RoundedCylinder5,
|
|
6297
|
+
{
|
|
6298
|
+
radius,
|
|
6299
|
+
height: canHeight,
|
|
6300
|
+
roundRadius: Math.min(0.3, radius * 0.15),
|
|
6301
|
+
center: [0, 0, canBottom + canHeight / 2]
|
|
6302
|
+
}
|
|
6303
|
+
),
|
|
6304
|
+
/* @__PURE__ */ jsx79(
|
|
6305
|
+
Cuboid53,
|
|
6306
|
+
{
|
|
6307
|
+
size: [diameter, grooveWidth, grooveDepth * 2],
|
|
6308
|
+
center: [0, 0, canTop]
|
|
6309
|
+
}
|
|
6310
|
+
),
|
|
6311
|
+
/* @__PURE__ */ jsx79(
|
|
6312
|
+
Cuboid53,
|
|
6313
|
+
{
|
|
6314
|
+
size: [grooveWidth, diameter, grooveDepth * 2],
|
|
6315
|
+
center: [0, 0, canTop]
|
|
6316
|
+
}
|
|
6317
|
+
)
|
|
6318
|
+
] }) }),
|
|
6319
|
+
[-1, 1].map((side) => /* @__PURE__ */ jsx79(Colorize44, { color: "#c0c0c0", children: /* @__PURE__ */ jsx79(
|
|
6320
|
+
Cylinder16,
|
|
6321
|
+
{
|
|
6322
|
+
radius: leadDiameter / 2,
|
|
6323
|
+
height: leadLength + baseHeight,
|
|
6324
|
+
center: [side * leadPitch / 2, 0, (baseHeight - leadLength) / 2]
|
|
6325
|
+
}
|
|
6326
|
+
) }, `lead-${side}`))
|
|
6327
|
+
] });
|
|
6328
|
+
};
|
|
6329
|
+
|
|
6330
|
+
// lib/Potentiometer.tsx
|
|
6331
|
+
import { Colorize as Colorize45, Cuboid as Cuboid54, Cylinder as Cylinder17, Subtract as Subtract14 } from "jscad-fiber";
|
|
6332
|
+
import { Fragment as Fragment75, jsx as jsx80, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
6333
|
+
var Potentiometer = ({
|
|
6334
|
+
bodyWidth = 5.35,
|
|
6335
|
+
bodyLength: bodyLength10 = 14,
|
|
6336
|
+
bodyHeight = 4,
|
|
6337
|
+
bodyCenterX = bodyWidth / 2,
|
|
6338
|
+
adjusterDiameter = Math.min(bodyWidth, bodyLength10) * 0.55,
|
|
6339
|
+
shaftDiameter = 0,
|
|
6340
|
+
shaftHeight = 0,
|
|
6341
|
+
leads = [],
|
|
6342
|
+
leadDiameter = 0.6,
|
|
6343
|
+
leadLength = 3,
|
|
6344
|
+
bodyColor = "#1f4fa3",
|
|
6345
|
+
adjusterColor = "#d8d8d8"
|
|
6346
|
+
}) => {
|
|
6347
|
+
const adjusterHeight = 0.8;
|
|
6348
|
+
const adjusterZ = bodyHeight + adjusterHeight / 2;
|
|
6349
|
+
const slotWidth = Math.max(adjusterDiameter * 0.16, 0.3);
|
|
6350
|
+
return /* @__PURE__ */ jsxs76(Fragment75, { children: [
|
|
6351
|
+
/* @__PURE__ */ jsx80(Colorize45, { color: bodyColor, children: /* @__PURE__ */ jsx80(
|
|
6352
|
+
Cuboid54,
|
|
6353
|
+
{
|
|
6354
|
+
size: [bodyWidth, bodyLength10, bodyHeight],
|
|
6355
|
+
center: [bodyCenterX, 0, bodyHeight / 2]
|
|
6356
|
+
}
|
|
6357
|
+
) }),
|
|
6358
|
+
/* @__PURE__ */ jsx80(Colorize45, { color: adjusterColor, children: /* @__PURE__ */ jsxs76(Subtract14, { children: [
|
|
6359
|
+
/* @__PURE__ */ jsx80(
|
|
6360
|
+
Cylinder17,
|
|
6361
|
+
{
|
|
6362
|
+
radius: adjusterDiameter / 2,
|
|
6363
|
+
height: adjusterHeight,
|
|
6364
|
+
center: [bodyCenterX, 0, adjusterZ]
|
|
6365
|
+
}
|
|
6366
|
+
),
|
|
6367
|
+
/* @__PURE__ */ jsx80(
|
|
6368
|
+
Cuboid54,
|
|
6369
|
+
{
|
|
6370
|
+
size: [adjusterDiameter, slotWidth, adjusterHeight * 0.6],
|
|
6371
|
+
center: [bodyCenterX, 0, adjusterZ + adjusterHeight / 2]
|
|
6372
|
+
}
|
|
6373
|
+
)
|
|
6374
|
+
] }) }),
|
|
6375
|
+
shaftHeight > 0 && shaftDiameter > 0 ? /* @__PURE__ */ jsx80(Colorize45, { color: adjusterColor, children: /* @__PURE__ */ jsx80(
|
|
6376
|
+
Cylinder17,
|
|
6377
|
+
{
|
|
6378
|
+
radius: shaftDiameter / 2,
|
|
6379
|
+
height: shaftHeight,
|
|
6380
|
+
center: [bodyCenterX, 0, bodyHeight + shaftHeight / 2]
|
|
6381
|
+
}
|
|
6382
|
+
) }) : null,
|
|
6383
|
+
leads.map((lead) => /* @__PURE__ */ jsx80(Colorize45, { color: "#c0c0c0", children: /* @__PURE__ */ jsx80(
|
|
6384
|
+
Cylinder17,
|
|
6385
|
+
{
|
|
6386
|
+
radius: leadDiameter / 2,
|
|
6387
|
+
height: bodyHeight / 2 + leadLength,
|
|
6388
|
+
center: [lead.x, lead.y, (bodyHeight / 2 - leadLength) / 2]
|
|
6389
|
+
}
|
|
6390
|
+
) }, `lead-${lead.x}-${lead.y}`))
|
|
6391
|
+
] });
|
|
6392
|
+
};
|
|
6393
|
+
|
|
6394
|
+
// lib/SmdPushButton.tsx
|
|
6395
|
+
import { Colorize as Colorize46, Cuboid as Cuboid55, Cylinder as Cylinder18 } from "jscad-fiber";
|
|
6396
|
+
import { Fragment as Fragment76, jsx as jsx81, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
6397
|
+
var SmdPushButton = ({
|
|
6398
|
+
bodyWidth = 2.9,
|
|
6399
|
+
bodyLength: bodyLength10 = 3,
|
|
6400
|
+
bodyHeight = 1.4,
|
|
6401
|
+
actuatorDiameter = 1.5,
|
|
6402
|
+
actuatorHeight = 0.5,
|
|
6403
|
+
padSpanX = 4.2,
|
|
6404
|
+
padSpanY = 2.15,
|
|
6405
|
+
padWidth = 1.05,
|
|
6406
|
+
padLength = 0.7,
|
|
6407
|
+
bodyColor = "#2b2b2b",
|
|
6408
|
+
actuatorColor = "#d9d9d9",
|
|
6409
|
+
leadColor = "#cccccc"
|
|
6410
|
+
}) => {
|
|
6411
|
+
const leadThickness = 0.15;
|
|
6412
|
+
return /* @__PURE__ */ jsxs77(Fragment76, { children: [
|
|
6413
|
+
/* @__PURE__ */ jsx81(Colorize46, { color: bodyColor, children: /* @__PURE__ */ jsx81(
|
|
6414
|
+
Cuboid55,
|
|
6415
|
+
{
|
|
6416
|
+
size: [bodyWidth, bodyLength10, bodyHeight],
|
|
6417
|
+
center: [0, 0, bodyHeight / 2]
|
|
6418
|
+
}
|
|
6419
|
+
) }),
|
|
6420
|
+
/* @__PURE__ */ jsx81(Colorize46, { color: actuatorColor, children: /* @__PURE__ */ jsx81(
|
|
6421
|
+
Cylinder18,
|
|
6422
|
+
{
|
|
6423
|
+
radius: actuatorDiameter / 2,
|
|
6424
|
+
height: actuatorHeight,
|
|
6425
|
+
center: [0, 0, bodyHeight + actuatorHeight / 2]
|
|
6426
|
+
}
|
|
6427
|
+
) }),
|
|
6428
|
+
[-1, 1].flatMap(
|
|
6429
|
+
(sx) => [-1, 1].map((sy) => /* @__PURE__ */ jsx81(Colorize46, { color: leadColor, children: /* @__PURE__ */ jsx81(
|
|
6430
|
+
Cuboid55,
|
|
6431
|
+
{
|
|
6432
|
+
size: [padWidth, padLength, leadThickness],
|
|
6433
|
+
center: [
|
|
6434
|
+
sx * padSpanX / 2,
|
|
6435
|
+
sy * padSpanY / 2,
|
|
6436
|
+
leadThickness / 2
|
|
6437
|
+
]
|
|
6438
|
+
}
|
|
6439
|
+
) }, `lead-${sx}-${sy}`))
|
|
6440
|
+
)
|
|
6441
|
+
] });
|
|
6442
|
+
};
|
|
6443
|
+
|
|
6444
|
+
// lib/SOT-563.tsx
|
|
6445
|
+
import { Cuboid as Cuboid56, Translate as Translate36, Rotate as Rotate16, Colorize as Colorize47 } from "jscad-fiber";
|
|
6446
|
+
import { Fragment as Fragment77, jsx as jsx82, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
6447
|
+
var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
|
|
6448
|
+
const bodyWidth = 1.2;
|
|
6449
|
+
const bodyLength10 = 1.6;
|
|
6450
|
+
const bodyHeight = 0.55;
|
|
6451
|
+
const leadWidth = 0.3;
|
|
6452
|
+
const leadLength = 0.67;
|
|
6453
|
+
const leadHeight = 0.13;
|
|
6454
|
+
const leadSpacing = 0.5;
|
|
6455
|
+
const bodyZOffset = -0.4;
|
|
6456
|
+
return /* @__PURE__ */ jsxs78(Fragment77, { children: [
|
|
6457
|
+
/* @__PURE__ */ jsx82(Rotate16, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx82(Translate36, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx82(Colorize47, { color: "grey", children: /* @__PURE__ */ jsx82(Cuboid56, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
|
|
6458
|
+
[-1, 0, 1].flatMap((yOffset, index) => [
|
|
6459
|
+
// Left lead
|
|
6460
|
+
/* @__PURE__ */ jsx82(
|
|
6461
|
+
Translate36,
|
|
6462
|
+
{
|
|
6463
|
+
center: [
|
|
6464
|
+
-bodyWidth / 2 - 0.03,
|
|
6465
|
+
yOffset * leadSpacing,
|
|
6466
|
+
leadHeight / 2
|
|
6467
|
+
],
|
|
6468
|
+
children: /* @__PURE__ */ jsx82(Cuboid56, { size: [leadLength, leadWidth, leadHeight] })
|
|
6469
|
+
},
|
|
6470
|
+
`left-${index}`
|
|
6471
|
+
),
|
|
6472
|
+
// Right lead
|
|
6473
|
+
/* @__PURE__ */ jsx82(
|
|
6474
|
+
Translate36,
|
|
6475
|
+
{
|
|
6476
|
+
center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
|
|
6477
|
+
children: /* @__PURE__ */ jsx82(Cuboid56, { size: [leadLength, leadWidth, leadHeight] })
|
|
6478
|
+
},
|
|
6479
|
+
`right-${index}`
|
|
6480
|
+
)
|
|
6481
|
+
])
|
|
6482
|
+
] });
|
|
6483
|
+
};
|
|
6484
|
+
|
|
6001
6485
|
// lib/Footprinter3d.tsx
|
|
6002
|
-
import { jsx as
|
|
6486
|
+
import { Fragment as Fragment78, jsx as jsx83 } from "react/jsx-runtime";
|
|
6003
6487
|
var Footprinter3d = ({ footprint }) => {
|
|
6004
6488
|
let normalizedFootprint = footprint;
|
|
6005
6489
|
if (footprint.startsWith("jstzh1_5mm")) {
|
|
@@ -6007,12 +6491,17 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6007
6491
|
const numPins = pinMatch && pinMatch[1] ? pinMatch[1] : "7";
|
|
6008
6492
|
normalizedFootprint = `zh${numPins}`;
|
|
6009
6493
|
}
|
|
6010
|
-
const fpJson =
|
|
6494
|
+
const fpJson = fp5.string(normalizedFootprint).json();
|
|
6011
6495
|
const colorMatch = footprint.match(/_color\(([^)]+)\)/);
|
|
6012
6496
|
const color = colorMatch ? colorMatch[1] : void 0;
|
|
6497
|
+
const dim = (value, fallback) => {
|
|
6498
|
+
if (value === void 0 || value === null) return fallback;
|
|
6499
|
+
const parsed = mm(value);
|
|
6500
|
+
return Number.isFinite(parsed) ? parsed : fallback;
|
|
6501
|
+
};
|
|
6013
6502
|
switch (fpJson.fn) {
|
|
6014
6503
|
case "crystal":
|
|
6015
|
-
return /* @__PURE__ */
|
|
6504
|
+
return /* @__PURE__ */ jsx83(
|
|
6016
6505
|
Crystal,
|
|
6017
6506
|
{
|
|
6018
6507
|
horizontalPadPitch: fpJson.px,
|
|
@@ -6022,11 +6511,11 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6022
6511
|
}
|
|
6023
6512
|
);
|
|
6024
6513
|
case "dip":
|
|
6025
|
-
return /* @__PURE__ */
|
|
6514
|
+
return /* @__PURE__ */ jsx83(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
|
|
6026
6515
|
case "axial":
|
|
6027
|
-
return /* @__PURE__ */
|
|
6516
|
+
return /* @__PURE__ */ jsx83(AxialCapacitor, { pitch: fpJson.p });
|
|
6028
6517
|
case "tssop":
|
|
6029
|
-
return /* @__PURE__ */
|
|
6518
|
+
return /* @__PURE__ */ jsx83(
|
|
6030
6519
|
Tssop,
|
|
6031
6520
|
{
|
|
6032
6521
|
pinCount: fpJson.num_pins,
|
|
@@ -6037,7 +6526,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6037
6526
|
}
|
|
6038
6527
|
);
|
|
6039
6528
|
case "msop":
|
|
6040
|
-
return /* @__PURE__ */
|
|
6529
|
+
return /* @__PURE__ */ jsx83(
|
|
6041
6530
|
MSOP,
|
|
6042
6531
|
{
|
|
6043
6532
|
pinCount: fpJson.num_pins,
|
|
@@ -6048,7 +6537,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6048
6537
|
}
|
|
6049
6538
|
);
|
|
6050
6539
|
case "vssop":
|
|
6051
|
-
return /* @__PURE__ */
|
|
6540
|
+
return /* @__PURE__ */ jsx83(
|
|
6052
6541
|
VSSOP,
|
|
6053
6542
|
{
|
|
6054
6543
|
pinCount: fpJson.num_pins,
|
|
@@ -6060,7 +6549,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6060
6549
|
}
|
|
6061
6550
|
);
|
|
6062
6551
|
case "qfp":
|
|
6063
|
-
return /* @__PURE__ */
|
|
6552
|
+
return /* @__PURE__ */ jsx83(
|
|
6064
6553
|
QFP,
|
|
6065
6554
|
{
|
|
6066
6555
|
pinCount: fpJson.num_pins,
|
|
@@ -6071,12 +6560,12 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6071
6560
|
}
|
|
6072
6561
|
);
|
|
6073
6562
|
case "tqfp":
|
|
6074
|
-
return /* @__PURE__ */
|
|
6563
|
+
return /* @__PURE__ */ jsx83(tqfp_default, {});
|
|
6075
6564
|
case "lqfp":
|
|
6076
|
-
return /* @__PURE__ */
|
|
6565
|
+
return /* @__PURE__ */ jsx83(LQFP, { pinCount: fpJson.num_pins });
|
|
6077
6566
|
case "qfn": {
|
|
6078
6567
|
const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
|
|
6079
|
-
return /* @__PURE__ */
|
|
6568
|
+
return /* @__PURE__ */ jsx83(
|
|
6080
6569
|
qfn_default,
|
|
6081
6570
|
{
|
|
6082
6571
|
num_pins: fpJson.num_pins,
|
|
@@ -6094,7 +6583,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6094
6583
|
}
|
|
6095
6584
|
case "dfn": {
|
|
6096
6585
|
const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
|
|
6097
|
-
return /* @__PURE__ */
|
|
6586
|
+
return /* @__PURE__ */ jsx83(
|
|
6098
6587
|
DFN,
|
|
6099
6588
|
{
|
|
6100
6589
|
num_pins: fpJson.num_pins,
|
|
@@ -6114,7 +6603,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6114
6603
|
const rowsMatch = footprint.match(/_rows(\d+)/);
|
|
6115
6604
|
const rows = rowsMatch && rowsMatch[1] ? parseInt(rowsMatch[1], 10) : 1;
|
|
6116
6605
|
if (fpJson.male)
|
|
6117
|
-
return /* @__PURE__ */
|
|
6606
|
+
return /* @__PURE__ */ jsx83(
|
|
6118
6607
|
PinRow,
|
|
6119
6608
|
{
|
|
6120
6609
|
numberOfPins: fpJson.num_pins,
|
|
@@ -6127,7 +6616,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6127
6616
|
}
|
|
6128
6617
|
);
|
|
6129
6618
|
if (fpJson.female)
|
|
6130
|
-
return /* @__PURE__ */
|
|
6619
|
+
return /* @__PURE__ */ jsx83(
|
|
6131
6620
|
FemaleHeaderRow,
|
|
6132
6621
|
{
|
|
6133
6622
|
numberOfPins: fpJson.num_pins,
|
|
@@ -6137,7 +6626,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6137
6626
|
);
|
|
6138
6627
|
}
|
|
6139
6628
|
case "smdpinheader":
|
|
6140
|
-
return /* @__PURE__ */
|
|
6629
|
+
return /* @__PURE__ */ jsx83(
|
|
6141
6630
|
SmdPinHeader,
|
|
6142
6631
|
{
|
|
6143
6632
|
numberOfPins: fpJson.num_pins,
|
|
@@ -6146,58 +6635,91 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6146
6635
|
}
|
|
6147
6636
|
);
|
|
6148
6637
|
case "led5050":
|
|
6149
|
-
return /* @__PURE__ */
|
|
6638
|
+
return /* @__PURE__ */ jsx83(Led5050, { color });
|
|
6150
6639
|
case "cap": {
|
|
6151
6640
|
switch (fpJson.imperial) {
|
|
6152
6641
|
case "0402":
|
|
6153
|
-
return /* @__PURE__ */
|
|
6642
|
+
return /* @__PURE__ */ jsx83(A0402, { color: "#856c4d" });
|
|
6154
6643
|
case "0603":
|
|
6155
|
-
return /* @__PURE__ */
|
|
6644
|
+
return /* @__PURE__ */ jsx83(A0603, { color: "#856c4d" });
|
|
6156
6645
|
case "0805":
|
|
6157
|
-
return /* @__PURE__ */
|
|
6646
|
+
return /* @__PURE__ */ jsx83(A0805, { color: "#856c4d" });
|
|
6158
6647
|
case "0201":
|
|
6159
|
-
return /* @__PURE__ */
|
|
6648
|
+
return /* @__PURE__ */ jsx83(A0201, { color: "#856c4d" });
|
|
6160
6649
|
case "01005":
|
|
6161
|
-
return /* @__PURE__ */
|
|
6650
|
+
return /* @__PURE__ */ jsx83(A01005, { color: "#856c4d" });
|
|
6162
6651
|
case "1206":
|
|
6163
|
-
return /* @__PURE__ */
|
|
6652
|
+
return /* @__PURE__ */ jsx83(A1206, { color: "#856c4d" });
|
|
6164
6653
|
case "1210":
|
|
6165
|
-
return /* @__PURE__ */
|
|
6654
|
+
return /* @__PURE__ */ jsx83(A1210, { color: "#856c4d" });
|
|
6166
6655
|
case "2010":
|
|
6167
|
-
return /* @__PURE__ */
|
|
6656
|
+
return /* @__PURE__ */ jsx83(A2010, { color: "#856c4d" });
|
|
6168
6657
|
case "2512":
|
|
6169
|
-
return /* @__PURE__ */
|
|
6658
|
+
return /* @__PURE__ */ jsx83(A2512, { color: "#856c4d" });
|
|
6170
6659
|
}
|
|
6171
6660
|
break;
|
|
6172
6661
|
}
|
|
6173
6662
|
case "sot23":
|
|
6174
6663
|
switch (fpJson.num_pins) {
|
|
6175
6664
|
case 3:
|
|
6176
|
-
return /* @__PURE__ */
|
|
6665
|
+
return /* @__PURE__ */ jsx83(SOT233P, { color });
|
|
6177
6666
|
case 5:
|
|
6178
|
-
return /* @__PURE__ */
|
|
6667
|
+
return /* @__PURE__ */ jsx83(SOT_235_default, {});
|
|
6179
6668
|
}
|
|
6180
6669
|
break;
|
|
6670
|
+
case "sot25":
|
|
6671
|
+
return /* @__PURE__ */ jsx83(SOT_235_default, {});
|
|
6672
|
+
case "sot":
|
|
6673
|
+
case "sot343": {
|
|
6674
|
+
const isSc70 = fpJson.fn === "sot343";
|
|
6675
|
+
return /* @__PURE__ */ jsx83(
|
|
6676
|
+
GullWingBody,
|
|
6677
|
+
{
|
|
6678
|
+
pads: getSmtPadRects(normalizedFootprint),
|
|
6679
|
+
bodyWidth: isSc70 ? 1.25 : 1.6,
|
|
6680
|
+
bodyLength: isSc70 ? 2 : 2.9,
|
|
6681
|
+
bodyHeight: isSc70 ? 1.1 : 1.3
|
|
6682
|
+
}
|
|
6683
|
+
);
|
|
6684
|
+
}
|
|
6685
|
+
case "sot563":
|
|
6686
|
+
return /* @__PURE__ */ jsx83(SOT563, {});
|
|
6687
|
+
case "sot89": {
|
|
6688
|
+
const padSpan = dim(fpJson.w, 4.2);
|
|
6689
|
+
return /* @__PURE__ */ jsx83(
|
|
6690
|
+
SOT223,
|
|
6691
|
+
{
|
|
6692
|
+
fullWidth: padSpan,
|
|
6693
|
+
bodyWidth: padSpan * 0.6,
|
|
6694
|
+
bodyLength: dim(fpJson.h, 4.8) * 0.94,
|
|
6695
|
+
bodyHeight: 1.5,
|
|
6696
|
+
leadWidth: dim(fpJson.pw, 0.48),
|
|
6697
|
+
tabLeadWidth: dim(fpJson.pw, 0.48) * 2,
|
|
6698
|
+
padPitch: dim(fpJson.p, 1.5),
|
|
6699
|
+
leadHeight: 0.66
|
|
6700
|
+
}
|
|
6701
|
+
);
|
|
6702
|
+
}
|
|
6181
6703
|
case "sot457":
|
|
6182
|
-
return /* @__PURE__ */
|
|
6704
|
+
return /* @__PURE__ */ jsx83(SOT457, {});
|
|
6183
6705
|
case "sot223":
|
|
6184
|
-
return /* @__PURE__ */
|
|
6706
|
+
return /* @__PURE__ */ jsx83(SOT223, {});
|
|
6185
6707
|
case "sot23w":
|
|
6186
|
-
return /* @__PURE__ */
|
|
6708
|
+
return /* @__PURE__ */ jsx83(SOT23W, {});
|
|
6187
6709
|
case "sot323":
|
|
6188
|
-
return /* @__PURE__ */
|
|
6710
|
+
return /* @__PURE__ */ jsx83(SOT323, {});
|
|
6189
6711
|
case "sod323f":
|
|
6190
|
-
return /* @__PURE__ */
|
|
6712
|
+
return /* @__PURE__ */ jsx83(SOD323F, {});
|
|
6191
6713
|
case "sod323fl":
|
|
6192
|
-
return /* @__PURE__ */
|
|
6714
|
+
return /* @__PURE__ */ jsx83(SOD323FL, {});
|
|
6193
6715
|
case "sot363":
|
|
6194
|
-
return /* @__PURE__ */
|
|
6716
|
+
return /* @__PURE__ */ jsx83(SOT_363_default, {});
|
|
6195
6717
|
case "sot886":
|
|
6196
|
-
return /* @__PURE__ */
|
|
6718
|
+
return /* @__PURE__ */ jsx83(SOT886, {});
|
|
6197
6719
|
case "sot963":
|
|
6198
|
-
return /* @__PURE__ */
|
|
6720
|
+
return /* @__PURE__ */ jsx83(SOT963, {});
|
|
6199
6721
|
case "pushbutton":
|
|
6200
|
-
return /* @__PURE__ */
|
|
6722
|
+
return /* @__PURE__ */ jsx83(
|
|
6201
6723
|
PushButton,
|
|
6202
6724
|
{
|
|
6203
6725
|
width: fpJson.w,
|
|
@@ -6207,11 +6729,11 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6207
6729
|
);
|
|
6208
6730
|
case "jst":
|
|
6209
6731
|
if (fpJson.zh) {
|
|
6210
|
-
return /* @__PURE__ */
|
|
6732
|
+
return /* @__PURE__ */ jsx83(JSTZH1_5mm, { numPins: fpJson.num_pins });
|
|
6211
6733
|
}
|
|
6212
6734
|
break;
|
|
6213
6735
|
case "fpc":
|
|
6214
|
-
return /* @__PURE__ */
|
|
6736
|
+
return /* @__PURE__ */ jsx83(
|
|
6215
6737
|
FPC,
|
|
6216
6738
|
{
|
|
6217
6739
|
pinCount: fpJson.num_pins,
|
|
@@ -6231,7 +6753,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6231
6753
|
}
|
|
6232
6754
|
);
|
|
6233
6755
|
case "rj45":
|
|
6234
|
-
return /* @__PURE__ */
|
|
6756
|
+
return /* @__PURE__ */ jsx83(
|
|
6235
6757
|
RJ45,
|
|
6236
6758
|
{
|
|
6237
6759
|
bodyWidth: fpJson.w,
|
|
@@ -6255,7 +6777,9 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6255
6777
|
}
|
|
6256
6778
|
);
|
|
6257
6779
|
case "soic":
|
|
6258
|
-
|
|
6780
|
+
case "sop8":
|
|
6781
|
+
case "ssop":
|
|
6782
|
+
return /* @__PURE__ */ jsx83(
|
|
6259
6783
|
SOIC,
|
|
6260
6784
|
{
|
|
6261
6785
|
pinCount: fpJson.num_pins,
|
|
@@ -6265,44 +6789,178 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6265
6789
|
bodyWidth: fpJson.w
|
|
6266
6790
|
}
|
|
6267
6791
|
);
|
|
6792
|
+
case "son":
|
|
6793
|
+
case "wson":
|
|
6794
|
+
case "vson": {
|
|
6795
|
+
const bodyWidth = fpJson.fn === "vson" ? dim(fpJson.grid?.x, 3) : dim(fpJson.w, 3);
|
|
6796
|
+
const bodyLength10 = fpJson.fn === "vson" ? dim(fpJson.grid?.y, 3) : dim(fpJson.h, 3);
|
|
6797
|
+
const thermalPadWidth = dim(fpJson.epw, 0);
|
|
6798
|
+
const thermalPadLength = dim(fpJson.eph, 0);
|
|
6799
|
+
const padLength = fpJson.pl !== void 0 ? dim(fpJson.pl, 0) : void 0;
|
|
6800
|
+
const padWidth = fpJson.pw !== void 0 ? dim(fpJson.pw, 0) : void 0;
|
|
6801
|
+
const signalPads = getSmtPadRects(normalizedFootprint).filter(
|
|
6802
|
+
(pad) => Number(pad.pin ?? 0) <= fpJson.num_pins
|
|
6803
|
+
);
|
|
6804
|
+
const distinct = (values) => new Set(values.map((value) => value.toFixed(3))).size;
|
|
6805
|
+
const rowsAlongY = signalPads.length > 2 && distinct(signalPads.map((pad) => pad.y)) === 2 && distinct(signalPads.map((pad) => pad.x)) > 2;
|
|
6806
|
+
const dfn = /* @__PURE__ */ jsx83(
|
|
6807
|
+
DFN,
|
|
6808
|
+
{
|
|
6809
|
+
num_pins: fpJson.num_pins,
|
|
6810
|
+
bodyWidth: rowsAlongY ? bodyLength10 : bodyWidth,
|
|
6811
|
+
bodyLength: rowsAlongY ? bodyWidth : bodyLength10,
|
|
6812
|
+
pitch: dim(fpJson.p, 0.5),
|
|
6813
|
+
padLength,
|
|
6814
|
+
padWidth,
|
|
6815
|
+
thermalPadSize: fpJson.ep && thermalPadWidth > 0 && thermalPadLength > 0 ? {
|
|
6816
|
+
width: rowsAlongY ? thermalPadLength : thermalPadWidth,
|
|
6817
|
+
length: rowsAlongY ? thermalPadWidth : thermalPadLength
|
|
6818
|
+
} : void 0
|
|
6819
|
+
}
|
|
6820
|
+
);
|
|
6821
|
+
return rowsAlongY ? /* @__PURE__ */ jsx83(Rotate17, { rotation: [0, 0, "90deg"], children: dfn }) : dfn;
|
|
6822
|
+
}
|
|
6823
|
+
case "mlp":
|
|
6824
|
+
case "lga":
|
|
6825
|
+
case "quad": {
|
|
6826
|
+
if (fpJson.legsoutside) {
|
|
6827
|
+
return /* @__PURE__ */ jsx83(
|
|
6828
|
+
QFP,
|
|
6829
|
+
{
|
|
6830
|
+
pinCount: fpJson.num_pins,
|
|
6831
|
+
pitch: dim(fpJson.p, 0.5),
|
|
6832
|
+
leadWidth: dim(fpJson.pw, 0.25),
|
|
6833
|
+
padContactLength: dim(fpJson.pl, 0.25),
|
|
6834
|
+
bodyWidth: dim(fpJson.w, 6)
|
|
6835
|
+
}
|
|
6836
|
+
);
|
|
6837
|
+
}
|
|
6838
|
+
return /* @__PURE__ */ jsx83(
|
|
6839
|
+
qfn_default,
|
|
6840
|
+
{
|
|
6841
|
+
num_pins: fpJson.num_pins,
|
|
6842
|
+
bodyWidth: dim(fpJson.w, 6),
|
|
6843
|
+
bodyLength: dim(fpJson.h, 6),
|
|
6844
|
+
pitch: dim(fpJson.p, 0.5),
|
|
6845
|
+
padLength: dim(fpJson.pl, 0.25),
|
|
6846
|
+
padWidth: dim(fpJson.pw, 0.25)
|
|
6847
|
+
}
|
|
6848
|
+
);
|
|
6849
|
+
}
|
|
6850
|
+
case "bga": {
|
|
6851
|
+
const pitch = dim(fpJson.p, 0.8);
|
|
6852
|
+
const columns = fpJson.grid?.x ?? 8;
|
|
6853
|
+
const rows = fpJson.grid?.y ?? 8;
|
|
6854
|
+
return /* @__PURE__ */ jsx83(
|
|
6855
|
+
BGA,
|
|
6856
|
+
{
|
|
6857
|
+
ballPitch: pitch,
|
|
6858
|
+
ballColumns: columns,
|
|
6859
|
+
ballRows: rows,
|
|
6860
|
+
ballDiameter: pitch * 0.625,
|
|
6861
|
+
packageWidth: columns * pitch,
|
|
6862
|
+
packageLength: rows * pitch
|
|
6863
|
+
}
|
|
6864
|
+
);
|
|
6865
|
+
}
|
|
6268
6866
|
case "sod523":
|
|
6269
|
-
return /* @__PURE__ */
|
|
6867
|
+
return /* @__PURE__ */ jsx83(SOD523, {});
|
|
6270
6868
|
case "sod723":
|
|
6271
|
-
return /* @__PURE__ */
|
|
6869
|
+
return /* @__PURE__ */ jsx83(SOD723_default, {});
|
|
6272
6870
|
case "sod882":
|
|
6273
|
-
return /* @__PURE__ */
|
|
6871
|
+
return /* @__PURE__ */ jsx83(SOD882, {});
|
|
6274
6872
|
case "sma":
|
|
6275
|
-
return /* @__PURE__ */
|
|
6873
|
+
return /* @__PURE__ */ jsx83(SMA, {});
|
|
6276
6874
|
case "smb":
|
|
6277
|
-
return /* @__PURE__ */
|
|
6875
|
+
return /* @__PURE__ */ jsx83(SMB, {});
|
|
6278
6876
|
case "smc":
|
|
6279
|
-
return /* @__PURE__ */
|
|
6877
|
+
return /* @__PURE__ */ jsx83(SMC, {});
|
|
6280
6878
|
case "smf":
|
|
6281
|
-
return /* @__PURE__ */
|
|
6879
|
+
return /* @__PURE__ */ jsx83(SMF, {});
|
|
6282
6880
|
case "sod123":
|
|
6283
|
-
return /* @__PURE__ */
|
|
6881
|
+
return /* @__PURE__ */ jsx83(SOD123, {});
|
|
6284
6882
|
case "sod123f":
|
|
6285
|
-
return /* @__PURE__ */
|
|
6883
|
+
return /* @__PURE__ */ jsx83(SOD123F, {});
|
|
6286
6884
|
case "sod123fl":
|
|
6287
|
-
return /* @__PURE__ */
|
|
6885
|
+
return /* @__PURE__ */ jsx83(SOD123FL, {});
|
|
6288
6886
|
case "sod123w":
|
|
6289
|
-
return /* @__PURE__ */
|
|
6887
|
+
return /* @__PURE__ */ jsx83(SOD123W, {});
|
|
6888
|
+
case "sod110":
|
|
6889
|
+
return /* @__PURE__ */ jsx83(SOD123W, { bodyWidth: 2.1, bodyLength: 1.4 });
|
|
6290
6890
|
case "sod128":
|
|
6291
|
-
return /* @__PURE__ */
|
|
6891
|
+
return /* @__PURE__ */ jsx83(SOD128, {});
|
|
6292
6892
|
case "sod323":
|
|
6293
|
-
return /* @__PURE__ */
|
|
6893
|
+
return /* @__PURE__ */ jsx83(SOD323, {});
|
|
6894
|
+
case "sod323w":
|
|
6895
|
+
return /* @__PURE__ */ jsx83(SOD323, {});
|
|
6896
|
+
case "sod80":
|
|
6897
|
+
return /* @__PURE__ */ jsx83(MINIMELF, {});
|
|
6898
|
+
case "sod882d":
|
|
6899
|
+
return /* @__PURE__ */ jsx83(SOD882, {});
|
|
6900
|
+
case "smbf":
|
|
6901
|
+
return /* @__PURE__ */ jsx83(SMB, {});
|
|
6902
|
+
case "led2835":
|
|
6903
|
+
return /* @__PURE__ */ jsx83(
|
|
6904
|
+
Led2835,
|
|
6905
|
+
{
|
|
6906
|
+
color,
|
|
6907
|
+
bodyWidth: dim(fpJson.w, 3.5),
|
|
6908
|
+
bodyLength: dim(fpJson.h, 2.8),
|
|
6909
|
+
pad1X: dim(fpJson.p1x, -0.9),
|
|
6910
|
+
pad1Width: dim(fpJson.p1w, 2.2),
|
|
6911
|
+
pad2X: dim(fpJson.p2x, 1.375),
|
|
6912
|
+
pad2Width: dim(fpJson.p2w, 1.25),
|
|
6913
|
+
padLength: dim(fpJson.ph, 2.2)
|
|
6914
|
+
}
|
|
6915
|
+
);
|
|
6916
|
+
case "electrolytic":
|
|
6917
|
+
case "radial": {
|
|
6918
|
+
const pitch = dim(fpJson.p, 2.5);
|
|
6919
|
+
const namedDiameter = footprint.match(/_d([\d.]+)/);
|
|
6920
|
+
const diameter = fpJson.d !== void 0 ? dim(fpJson.d, pitch * 2) : namedDiameter ? Number(namedDiameter[1]) : pitch * 2;
|
|
6921
|
+
return /* @__PURE__ */ jsx83(ElectrolyticCapacitor, { diameter, leadPitch: pitch });
|
|
6922
|
+
}
|
|
6923
|
+
case "potentiometer":
|
|
6924
|
+
return /* @__PURE__ */ jsx83(
|
|
6925
|
+
Potentiometer,
|
|
6926
|
+
{
|
|
6927
|
+
bodyWidth: dim(fpJson.w, 5.35),
|
|
6928
|
+
bodyLength: dim(fpJson.ca, 14),
|
|
6929
|
+
bodyHeight: dim(fpJson.h, 4),
|
|
6930
|
+
leads: getPlatedHoleCenters(normalizedFootprint)
|
|
6931
|
+
}
|
|
6932
|
+
);
|
|
6933
|
+
case "smdpushbutton":
|
|
6934
|
+
return /* @__PURE__ */ jsx83(
|
|
6935
|
+
SmdPushButton,
|
|
6936
|
+
{
|
|
6937
|
+
padSpanX: dim(fpJson.px, 4.2),
|
|
6938
|
+
padSpanY: dim(fpJson.py, 2.15),
|
|
6939
|
+
padWidth: dim(fpJson.pw, 1.05),
|
|
6940
|
+
padLength: dim(fpJson.ph, 0.7)
|
|
6941
|
+
}
|
|
6942
|
+
);
|
|
6943
|
+
case "breakoutheaders": {
|
|
6944
|
+
const pitch = dim(fpJson.p, 2.54);
|
|
6945
|
+
const halfWidth = dim(fpJson.w, 10) / 2;
|
|
6946
|
+
const sides = [
|
|
6947
|
+
{ x: -halfWidth, pins: fpJson.left ?? 0, key: "left" },
|
|
6948
|
+
{ x: halfWidth, pins: fpJson.right ?? 0, key: "right" }
|
|
6949
|
+
];
|
|
6950
|
+
return /* @__PURE__ */ jsx83(Fragment78, { children: sides.filter(({ pins }) => pins > 0).map(({ x, pins, key }) => /* @__PURE__ */ jsx83(Translate37, { center: [x, 0, 0], children: /* @__PURE__ */ jsx83(Rotate17, { rotation: [0, 0, "90deg"], children: /* @__PURE__ */ jsx83(PinRow, { numberOfPins: pins, pitch }) }) }, key)) });
|
|
6951
|
+
}
|
|
6294
6952
|
case "sod923":
|
|
6295
|
-
return /* @__PURE__ */
|
|
6953
|
+
return /* @__PURE__ */ jsx83(SOD923, {});
|
|
6296
6954
|
case "hc49":
|
|
6297
|
-
return /* @__PURE__ */
|
|
6955
|
+
return /* @__PURE__ */ jsx83(HC49, {});
|
|
6298
6956
|
case "micromelf":
|
|
6299
|
-
return /* @__PURE__ */
|
|
6957
|
+
return /* @__PURE__ */ jsx83(MicroMELF, {});
|
|
6300
6958
|
case "minimelf":
|
|
6301
|
-
return /* @__PURE__ */
|
|
6959
|
+
return /* @__PURE__ */ jsx83(MINIMELF, {});
|
|
6302
6960
|
case "melf":
|
|
6303
|
-
return /* @__PURE__ */
|
|
6961
|
+
return /* @__PURE__ */ jsx83(MELF, {});
|
|
6304
6962
|
case "ms012":
|
|
6305
|
-
return /* @__PURE__ */
|
|
6963
|
+
return /* @__PURE__ */ jsx83(
|
|
6306
6964
|
MS012,
|
|
6307
6965
|
{
|
|
6308
6966
|
pinCount: fpJson.num_pins,
|
|
@@ -6312,7 +6970,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6312
6970
|
}
|
|
6313
6971
|
);
|
|
6314
6972
|
case "ms013":
|
|
6315
|
-
return /* @__PURE__ */
|
|
6973
|
+
return /* @__PURE__ */ jsx83(
|
|
6316
6974
|
MS013,
|
|
6317
6975
|
{
|
|
6318
6976
|
pinCount: fpJson.num_pins,
|
|
@@ -6322,14 +6980,55 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6322
6980
|
}
|
|
6323
6981
|
);
|
|
6324
6982
|
case "sot723":
|
|
6325
|
-
return /* @__PURE__ */
|
|
6983
|
+
return /* @__PURE__ */ jsx83(SOT723, {});
|
|
6326
6984
|
case "to220":
|
|
6327
|
-
return /* @__PURE__ */
|
|
6985
|
+
return /* @__PURE__ */ jsx83(TO220, { leads: getPlatedHoleCenters(normalizedFootprint) });
|
|
6986
|
+
case "to220f":
|
|
6987
|
+
return /* @__PURE__ */ jsx83(TO220, { mouldedTab: true, leads: getPlatedHoleCenters(normalizedFootprint) });
|
|
6328
6988
|
case "to92":
|
|
6329
|
-
return /* @__PURE__ */
|
|
6989
|
+
return /* @__PURE__ */ jsx83(TO92, { leads: getPlatedHoleCenters(normalizedFootprint) });
|
|
6990
|
+
case "to92l":
|
|
6991
|
+
case "to92s": {
|
|
6992
|
+
const across = dim(fpJson.w, 4.8);
|
|
6993
|
+
const along = dim(fpJson.h, 4);
|
|
6994
|
+
const diameter = Math.max(across, along);
|
|
6995
|
+
return /* @__PURE__ */ jsx83(
|
|
6996
|
+
TO92,
|
|
6997
|
+
{
|
|
6998
|
+
bodyDiameter: diameter,
|
|
6999
|
+
flatCut: Math.max(diameter - Math.min(across, along), 0.4),
|
|
7000
|
+
leads: getPlatedHoleCenters(normalizedFootprint)
|
|
7001
|
+
}
|
|
7002
|
+
);
|
|
7003
|
+
}
|
|
7004
|
+
case "to252":
|
|
7005
|
+
case "dpak":
|
|
7006
|
+
case "to263":
|
|
7007
|
+
case "d2pak": {
|
|
7008
|
+
const isD2Pak = fpJson.fn === "to263" || fpJson.fn === "d2pak";
|
|
7009
|
+
const tabWidth = dim(fpJson.tabw, isD2Pak ? 8.38 : 6.2);
|
|
7010
|
+
const tabLength = Math.min(
|
|
7011
|
+
dim(fpJson.tabh, isD2Pak ? 10 : 5.8),
|
|
7012
|
+
isD2Pak ? 10 : 6.5
|
|
7013
|
+
);
|
|
7014
|
+
return /* @__PURE__ */ jsx83(
|
|
7015
|
+
DPAK,
|
|
7016
|
+
{
|
|
7017
|
+
bodyWidth: tabWidth,
|
|
7018
|
+
bodyLength: dim(fpJson.w, isD2Pak ? 10.1 : 6.6),
|
|
7019
|
+
bodyHeight: isD2Pak ? 4.4 : 2.3,
|
|
7020
|
+
tabWidth,
|
|
7021
|
+
tabLength,
|
|
7022
|
+
span: dim(fpJson.span, isD2Pak ? 10.21 : 6.85),
|
|
7023
|
+
pitch: dim(fpJson.p, isD2Pak ? 2.54 : 2.29),
|
|
7024
|
+
leadWidth: dim(fpJson.pw, 1.5),
|
|
7025
|
+
leadContactLength: dim(fpJson.pl, 3)
|
|
7026
|
+
}
|
|
7027
|
+
);
|
|
7028
|
+
}
|
|
6330
7029
|
case "stampboard":
|
|
6331
7030
|
case "stampreceiver":
|
|
6332
|
-
return /* @__PURE__ */
|
|
7031
|
+
return /* @__PURE__ */ jsx83(
|
|
6333
7032
|
StampBoard,
|
|
6334
7033
|
{
|
|
6335
7034
|
bodyWidth: fpJson.w,
|
|
@@ -6353,7 +7052,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6353
7052
|
const pinRow = fpJson.pinrow;
|
|
6354
7053
|
const pinRowHoleEdgeToEdgeDist = fpJson.pinRowHoleEdgeToEdgeDist;
|
|
6355
7054
|
const holes = Array.isArray(fpJson.holes) ? fpJson.holes : [];
|
|
6356
|
-
return /* @__PURE__ */
|
|
7055
|
+
return /* @__PURE__ */ jsx83(
|
|
6357
7056
|
MountedPcbModule,
|
|
6358
7057
|
{
|
|
6359
7058
|
numPins: pinRow,
|
|
@@ -6380,29 +7079,29 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6380
7079
|
}
|
|
6381
7080
|
switch (fpJson.imperial) {
|
|
6382
7081
|
case "0402":
|
|
6383
|
-
return /* @__PURE__ */
|
|
7082
|
+
return /* @__PURE__ */ jsx83(A0402, { color });
|
|
6384
7083
|
case "0603":
|
|
6385
|
-
return /* @__PURE__ */
|
|
7084
|
+
return /* @__PURE__ */ jsx83(A0603, { color });
|
|
6386
7085
|
case "0805":
|
|
6387
|
-
return /* @__PURE__ */
|
|
7086
|
+
return /* @__PURE__ */ jsx83(A0805, { color });
|
|
6388
7087
|
case "0201":
|
|
6389
|
-
return /* @__PURE__ */
|
|
7088
|
+
return /* @__PURE__ */ jsx83(A0201, { color });
|
|
6390
7089
|
case "01005":
|
|
6391
|
-
return /* @__PURE__ */
|
|
7090
|
+
return /* @__PURE__ */ jsx83(A01005, { color });
|
|
6392
7091
|
case "1206":
|
|
6393
|
-
return /* @__PURE__ */
|
|
7092
|
+
return /* @__PURE__ */ jsx83(A1206, { color });
|
|
6394
7093
|
case "1210":
|
|
6395
|
-
return /* @__PURE__ */
|
|
7094
|
+
return /* @__PURE__ */ jsx83(A1210, { color });
|
|
6396
7095
|
case "2010":
|
|
6397
|
-
return /* @__PURE__ */
|
|
7096
|
+
return /* @__PURE__ */ jsx83(A2010, { color });
|
|
6398
7097
|
case "2512":
|
|
6399
|
-
return /* @__PURE__ */
|
|
7098
|
+
return /* @__PURE__ */ jsx83(A2512, { color });
|
|
6400
7099
|
}
|
|
6401
7100
|
if ((fpJson.fn === "res" || fpJson.fn === "cap") && fpJson.p !== void 0 && fpJson.ph !== void 0) {
|
|
6402
7101
|
const padPitch = mm(fpJson.p);
|
|
6403
7102
|
const padHeight = mm(fpJson.ph);
|
|
6404
7103
|
if (Number.isFinite(padPitch) && Number.isFinite(padHeight)) {
|
|
6405
|
-
return /* @__PURE__ */
|
|
7104
|
+
return /* @__PURE__ */ jsx83(
|
|
6406
7105
|
ParametricChip,
|
|
6407
7106
|
{
|
|
6408
7107
|
padPitch,
|
|
@@ -6414,47 +7113,6 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
6414
7113
|
}
|
|
6415
7114
|
return null;
|
|
6416
7115
|
};
|
|
6417
|
-
|
|
6418
|
-
// lib/SOT-563.tsx
|
|
6419
|
-
import { Cuboid as Cuboid51, Translate as Translate35, Rotate as Rotate16, Colorize as Colorize42 } from "jscad-fiber";
|
|
6420
|
-
import { Fragment as Fragment70, jsx as jsx77, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
6421
|
-
var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
|
|
6422
|
-
const bodyWidth = 1.2;
|
|
6423
|
-
const bodyLength10 = 1.6;
|
|
6424
|
-
const bodyHeight = 0.55;
|
|
6425
|
-
const leadWidth = 0.3;
|
|
6426
|
-
const leadLength = 0.67;
|
|
6427
|
-
const leadHeight = 0.13;
|
|
6428
|
-
const leadSpacing = 0.5;
|
|
6429
|
-
const bodyZOffset = -0.4;
|
|
6430
|
-
return /* @__PURE__ */ jsxs72(Fragment70, { children: [
|
|
6431
|
-
/* @__PURE__ */ jsx77(Rotate16, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx77(Translate35, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx77(Colorize42, { color: "grey", children: /* @__PURE__ */ jsx77(Cuboid51, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
|
|
6432
|
-
[-1, 0, 1].flatMap((yOffset, index) => [
|
|
6433
|
-
// Left lead
|
|
6434
|
-
/* @__PURE__ */ jsx77(
|
|
6435
|
-
Translate35,
|
|
6436
|
-
{
|
|
6437
|
-
center: [
|
|
6438
|
-
-bodyWidth / 2 - 0.03,
|
|
6439
|
-
yOffset * leadSpacing,
|
|
6440
|
-
leadHeight / 2
|
|
6441
|
-
],
|
|
6442
|
-
children: /* @__PURE__ */ jsx77(Cuboid51, { size: [leadLength, leadWidth, leadHeight] })
|
|
6443
|
-
},
|
|
6444
|
-
`left-${index}`
|
|
6445
|
-
),
|
|
6446
|
-
// Right lead
|
|
6447
|
-
/* @__PURE__ */ jsx77(
|
|
6448
|
-
Translate35,
|
|
6449
|
-
{
|
|
6450
|
-
center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
|
|
6451
|
-
children: /* @__PURE__ */ jsx77(Cuboid51, { size: [leadLength, leadWidth, leadHeight] })
|
|
6452
|
-
},
|
|
6453
|
-
`right-${index}`
|
|
6454
|
-
)
|
|
6455
|
-
])
|
|
6456
|
-
] });
|
|
6457
|
-
};
|
|
6458
7116
|
export {
|
|
6459
7117
|
A01005,
|
|
6460
7118
|
A0201,
|
|
@@ -6470,7 +7128,9 @@ export {
|
|
|
6470
7128
|
ChipBody,
|
|
6471
7129
|
Crystal,
|
|
6472
7130
|
DFN,
|
|
7131
|
+
DPAK,
|
|
6473
7132
|
Display,
|
|
7133
|
+
ElectrolyticCapacitor,
|
|
6474
7134
|
ExtrudedPads,
|
|
6475
7135
|
FPC,
|
|
6476
7136
|
FemaleHeader,
|
|
@@ -6478,9 +7138,11 @@ export {
|
|
|
6478
7138
|
FootprintPad,
|
|
6479
7139
|
FootprintPlatedHole,
|
|
6480
7140
|
Footprinter3d,
|
|
7141
|
+
GullWingBody,
|
|
6481
7142
|
HC49,
|
|
6482
7143
|
JSTZH1_5mm,
|
|
6483
7144
|
LQFP,
|
|
7145
|
+
Led2835,
|
|
6484
7146
|
Led5050,
|
|
6485
7147
|
MELF,
|
|
6486
7148
|
MINIMELF,
|
|
@@ -6491,6 +7153,7 @@ export {
|
|
|
6491
7153
|
MountedPcbModule,
|
|
6492
7154
|
PinHeader,
|
|
6493
7155
|
PinRow,
|
|
7156
|
+
Potentiometer,
|
|
6494
7157
|
QFN,
|
|
6495
7158
|
QFP,
|
|
6496
7159
|
RJ45,
|
|
@@ -6523,6 +7186,7 @@ export {
|
|
|
6523
7186
|
Screen,
|
|
6524
7187
|
SmdChipLead,
|
|
6525
7188
|
SmdPinHeader,
|
|
7189
|
+
SmdPushButton,
|
|
6526
7190
|
StampBoard,
|
|
6527
7191
|
TO220,
|
|
6528
7192
|
TO92,
|