@tscircuit/3d-viewer 0.0.449 → 0.0.450
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 +32 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -28464,7 +28464,7 @@ import * as THREE15 from "three";
|
|
|
28464
28464
|
// package.json
|
|
28465
28465
|
var package_default = {
|
|
28466
28466
|
name: "@tscircuit/3d-viewer",
|
|
28467
|
-
version: "0.0.
|
|
28467
|
+
version: "0.0.449",
|
|
28468
28468
|
main: "./dist/index.js",
|
|
28469
28469
|
module: "./dist/index.js",
|
|
28470
28470
|
type: "module",
|
|
@@ -32727,12 +32727,12 @@ function createPlatedHoleDrill({
|
|
|
32727
32727
|
Manifold,
|
|
32728
32728
|
x,
|
|
32729
32729
|
y,
|
|
32730
|
-
|
|
32730
|
+
holeDiameter,
|
|
32731
32731
|
thickness,
|
|
32732
32732
|
zOffset = 1e-3,
|
|
32733
32733
|
segments = 32
|
|
32734
32734
|
}) {
|
|
32735
|
-
const boardHoleRadius =
|
|
32735
|
+
const boardHoleRadius = holeDiameter / 2 + zOffset;
|
|
32736
32736
|
const drill = Manifold.cylinder(
|
|
32737
32737
|
thickness * 1.2,
|
|
32738
32738
|
boardHoleRadius,
|
|
@@ -33005,7 +33005,7 @@ function processPlatedHolesForManifold(Manifold, CrossSection, circuitJson, pcbT
|
|
|
33005
33005
|
Manifold,
|
|
33006
33006
|
x: ph.x,
|
|
33007
33007
|
y: ph.y,
|
|
33008
|
-
|
|
33008
|
+
holeDiameter: ph.hole_diameter * 1.02,
|
|
33009
33009
|
thickness: pcbThickness,
|
|
33010
33010
|
zOffset: MANIFOLD_Z_OFFSET,
|
|
33011
33011
|
segments: SMOOTH_CIRCLE_SEGMENTS
|
|
@@ -33488,22 +33488,42 @@ function createViaCopper({
|
|
|
33488
33488
|
zOffset = 1e-3,
|
|
33489
33489
|
segments = 32
|
|
33490
33490
|
}) {
|
|
33491
|
-
const
|
|
33492
|
-
|
|
33493
|
-
|
|
33491
|
+
const padThickness = zOffset;
|
|
33492
|
+
const platingThickness = zOffset;
|
|
33493
|
+
if (outerDiameter < holeDiameter) {
|
|
33494
|
+
throw new Error(
|
|
33495
|
+
`Invalid via geometry: outerDiameter (${outerDiameter}) must be >= holeDiameter (${holeDiameter})`
|
|
33496
|
+
);
|
|
33497
|
+
}
|
|
33498
|
+
const barrelRadius = Math.min(
|
|
33499
|
+
outerDiameter / 2,
|
|
33500
|
+
holeDiameter / 2 + platingThickness
|
|
33501
|
+
);
|
|
33502
|
+
const barrel = Manifold.cylinder(thickness, barrelRadius, -1, segments, true);
|
|
33503
|
+
const topPad = Manifold.cylinder(
|
|
33504
|
+
padThickness,
|
|
33494
33505
|
outerDiameter / 2,
|
|
33495
33506
|
-1,
|
|
33496
33507
|
segments,
|
|
33497
33508
|
true
|
|
33498
|
-
);
|
|
33509
|
+
).translate([0, 0, thickness / 2]);
|
|
33510
|
+
const bottomPad = Manifold.cylinder(
|
|
33511
|
+
padThickness,
|
|
33512
|
+
outerDiameter / 2,
|
|
33513
|
+
-1,
|
|
33514
|
+
segments,
|
|
33515
|
+
true
|
|
33516
|
+
).translate([0, 0, -thickness / 2]);
|
|
33517
|
+
const viaSolid = Manifold.union([barrel, topPad, bottomPad]);
|
|
33518
|
+
const drillHeight = thickness + padThickness * 2;
|
|
33499
33519
|
const drill = Manifold.cylinder(
|
|
33500
|
-
|
|
33520
|
+
drillHeight,
|
|
33501
33521
|
holeDiameter / 2,
|
|
33502
33522
|
-1,
|
|
33503
33523
|
segments,
|
|
33504
33524
|
true
|
|
33505
33525
|
);
|
|
33506
|
-
const finalViaCopperOp =
|
|
33526
|
+
const finalViaCopperOp = viaSolid.subtract(drill);
|
|
33507
33527
|
return finalViaCopperOp.translate([x, y, 0]);
|
|
33508
33528
|
}
|
|
33509
33529
|
|
|
@@ -33514,12 +33534,12 @@ function processViasForManifold(Manifold, circuitJson, pcbThickness, manifoldIns
|
|
|
33514
33534
|
const pcbVias = su11(circuitJson).pcb_via.list();
|
|
33515
33535
|
const viaCopperGeoms = [];
|
|
33516
33536
|
pcbVias.forEach((via, index2) => {
|
|
33517
|
-
if (typeof via.
|
|
33537
|
+
if (typeof via.hole_diameter === "number") {
|
|
33518
33538
|
const translatedDrill = createPlatedHoleDrill({
|
|
33519
33539
|
Manifold,
|
|
33520
33540
|
x: via.x,
|
|
33521
33541
|
y: via.y,
|
|
33522
|
-
|
|
33542
|
+
holeDiameter: via.hole_diameter,
|
|
33523
33543
|
thickness: pcbThickness,
|
|
33524
33544
|
zOffset: MANIFOLD_Z_OFFSET,
|
|
33525
33545
|
segments: SMOOTH_CIRCLE_SEGMENTS
|