jscad-electronics 0.0.55 → 0.0.57
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 +3 -1
- package/dist/index.js +135 -59
- package/dist/index.js.map +1 -1
- package/dist/vanilla.js +76 -3
- package/dist/vanilla.js.map +1 -1
- package/package.json +1 -1
package/dist/vanilla.js
CHANGED
|
@@ -1548,6 +1548,76 @@ var SOD523 = () => {
|
|
|
1548
1548
|
] });
|
|
1549
1549
|
};
|
|
1550
1550
|
|
|
1551
|
+
// lib/SMA.tsx
|
|
1552
|
+
var SMA = () => {
|
|
1553
|
+
const bodyWidth = 4.4;
|
|
1554
|
+
const bodyLength10 = 3.4;
|
|
1555
|
+
const bodyHeight = 2.3;
|
|
1556
|
+
const padWidth = 1.45;
|
|
1557
|
+
const padThickness = 0.12;
|
|
1558
|
+
const leadThickness = 0.2;
|
|
1559
|
+
const leadHeight = 1.14;
|
|
1560
|
+
const taperOffset = 0.4;
|
|
1561
|
+
const straightHeight = bodyHeight * 0.5;
|
|
1562
|
+
const Body = /* @__PURE__ */ jsx(Colorize, { color: "#1a1a1a", children: /* @__PURE__ */ jsxs(Union, { children: [
|
|
1563
|
+
/* @__PURE__ */ jsxs(Hull, { children: [
|
|
1564
|
+
/* @__PURE__ */ jsx(Translate, { z: padThickness + 0.01, children: /* @__PURE__ */ jsx(
|
|
1565
|
+
Cuboid,
|
|
1566
|
+
{
|
|
1567
|
+
size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.03]
|
|
1568
|
+
}
|
|
1569
|
+
) }),
|
|
1570
|
+
/* @__PURE__ */ jsx(Translate, { z: straightHeight, children: /* @__PURE__ */ jsx(Cuboid, { size: [bodyWidth, bodyLength10, 0.01] }) })
|
|
1571
|
+
] }),
|
|
1572
|
+
/* @__PURE__ */ jsxs(Hull, { children: [
|
|
1573
|
+
/* @__PURE__ */ jsx(Translate, { z: straightHeight, children: /* @__PURE__ */ jsx(Cuboid, { size: [bodyWidth, bodyLength10, 0.01] }) }),
|
|
1574
|
+
/* @__PURE__ */ jsx(Translate, { z: bodyHeight, children: /* @__PURE__ */ jsx(
|
|
1575
|
+
Cuboid,
|
|
1576
|
+
{
|
|
1577
|
+
size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
|
|
1578
|
+
}
|
|
1579
|
+
) })
|
|
1580
|
+
] })
|
|
1581
|
+
] }) });
|
|
1582
|
+
const Lead = ({ xDir }) => {
|
|
1583
|
+
const verticalGap = 1;
|
|
1584
|
+
const lowerPadGap = 1;
|
|
1585
|
+
const lowerPadX = xDir * (bodyLength10 / 2 - bodyHeight * 0.8 / 2 + lowerPadGap);
|
|
1586
|
+
const verticalLeadX = xDir * (bodyLength10 / 2 - leadThickness / 2 + verticalGap);
|
|
1587
|
+
const bodyEdgeX = xDir * (bodyLength10 / 2 - leadThickness / 2);
|
|
1588
|
+
const bridgeLength = Math.abs(bodyEdgeX - verticalLeadX);
|
|
1589
|
+
const bridgeCenterX = (verticalLeadX + bodyEdgeX) / 2;
|
|
1590
|
+
return /* @__PURE__ */ jsx(Colorize, { color: "#c0c0c0", children: /* @__PURE__ */ jsxs(Union, { children: [
|
|
1591
|
+
/* @__PURE__ */ jsx(
|
|
1592
|
+
Cuboid,
|
|
1593
|
+
{
|
|
1594
|
+
size: [bodyHeight * 0.8, padWidth, leadThickness],
|
|
1595
|
+
center: [lowerPadX, 0, leadThickness / 2]
|
|
1596
|
+
}
|
|
1597
|
+
),
|
|
1598
|
+
/* @__PURE__ */ jsx(
|
|
1599
|
+
Cuboid,
|
|
1600
|
+
{
|
|
1601
|
+
size: [leadThickness, padWidth, leadHeight],
|
|
1602
|
+
center: [verticalLeadX, 0, leadHeight / 2 + leadThickness]
|
|
1603
|
+
}
|
|
1604
|
+
),
|
|
1605
|
+
/* @__PURE__ */ jsx(
|
|
1606
|
+
Cuboid,
|
|
1607
|
+
{
|
|
1608
|
+
size: [bridgeLength, padWidth, leadThickness],
|
|
1609
|
+
center: [bridgeCenterX, 0, leadThickness / 2 + leadHeight]
|
|
1610
|
+
}
|
|
1611
|
+
)
|
|
1612
|
+
] }) });
|
|
1613
|
+
};
|
|
1614
|
+
return /* @__PURE__ */ jsxs(Fragment2, { children: [
|
|
1615
|
+
/* @__PURE__ */ jsx(Lead, { xDir: 1 }),
|
|
1616
|
+
/* @__PURE__ */ jsx(Lead, { xDir: -1 }),
|
|
1617
|
+
Body
|
|
1618
|
+
] });
|
|
1619
|
+
};
|
|
1620
|
+
|
|
1551
1621
|
// lib/Footprinter3d.tsx
|
|
1552
1622
|
var Footprinter3d = ({ footprint }) => {
|
|
1553
1623
|
const fpJson = fp.string(footprint).json();
|
|
@@ -1589,6 +1659,7 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
1589
1659
|
}
|
|
1590
1660
|
);
|
|
1591
1661
|
case "qfn":
|
|
1662
|
+
const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
|
|
1592
1663
|
return /* @__PURE__ */ jsx(
|
|
1593
1664
|
qfn_default,
|
|
1594
1665
|
{
|
|
@@ -1598,10 +1669,10 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
1598
1669
|
pitch: fpJson.p,
|
|
1599
1670
|
padLength: fpJson.pl,
|
|
1600
1671
|
padWidth: fpJson.pw,
|
|
1601
|
-
thermalPadSize: {
|
|
1672
|
+
thermalPadSize: hasThermalPad ? {
|
|
1602
1673
|
width: fpJson.thermalpad.x,
|
|
1603
1674
|
length: fpJson.thermalpad.y
|
|
1604
|
-
}
|
|
1675
|
+
} : void 0
|
|
1605
1676
|
}
|
|
1606
1677
|
);
|
|
1607
1678
|
case "pinrow":
|
|
@@ -1655,6 +1726,8 @@ var Footprinter3d = ({ footprint }) => {
|
|
|
1655
1726
|
);
|
|
1656
1727
|
case "sod523":
|
|
1657
1728
|
return /* @__PURE__ */ jsx(SOD523, {});
|
|
1729
|
+
case "sma":
|
|
1730
|
+
return /* @__PURE__ */ jsx(SMA, {});
|
|
1658
1731
|
}
|
|
1659
1732
|
const colorMatch = footprint.match(/_color\(([^)]+)\)/);
|
|
1660
1733
|
const color = colorMatch ? colorMatch[1] : void 0;
|
|
@@ -1759,7 +1832,7 @@ function renderNode(node, colorCtx, renderCtx) {
|
|
|
1759
1832
|
else if (type === Subtract)
|
|
1760
1833
|
geom = booleans.subtract(geoms[0], geoms.slice(1));
|
|
1761
1834
|
else geom = hulls.hull(geoms);
|
|
1762
|
-
return [{ geom }];
|
|
1835
|
+
return [{ geom, color: colorCtx }];
|
|
1763
1836
|
}
|
|
1764
1837
|
if (type === Polygon) {
|
|
1765
1838
|
const points = props?.points ?? [];
|