@tscircuit/3d-viewer 0.0.561 → 0.0.563
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.js +362 -32
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -25547,6 +25547,93 @@ var RoundedCylinder = /* @__PURE__ */ Symbol("RoundedCylinder");
|
|
|
25547
25547
|
var Fragment2 = Fragment;
|
|
25548
25548
|
var jsx2 = (type, props, _key) => h(type, props);
|
|
25549
25549
|
var jsxs = (type, props, _key) => h(type, props);
|
|
25550
|
+
var FootprintPlatedHole = ({
|
|
25551
|
+
hole,
|
|
25552
|
+
isPin1
|
|
25553
|
+
}) => {
|
|
25554
|
+
const color = isPin1 ? "#00ff00" : "#b87333";
|
|
25555
|
+
if (hole.shape === "circle") {
|
|
25556
|
+
return /* @__PURE__ */ jsx2(Colorize, { color, children: /* @__PURE__ */ jsx2(Translate, { offset: [hole.x, hole.y, -5e-3], children: /* @__PURE__ */ jsxs(Subtract, { children: [
|
|
25557
|
+
/* @__PURE__ */ jsx2(Cylinder, { radius: hole.outer_diameter / 2, height: 0.01 }),
|
|
25558
|
+
/* @__PURE__ */ jsx2(Cylinder, { radius: hole.hole_diameter / 2, height: 0.01 })
|
|
25559
|
+
] }) }) });
|
|
25560
|
+
}
|
|
25561
|
+
if (hole.shape === "circular_hole_with_rect_pad") {
|
|
25562
|
+
return /* @__PURE__ */ jsx2(Colorize, { color, children: /* @__PURE__ */ jsx2(Translate, { offset: [hole.x, hole.y, 0], children: /* @__PURE__ */ jsxs(Subtract, { children: [
|
|
25563
|
+
/* @__PURE__ */ jsx2(
|
|
25564
|
+
Cuboid,
|
|
25565
|
+
{
|
|
25566
|
+
size: [hole.rect_pad_width, hole.rect_pad_height, 0.01],
|
|
25567
|
+
center: [0, 0, 0]
|
|
25568
|
+
}
|
|
25569
|
+
),
|
|
25570
|
+
/* @__PURE__ */ jsx2(Cylinder, { radius: hole.hole_diameter / 2, height: 0.01 })
|
|
25571
|
+
] }) }) });
|
|
25572
|
+
}
|
|
25573
|
+
if (hole.shape === "pill") {
|
|
25574
|
+
const width10 = hole.outer_width;
|
|
25575
|
+
const height10 = hole.outer_height;
|
|
25576
|
+
const radius = Math.min(width10, height10) / 2;
|
|
25577
|
+
const isHorizontal = width10 > height10;
|
|
25578
|
+
const holeWidth = hole.hole_width ?? 0.8;
|
|
25579
|
+
const holeHeight = hole.hole_height ?? 0.8;
|
|
25580
|
+
return /* @__PURE__ */ jsx2(Colorize, { color, children: /* @__PURE__ */ jsx2(Translate, { offset: [hole.x, hole.y, 0], children: /* @__PURE__ */ jsxs(Subtract, { children: [
|
|
25581
|
+
/* @__PURE__ */ jsxs(Hull, { children: [
|
|
25582
|
+
/* @__PURE__ */ jsx2(
|
|
25583
|
+
Cylinder,
|
|
25584
|
+
{
|
|
25585
|
+
radius,
|
|
25586
|
+
height: 0.01,
|
|
25587
|
+
center: [
|
|
25588
|
+
isHorizontal ? -(width10 / 2 - radius) : 0,
|
|
25589
|
+
isHorizontal ? 0 : -(height10 / 2 - radius),
|
|
25590
|
+
0
|
|
25591
|
+
]
|
|
25592
|
+
}
|
|
25593
|
+
),
|
|
25594
|
+
/* @__PURE__ */ jsx2(
|
|
25595
|
+
Cylinder,
|
|
25596
|
+
{
|
|
25597
|
+
radius,
|
|
25598
|
+
height: 0.01,
|
|
25599
|
+
center: [
|
|
25600
|
+
isHorizontal ? width10 / 2 - radius : 0,
|
|
25601
|
+
isHorizontal ? 0 : height10 / 2 - radius,
|
|
25602
|
+
0
|
|
25603
|
+
]
|
|
25604
|
+
}
|
|
25605
|
+
)
|
|
25606
|
+
] }),
|
|
25607
|
+
holeWidth === holeHeight ? /* @__PURE__ */ jsx2(Cylinder, { radius: holeWidth / 2, height: 0.01 }) : /* @__PURE__ */ jsxs(Hull, { children: [
|
|
25608
|
+
/* @__PURE__ */ jsx2(
|
|
25609
|
+
Cylinder,
|
|
25610
|
+
{
|
|
25611
|
+
radius: Math.min(holeWidth, holeHeight) / 2,
|
|
25612
|
+
height: 0.01,
|
|
25613
|
+
center: [
|
|
25614
|
+
holeWidth > holeHeight ? -(holeWidth / 2 - holeHeight / 2) : 0,
|
|
25615
|
+
holeWidth > holeHeight ? 0 : -(holeHeight / 2 - holeWidth / 2),
|
|
25616
|
+
0
|
|
25617
|
+
]
|
|
25618
|
+
}
|
|
25619
|
+
),
|
|
25620
|
+
/* @__PURE__ */ jsx2(
|
|
25621
|
+
Cylinder,
|
|
25622
|
+
{
|
|
25623
|
+
radius: Math.min(holeWidth, holeHeight) / 2,
|
|
25624
|
+
height: 0.01,
|
|
25625
|
+
center: [
|
|
25626
|
+
holeWidth > holeHeight ? holeWidth / 2 - holeHeight / 2 : 0,
|
|
25627
|
+
holeWidth > holeHeight ? 0 : holeHeight / 2 - holeWidth / 2,
|
|
25628
|
+
0
|
|
25629
|
+
]
|
|
25630
|
+
}
|
|
25631
|
+
)
|
|
25632
|
+
] })
|
|
25633
|
+
] }) }) });
|
|
25634
|
+
}
|
|
25635
|
+
throw new Error("Shape not supported: " + hole.shape);
|
|
25636
|
+
};
|
|
25550
25637
|
var ChipBody = ({
|
|
25551
25638
|
center,
|
|
25552
25639
|
width: width10,
|
|
@@ -25803,50 +25890,72 @@ var Tssop = ({
|
|
|
25803
25890
|
bodyWidth
|
|
25804
25891
|
}) => {
|
|
25805
25892
|
const sidePinCount = Math.ceil(pinCount / 2);
|
|
25806
|
-
const
|
|
25893
|
+
const isSmallTssop = sidePinCount <= 4;
|
|
25807
25894
|
const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
|
|
25808
|
-
const
|
|
25895
|
+
const bodyLength10 = pitch * Math.max(sidePinCount - 1, 0) + (isSmallTssop ? 1.5 : 1.15);
|
|
25896
|
+
const bodyVisualWidth = bodyWidth - (isSmallTssop ? 0.66 : 0.58);
|
|
25897
|
+
const leadThickness = 0.15;
|
|
25898
|
+
const leadHeight = 0.8;
|
|
25899
|
+
const bodyHeight = 1.22;
|
|
25900
|
+
const bodyStandoff = 0.24;
|
|
25901
|
+
const padContactLength = leadLength * 0.5;
|
|
25902
|
+
const leadReach = padContactLength + Math.max(0.22, Math.min(0.4, leadLength * 0.65));
|
|
25903
|
+
const leadStartOffset = bodyWidth / 2 + leadLength / 2;
|
|
25904
|
+
const curveLength = leadReach * 0.1;
|
|
25905
|
+
const notchInset = Math.min(Math.min(bodyVisualWidth, bodyLength10) * 0.18, 1);
|
|
25906
|
+
const notchRadius = Math.min(
|
|
25907
|
+
Math.min(bodyVisualWidth, bodyLength10) * 0.12,
|
|
25908
|
+
0.45
|
|
25909
|
+
);
|
|
25809
25910
|
return /* @__PURE__ */ jsxs(Fragment2, { children: [
|
|
25810
25911
|
Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx2(
|
|
25811
25912
|
SmdChipLead,
|
|
25812
25913
|
{
|
|
25813
25914
|
position: {
|
|
25814
|
-
x: -
|
|
25915
|
+
x: -leadStartOffset,
|
|
25815
25916
|
y: i * pitch - pinOffsetToCenter,
|
|
25816
25917
|
z: leadThickness / 2
|
|
25817
25918
|
},
|
|
25818
25919
|
width: leadWidth,
|
|
25819
25920
|
thickness: leadThickness,
|
|
25820
|
-
padContactLength
|
|
25821
|
-
bodyDistance:
|
|
25822
|
-
|
|
25921
|
+
padContactLength,
|
|
25922
|
+
bodyDistance: leadReach,
|
|
25923
|
+
curveLength,
|
|
25924
|
+
height: leadHeight
|
|
25823
25925
|
},
|
|
25824
|
-
i
|
|
25926
|
+
`left-${i}`
|
|
25825
25927
|
)),
|
|
25826
25928
|
Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx2(
|
|
25827
25929
|
SmdChipLead,
|
|
25828
25930
|
{
|
|
25829
25931
|
rotation: Math.PI,
|
|
25830
25932
|
position: {
|
|
25831
|
-
x:
|
|
25933
|
+
x: leadStartOffset,
|
|
25832
25934
|
y: i * pitch - pinOffsetToCenter,
|
|
25833
25935
|
z: leadThickness / 2
|
|
25834
25936
|
},
|
|
25835
25937
|
width: leadWidth,
|
|
25836
25938
|
thickness: leadThickness,
|
|
25837
|
-
padContactLength
|
|
25838
|
-
bodyDistance:
|
|
25839
|
-
|
|
25939
|
+
padContactLength,
|
|
25940
|
+
bodyDistance: leadReach,
|
|
25941
|
+
curveLength,
|
|
25942
|
+
height: leadHeight
|
|
25840
25943
|
},
|
|
25841
|
-
i
|
|
25944
|
+
`right-${i}`
|
|
25842
25945
|
)),
|
|
25843
25946
|
/* @__PURE__ */ jsx2(
|
|
25844
25947
|
ChipBody,
|
|
25845
25948
|
{
|
|
25846
|
-
center: { x: 0, y: 0, z:
|
|
25847
|
-
width:
|
|
25848
|
-
length:
|
|
25849
|
-
height:
|
|
25949
|
+
center: { x: 0, y: 0, z: 0 },
|
|
25950
|
+
width: bodyVisualWidth,
|
|
25951
|
+
length: bodyLength10,
|
|
25952
|
+
height: bodyHeight,
|
|
25953
|
+
notchPosition: {
|
|
25954
|
+
x: -(bodyVisualWidth / 2 - notchInset - 0.2),
|
|
25955
|
+
y: bodyLength10 / 2 - notchInset - 0.2,
|
|
25956
|
+
z: bodyHeight
|
|
25957
|
+
},
|
|
25958
|
+
notchRadius
|
|
25850
25959
|
}
|
|
25851
25960
|
)
|
|
25852
25961
|
] });
|
|
@@ -26020,26 +26129,31 @@ var QFP = ({
|
|
|
26020
26129
|
if (!padContactLength) padContactLength = getPadContactLength(pinCount);
|
|
26021
26130
|
if (!leadWidth) leadWidth = getLeadWidth(pinCount, bodyWidth);
|
|
26022
26131
|
if (!bodyWidth) bodyWidth = pitch * (sidePinCount + 4);
|
|
26132
|
+
const footprintPadLength = padContactLength;
|
|
26023
26133
|
const bodyLength10 = bodyWidth;
|
|
26024
26134
|
const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
|
|
26025
|
-
const
|
|
26135
|
+
const leadReach = footprintPadLength * 0.5;
|
|
26136
|
+
const fullLength10 = bodyLength10 + 2 * leadReach;
|
|
26026
26137
|
const fullWidth = fullLength10;
|
|
26027
26138
|
const leadHeight = 0.8;
|
|
26028
26139
|
const leadThickness = 0.15;
|
|
26029
|
-
const bodyDistance =
|
|
26140
|
+
const bodyDistance = leadReach;
|
|
26141
|
+
const fullPadContactLength = leadReach * 0.5;
|
|
26142
|
+
const curveLength = leadReach * 0.18;
|
|
26030
26143
|
return /* @__PURE__ */ jsxs(Fragment2, { children: [
|
|
26031
26144
|
Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx2(
|
|
26032
26145
|
SmdChipLead,
|
|
26033
26146
|
{
|
|
26034
26147
|
position: {
|
|
26035
|
-
x: -fullWidth / 2
|
|
26148
|
+
x: -fullWidth / 2,
|
|
26036
26149
|
y: i * pitch - pinOffsetToCenter,
|
|
26037
26150
|
z: leadThickness / 2
|
|
26038
26151
|
},
|
|
26039
26152
|
width: leadWidth,
|
|
26040
26153
|
thickness: leadThickness,
|
|
26041
|
-
padContactLength,
|
|
26154
|
+
padContactLength: fullPadContactLength,
|
|
26042
26155
|
bodyDistance,
|
|
26156
|
+
curveLength,
|
|
26043
26157
|
height: leadHeight
|
|
26044
26158
|
},
|
|
26045
26159
|
`left-${i}`
|
|
@@ -26049,14 +26163,15 @@ var QFP = ({
|
|
|
26049
26163
|
{
|
|
26050
26164
|
rotation: Math.PI,
|
|
26051
26165
|
position: {
|
|
26052
|
-
x: fullWidth / 2
|
|
26166
|
+
x: fullWidth / 2,
|
|
26053
26167
|
y: i * pitch - pinOffsetToCenter,
|
|
26054
26168
|
z: leadThickness / 2
|
|
26055
26169
|
},
|
|
26056
26170
|
width: leadWidth,
|
|
26057
26171
|
thickness: leadThickness,
|
|
26058
|
-
padContactLength,
|
|
26172
|
+
padContactLength: fullPadContactLength,
|
|
26059
26173
|
bodyDistance,
|
|
26174
|
+
curveLength,
|
|
26060
26175
|
height: leadHeight
|
|
26061
26176
|
},
|
|
26062
26177
|
`right-${i}`
|
|
@@ -26067,13 +26182,14 @@ var QFP = ({
|
|
|
26067
26182
|
rotation: Math.PI / 2,
|
|
26068
26183
|
position: {
|
|
26069
26184
|
x: i * pitch - pinOffsetToCenter,
|
|
26070
|
-
y: -fullLength10 / 2
|
|
26185
|
+
y: -fullLength10 / 2,
|
|
26071
26186
|
z: leadThickness / 2
|
|
26072
26187
|
},
|
|
26073
26188
|
width: leadWidth,
|
|
26074
26189
|
thickness: leadThickness,
|
|
26075
|
-
padContactLength,
|
|
26190
|
+
padContactLength: fullPadContactLength,
|
|
26076
26191
|
bodyDistance,
|
|
26192
|
+
curveLength,
|
|
26077
26193
|
height: leadHeight
|
|
26078
26194
|
},
|
|
26079
26195
|
`bottom-${i}`
|
|
@@ -26084,13 +26200,14 @@ var QFP = ({
|
|
|
26084
26200
|
rotation: -Math.PI / 2,
|
|
26085
26201
|
position: {
|
|
26086
26202
|
x: i * pitch - pinOffsetToCenter,
|
|
26087
|
-
y: fullLength10 / 2
|
|
26203
|
+
y: fullLength10 / 2,
|
|
26088
26204
|
z: leadThickness / 2
|
|
26089
26205
|
},
|
|
26090
26206
|
width: leadWidth,
|
|
26091
26207
|
thickness: leadThickness,
|
|
26092
|
-
padContactLength,
|
|
26208
|
+
padContactLength: fullPadContactLength,
|
|
26093
26209
|
bodyDistance,
|
|
26210
|
+
curveLength,
|
|
26094
26211
|
height: leadHeight
|
|
26095
26212
|
},
|
|
26096
26213
|
`top-${i}`
|
|
@@ -26261,7 +26378,7 @@ var PinRow = ({
|
|
|
26261
26378
|
const row = Math.floor(i / pinsPerRow);
|
|
26262
26379
|
const col = i % pinsPerRow;
|
|
26263
26380
|
const x = xoff + col * pitch;
|
|
26264
|
-
const y = -row * rowSpacing;
|
|
26381
|
+
const y = ((rows - 1) / 2 - row) * rowSpacing;
|
|
26265
26382
|
return /* @__PURE__ */ jsx2(
|
|
26266
26383
|
PinHeader,
|
|
26267
26384
|
{
|
|
@@ -26898,7 +27015,7 @@ var FemaleHeaderRow = ({
|
|
|
26898
27015
|
const row = Math.floor(i / pinsPerRow);
|
|
26899
27016
|
const col = i % pinsPerRow;
|
|
26900
27017
|
const x = xoff + col * pitch;
|
|
26901
|
-
const y = -row * rowSpacing;
|
|
27018
|
+
const y = ((rows - 1) / 2 - row) * rowSpacing;
|
|
26902
27019
|
return /* @__PURE__ */ jsx2(
|
|
26903
27020
|
FemaleHeader,
|
|
26904
27021
|
{
|
|
@@ -29474,7 +29591,7 @@ var StampBoard = ({
|
|
|
29474
29591
|
}
|
|
29475
29592
|
}
|
|
29476
29593
|
}
|
|
29477
|
-
const boardBody = /* @__PURE__ */ jsx2(Colorize, { color: "#
|
|
29594
|
+
const boardBody = /* @__PURE__ */ jsx2(Colorize, { color: "#051a0a", children: /* @__PURE__ */ jsxs(Subtract, { children: [
|
|
29478
29595
|
/* @__PURE__ */ jsx2(
|
|
29479
29596
|
Cuboid,
|
|
29480
29597
|
{
|
|
@@ -29770,8 +29887,214 @@ var MountedPcbModule = ({
|
|
|
29770
29887
|
)
|
|
29771
29888
|
] });
|
|
29772
29889
|
};
|
|
29890
|
+
var SOD723 = () => {
|
|
29891
|
+
const fullWidth = 1.4;
|
|
29892
|
+
const bodyLength10 = 0.6;
|
|
29893
|
+
const bodyHeight = 0.5;
|
|
29894
|
+
const padWidth = 0.28;
|
|
29895
|
+
const padLength = 0.5;
|
|
29896
|
+
const padThickness = 0.12;
|
|
29897
|
+
const bodyWidth = fullWidth - padLength;
|
|
29898
|
+
const leftPadCenterX = -bodyWidth / 2 + padLength / 2 - 0.15;
|
|
29899
|
+
const rightPadCenterX = bodyWidth / 2 - padLength / 2 + 0.15;
|
|
29900
|
+
const taperOffset = 0.2;
|
|
29901
|
+
const straightHeight = bodyHeight * 0.24;
|
|
29902
|
+
return /* @__PURE__ */ jsxs(Fragment2, { children: [
|
|
29903
|
+
/* @__PURE__ */ jsx2(
|
|
29904
|
+
Cuboid,
|
|
29905
|
+
{
|
|
29906
|
+
color: "#ccc",
|
|
29907
|
+
size: [padLength, padWidth, padThickness],
|
|
29908
|
+
center: [leftPadCenterX, 0, padThickness / 2]
|
|
29909
|
+
}
|
|
29910
|
+
),
|
|
29911
|
+
/* @__PURE__ */ jsx2(
|
|
29912
|
+
Cuboid,
|
|
29913
|
+
{
|
|
29914
|
+
color: "#ccc",
|
|
29915
|
+
size: [padLength, padWidth, padThickness],
|
|
29916
|
+
center: [rightPadCenterX, 0, padThickness / 2]
|
|
29917
|
+
}
|
|
29918
|
+
),
|
|
29919
|
+
/* @__PURE__ */ jsx2(Colorize, { color: "#222", children: /* @__PURE__ */ jsxs(Union, { children: [
|
|
29920
|
+
/* @__PURE__ */ jsx2(Translate, { z: straightHeight / 2, children: /* @__PURE__ */ jsx2(Cuboid, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
|
|
29921
|
+
/* @__PURE__ */ jsxs(Hull, { children: [
|
|
29922
|
+
/* @__PURE__ */ jsx2(Translate, { z: straightHeight, children: /* @__PURE__ */ jsx2(Cuboid, { size: [bodyWidth, bodyLength10, 0.01] }) }),
|
|
29923
|
+
/* @__PURE__ */ jsx2(Translate, { z: bodyHeight, children: /* @__PURE__ */ jsx2(
|
|
29924
|
+
Cuboid,
|
|
29925
|
+
{
|
|
29926
|
+
size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
|
|
29927
|
+
}
|
|
29928
|
+
) })
|
|
29929
|
+
] })
|
|
29930
|
+
] }) }),
|
|
29931
|
+
/* @__PURE__ */ jsx2(
|
|
29932
|
+
Cuboid,
|
|
29933
|
+
{
|
|
29934
|
+
color: "#777",
|
|
29935
|
+
size: [fullWidth / 6, bodyLength10 - taperOffset, 0.02],
|
|
29936
|
+
center: [-bodyWidth / 4, 0, bodyHeight]
|
|
29937
|
+
}
|
|
29938
|
+
)
|
|
29939
|
+
] });
|
|
29940
|
+
};
|
|
29941
|
+
var SOD723_default = SOD723;
|
|
29942
|
+
var JSTZH1_5mm = ({
|
|
29943
|
+
numPins = 7,
|
|
29944
|
+
showPins = true,
|
|
29945
|
+
showFootprint = true,
|
|
29946
|
+
bodyColor = "#f5f5f5",
|
|
29947
|
+
pinColor = "#635959"
|
|
29948
|
+
}) => {
|
|
29949
|
+
const pitch = 1.5;
|
|
29950
|
+
const bodyHeight = 6;
|
|
29951
|
+
const bodyDepth = 3.5;
|
|
29952
|
+
const wallThickness = 0.5;
|
|
29953
|
+
const hollowHeight = bodyHeight * 0.6;
|
|
29954
|
+
const pinLength = 6;
|
|
29955
|
+
const bodyWidth = (numPins - 1) * pitch + 4;
|
|
29956
|
+
const startX = -((numPins - 1) * pitch) / 2;
|
|
29957
|
+
return /* @__PURE__ */ jsxs(Fragment2, { children: [
|
|
29958
|
+
/* @__PURE__ */ jsx2(Translate, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx2(Rotate, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx2(Colorize, { color: bodyColor, children: /* @__PURE__ */ jsxs(Subtract, { children: [
|
|
29959
|
+
/* @__PURE__ */ jsx2(
|
|
29960
|
+
Cuboid,
|
|
29961
|
+
{
|
|
29962
|
+
size: [bodyWidth, bodyDepth, bodyHeight],
|
|
29963
|
+
center: [0, 0, bodyHeight / 2]
|
|
29964
|
+
}
|
|
29965
|
+
),
|
|
29966
|
+
/* @__PURE__ */ jsx2(
|
|
29967
|
+
Cuboid,
|
|
29968
|
+
{
|
|
29969
|
+
size: [
|
|
29970
|
+
bodyWidth - wallThickness * 2,
|
|
29971
|
+
bodyDepth - wallThickness * 2,
|
|
29972
|
+
hollowHeight
|
|
29973
|
+
],
|
|
29974
|
+
center: [0, 0, hollowHeight / 2]
|
|
29975
|
+
}
|
|
29976
|
+
),
|
|
29977
|
+
/* @__PURE__ */ jsx2(
|
|
29978
|
+
Cuboid,
|
|
29979
|
+
{
|
|
29980
|
+
size: [bodyWidth, bodyDepth / 3, hollowHeight],
|
|
29981
|
+
center: [0, 0, hollowHeight / 6]
|
|
29982
|
+
}
|
|
29983
|
+
),
|
|
29984
|
+
/* @__PURE__ */ jsx2(
|
|
29985
|
+
Cuboid,
|
|
29986
|
+
{
|
|
29987
|
+
size: [
|
|
29988
|
+
bodyWidth - wallThickness * 2,
|
|
29989
|
+
wallThickness / 2,
|
|
29990
|
+
hollowHeight
|
|
29991
|
+
],
|
|
29992
|
+
center: [
|
|
29993
|
+
0,
|
|
29994
|
+
bodyDepth / 2 - wallThickness / 4,
|
|
29995
|
+
hollowHeight / 2
|
|
29996
|
+
]
|
|
29997
|
+
}
|
|
29998
|
+
),
|
|
29999
|
+
/* @__PURE__ */ jsx2(
|
|
30000
|
+
Cuboid,
|
|
30001
|
+
{
|
|
30002
|
+
size: [
|
|
30003
|
+
bodyWidth - wallThickness * 2,
|
|
30004
|
+
wallThickness / 2,
|
|
30005
|
+
hollowHeight
|
|
30006
|
+
],
|
|
30007
|
+
center: [
|
|
30008
|
+
0,
|
|
30009
|
+
-bodyDepth / 2 + wallThickness / 4,
|
|
30010
|
+
hollowHeight / 2
|
|
30011
|
+
]
|
|
30012
|
+
}
|
|
30013
|
+
),
|
|
30014
|
+
/* @__PURE__ */ jsx2(
|
|
30015
|
+
Cuboid,
|
|
30016
|
+
{
|
|
30017
|
+
size: [1, wallThickness + 2, 1],
|
|
30018
|
+
center: [-bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
|
|
30019
|
+
}
|
|
30020
|
+
),
|
|
30021
|
+
/* @__PURE__ */ jsx2(
|
|
30022
|
+
Cuboid,
|
|
30023
|
+
{
|
|
30024
|
+
size: [1, wallThickness + 3, 1],
|
|
30025
|
+
center: [bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
|
|
30026
|
+
}
|
|
30027
|
+
),
|
|
30028
|
+
/* @__PURE__ */ jsx2(
|
|
30029
|
+
Cuboid,
|
|
30030
|
+
{
|
|
30031
|
+
size: [1, wallThickness + 2, 1],
|
|
30032
|
+
center: [-bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
|
|
30033
|
+
}
|
|
30034
|
+
),
|
|
30035
|
+
/* @__PURE__ */ jsx2(
|
|
30036
|
+
Cuboid,
|
|
30037
|
+
{
|
|
30038
|
+
size: [1, wallThickness + 3, 1],
|
|
30039
|
+
center: [bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
|
|
30040
|
+
}
|
|
30041
|
+
)
|
|
30042
|
+
] }) }) }) }),
|
|
30043
|
+
showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx2(Colorize, { color: pinColor, children: /* @__PURE__ */ jsx2(
|
|
30044
|
+
Cylinder,
|
|
30045
|
+
{
|
|
30046
|
+
height: pinLength,
|
|
30047
|
+
radius: 0.35,
|
|
30048
|
+
center: [startX + i * pitch, 0, 2.5]
|
|
30049
|
+
}
|
|
30050
|
+
) }, i)),
|
|
30051
|
+
showFootprint && Array.from({ length: numPins }).map((_, i) => {
|
|
30052
|
+
const isPin1 = i === 0;
|
|
30053
|
+
const hole = isPin1 ? {
|
|
30054
|
+
type: "pcb_plated_hole",
|
|
30055
|
+
pcb_plated_hole_id: `jstzh_${i}`,
|
|
30056
|
+
shape: "circular_hole_with_rect_pad",
|
|
30057
|
+
x: startX + i * pitch,
|
|
30058
|
+
y: 0,
|
|
30059
|
+
hole_diameter: 0.73,
|
|
30060
|
+
rect_pad_width: 1.03,
|
|
30061
|
+
rect_pad_height: 1.73,
|
|
30062
|
+
hole_shape: "circle",
|
|
30063
|
+
pad_shape: "rect",
|
|
30064
|
+
layers: ["top", "bottom"],
|
|
30065
|
+
port_hints: [`${i + 1}`]
|
|
30066
|
+
} : {
|
|
30067
|
+
type: "pcb_plated_hole",
|
|
30068
|
+
pcb_plated_hole_id: `jstzh_${i}`,
|
|
30069
|
+
shape: "pill",
|
|
30070
|
+
x: startX + i * pitch,
|
|
30071
|
+
y: 0,
|
|
30072
|
+
hole_height: 0.73,
|
|
30073
|
+
hole_width: 0.73,
|
|
30074
|
+
outer_height: 1.73,
|
|
30075
|
+
outer_width: 1.03,
|
|
30076
|
+
layers: ["top", "bottom"],
|
|
30077
|
+
port_hints: [`${i + 1}`]
|
|
30078
|
+
};
|
|
30079
|
+
return /* @__PURE__ */ jsx2(
|
|
30080
|
+
FootprintPlatedHole,
|
|
30081
|
+
{
|
|
30082
|
+
hole,
|
|
30083
|
+
isPin1
|
|
30084
|
+
},
|
|
30085
|
+
`footprint_${i}`
|
|
30086
|
+
);
|
|
30087
|
+
})
|
|
30088
|
+
] });
|
|
30089
|
+
};
|
|
29773
30090
|
var Footprinter3d = ({ footprint }) => {
|
|
29774
|
-
|
|
30091
|
+
let normalizedFootprint = footprint;
|
|
30092
|
+
if (footprint.startsWith("jstzh1_5mm")) {
|
|
30093
|
+
const pinMatch = footprint.match(/jstzh1_5mm(\d+)?/);
|
|
30094
|
+
const numPins = pinMatch && pinMatch[1] ? pinMatch[1] : "7";
|
|
30095
|
+
normalizedFootprint = `zh${numPins}`;
|
|
30096
|
+
}
|
|
30097
|
+
const fpJson = fp.string(normalizedFootprint).json();
|
|
29775
30098
|
switch (fpJson.fn) {
|
|
29776
30099
|
case "dip":
|
|
29777
30100
|
return /* @__PURE__ */ jsx2(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
|
|
@@ -29939,6 +30262,11 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
29939
30262
|
innerDiameter: fpJson.id
|
|
29940
30263
|
}
|
|
29941
30264
|
);
|
|
30265
|
+
case "jst":
|
|
30266
|
+
if (fpJson.zh) {
|
|
30267
|
+
return /* @__PURE__ */ jsx2(JSTZH1_5mm, { numPins: fpJson.num_pins });
|
|
30268
|
+
}
|
|
30269
|
+
break;
|
|
29942
30270
|
case "soic":
|
|
29943
30271
|
return /* @__PURE__ */ jsx2(
|
|
29944
30272
|
SOIC,
|
|
@@ -29952,6 +30280,8 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
29952
30280
|
);
|
|
29953
30281
|
case "sod523":
|
|
29954
30282
|
return /* @__PURE__ */ jsx2(SOD523, {});
|
|
30283
|
+
case "sod723":
|
|
30284
|
+
return /* @__PURE__ */ jsx2(SOD723_default, {});
|
|
29955
30285
|
case "sod882":
|
|
29956
30286
|
return /* @__PURE__ */ jsx2(SOD882, {});
|
|
29957
30287
|
case "sma":
|
|
@@ -31991,7 +32321,7 @@ import * as THREE20 from "three";
|
|
|
31991
32321
|
// package.json
|
|
31992
32322
|
var package_default = {
|
|
31993
32323
|
name: "@tscircuit/3d-viewer",
|
|
31994
|
-
version: "0.0.
|
|
32324
|
+
version: "0.0.562",
|
|
31995
32325
|
main: "./dist/index.js",
|
|
31996
32326
|
module: "./dist/index.js",
|
|
31997
32327
|
type: "module",
|
|
@@ -32052,7 +32382,7 @@ var package_default = {
|
|
|
32052
32382
|
"bun-match-svg": "^0.0.9",
|
|
32053
32383
|
"bun-types": "1.2.1",
|
|
32054
32384
|
debug: "^4.4.0",
|
|
32055
|
-
"jscad-electronics": "^0.0.
|
|
32385
|
+
"jscad-electronics": "^0.0.133",
|
|
32056
32386
|
"jscad-planner": "^0.0.13",
|
|
32057
32387
|
jsdom: "^26.0.0",
|
|
32058
32388
|
"manifold-3d": "^3.2.1",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/3d-viewer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.563",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"bun-match-svg": "^0.0.9",
|
|
62
62
|
"bun-types": "1.2.1",
|
|
63
63
|
"debug": "^4.4.0",
|
|
64
|
-
"jscad-electronics": "^0.0.
|
|
64
|
+
"jscad-electronics": "^0.0.133",
|
|
65
65
|
"jscad-planner": "^0.0.13",
|
|
66
66
|
"jsdom": "^26.0.0",
|
|
67
67
|
"manifold-3d": "^3.2.1",
|