@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.
Files changed (2) hide show
  1. package/dist/index.js +32 -12
  2. 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.448",
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
- outerDiameter,
32730
+ holeDiameter,
32731
32731
  thickness,
32732
32732
  zOffset = 1e-3,
32733
32733
  segments = 32
32734
32734
  }) {
32735
- const boardHoleRadius = outerDiameter / 2 + zOffset;
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
- outerDiameter: ph.hole_diameter * 1.02,
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 copperPartThickness = thickness + 2 * zOffset;
33492
- let viaCopper = Manifold.cylinder(
33493
- copperPartThickness,
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
- copperPartThickness * 1.05,
33520
+ drillHeight,
33501
33521
  holeDiameter / 2,
33502
33522
  -1,
33503
33523
  segments,
33504
33524
  true
33505
33525
  );
33506
- const finalViaCopperOp = viaCopper.subtract(drill);
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.outer_diameter === "number") {
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
- outerDiameter: via.outer_diameter,
33542
+ holeDiameter: via.hole_diameter,
33523
33543
  thickness: pcbThickness,
33524
33544
  zOffset: MANIFOLD_Z_OFFSET,
33525
33545
  segments: SMOOTH_CIRCLE_SEGMENTS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/3d-viewer",
3
- "version": "0.0.449",
3
+ "version": "0.0.450",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",