@tscircuit/3d-viewer 0.0.448 → 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 +34 -13
- 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",
|
|
@@ -32175,11 +32175,12 @@ function addFauxBoardIfNeeded(circuitJson) {
|
|
|
32175
32175
|
if (element.type === "cad_component") {
|
|
32176
32176
|
const cadComponent = element;
|
|
32177
32177
|
if (cadComponent.position) {
|
|
32178
|
+
const positionZOffset = cadComponent.position.z ?? 0;
|
|
32178
32179
|
return {
|
|
32179
32180
|
...cadComponent,
|
|
32180
32181
|
position: {
|
|
32181
32182
|
...cadComponent.position,
|
|
32182
|
-
z: componentZ
|
|
32183
|
+
z: positionZOffset + componentZ
|
|
32183
32184
|
}
|
|
32184
32185
|
};
|
|
32185
32186
|
}
|
|
@@ -32726,12 +32727,12 @@ function createPlatedHoleDrill({
|
|
|
32726
32727
|
Manifold,
|
|
32727
32728
|
x,
|
|
32728
32729
|
y,
|
|
32729
|
-
|
|
32730
|
+
holeDiameter,
|
|
32730
32731
|
thickness,
|
|
32731
32732
|
zOffset = 1e-3,
|
|
32732
32733
|
segments = 32
|
|
32733
32734
|
}) {
|
|
32734
|
-
const boardHoleRadius =
|
|
32735
|
+
const boardHoleRadius = holeDiameter / 2 + zOffset;
|
|
32735
32736
|
const drill = Manifold.cylinder(
|
|
32736
32737
|
thickness * 1.2,
|
|
32737
32738
|
boardHoleRadius,
|
|
@@ -33004,7 +33005,7 @@ function processPlatedHolesForManifold(Manifold, CrossSection, circuitJson, pcbT
|
|
|
33004
33005
|
Manifold,
|
|
33005
33006
|
x: ph.x,
|
|
33006
33007
|
y: ph.y,
|
|
33007
|
-
|
|
33008
|
+
holeDiameter: ph.hole_diameter * 1.02,
|
|
33008
33009
|
thickness: pcbThickness,
|
|
33009
33010
|
zOffset: MANIFOLD_Z_OFFSET,
|
|
33010
33011
|
segments: SMOOTH_CIRCLE_SEGMENTS
|
|
@@ -33487,22 +33488,42 @@ function createViaCopper({
|
|
|
33487
33488
|
zOffset = 1e-3,
|
|
33488
33489
|
segments = 32
|
|
33489
33490
|
}) {
|
|
33490
|
-
const
|
|
33491
|
-
|
|
33492
|
-
|
|
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,
|
|
33493
33505
|
outerDiameter / 2,
|
|
33494
33506
|
-1,
|
|
33495
33507
|
segments,
|
|
33496
33508
|
true
|
|
33497
|
-
);
|
|
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;
|
|
33498
33519
|
const drill = Manifold.cylinder(
|
|
33499
|
-
|
|
33520
|
+
drillHeight,
|
|
33500
33521
|
holeDiameter / 2,
|
|
33501
33522
|
-1,
|
|
33502
33523
|
segments,
|
|
33503
33524
|
true
|
|
33504
33525
|
);
|
|
33505
|
-
const finalViaCopperOp =
|
|
33526
|
+
const finalViaCopperOp = viaSolid.subtract(drill);
|
|
33506
33527
|
return finalViaCopperOp.translate([x, y, 0]);
|
|
33507
33528
|
}
|
|
33508
33529
|
|
|
@@ -33513,12 +33534,12 @@ function processViasForManifold(Manifold, circuitJson, pcbThickness, manifoldIns
|
|
|
33513
33534
|
const pcbVias = su11(circuitJson).pcb_via.list();
|
|
33514
33535
|
const viaCopperGeoms = [];
|
|
33515
33536
|
pcbVias.forEach((via, index2) => {
|
|
33516
|
-
if (typeof via.
|
|
33537
|
+
if (typeof via.hole_diameter === "number") {
|
|
33517
33538
|
const translatedDrill = createPlatedHoleDrill({
|
|
33518
33539
|
Manifold,
|
|
33519
33540
|
x: via.x,
|
|
33520
33541
|
y: via.y,
|
|
33521
|
-
|
|
33542
|
+
holeDiameter: via.hole_diameter,
|
|
33522
33543
|
thickness: pcbThickness,
|
|
33523
33544
|
zOffset: MANIFOLD_Z_OFFSET,
|
|
33524
33545
|
segments: SMOOTH_CIRCLE_SEGMENTS
|