@tscircuit/core 0.0.1008 → 0.0.1009

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 +47 -11
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -7528,6 +7528,7 @@ function Trace_doInitialPcbManualTraceRender(trace) {
7528
7528
  }
7529
7529
  const otherPort = ports.find((p) => p !== anchorPort) ?? ports[1];
7530
7530
  const layer = anchorPort.getAvailablePcbLayers()[0] || "top";
7531
+ let currentLayer = layer;
7531
7532
  const anchorPos = anchorPort._getGlobalPcbPositionAfterLayout();
7532
7533
  const otherPos = otherPort._getGlobalPcbPositionAfterLayout();
7533
7534
  const route = [];
@@ -7536,13 +7537,17 @@ function Trace_doInitialPcbManualTraceRender(trace) {
7536
7537
  x: anchorPos.x,
7537
7538
  y: anchorPos.y,
7538
7539
  width,
7539
- layer,
7540
+ layer: currentLayer,
7540
7541
  start_pcb_port_id: anchorPort.pcb_port_id
7541
7542
  });
7542
7543
  const transform = anchorPort?._computePcbGlobalTransformBeforeLayout?.() || identity3();
7543
- for (const pt of props.pcbPath) {
7544
+ const pcbPath = props.pcbPath;
7545
+ for (const pt of pcbPath) {
7544
7546
  let coordinates;
7545
7547
  let isGlobalPosition = false;
7548
+ const isViaPoint = typeof pt !== "string" && pt.via;
7549
+ let viaFromLayer;
7550
+ let viaToLayer;
7546
7551
  if (typeof pt === "string") {
7547
7552
  const resolvedPort = trace.getSubcircuit().selectOne(pt, {
7548
7553
  type: "port"
@@ -7564,22 +7569,37 @@ function Trace_doInitialPcbManualTraceRender(trace) {
7564
7569
  } else {
7565
7570
  coordinates = { x: pt.x, y: pt.y };
7566
7571
  isGlobalPosition = false;
7572
+ if (pt.via) {
7573
+ viaFromLayer = pt.fromLayer ?? currentLayer;
7574
+ viaToLayer = pt.toLayer;
7575
+ }
7567
7576
  }
7568
7577
  const finalCoordinates = isGlobalPosition ? coordinates : applyToPoint7(transform, coordinates);
7569
- route.push({
7570
- route_type: "wire",
7571
- x: finalCoordinates.x,
7572
- y: finalCoordinates.y,
7573
- width,
7574
- layer
7575
- });
7578
+ if (isViaPoint) {
7579
+ route.push({
7580
+ route_type: "via",
7581
+ x: finalCoordinates.x,
7582
+ y: finalCoordinates.y,
7583
+ from_layer: viaFromLayer ?? currentLayer,
7584
+ to_layer: viaToLayer ?? currentLayer
7585
+ });
7586
+ currentLayer = viaToLayer ?? currentLayer;
7587
+ } else {
7588
+ route.push({
7589
+ route_type: "wire",
7590
+ x: finalCoordinates.x,
7591
+ y: finalCoordinates.y,
7592
+ width,
7593
+ layer: currentLayer
7594
+ });
7595
+ }
7576
7596
  }
7577
7597
  route.push({
7578
7598
  route_type: "wire",
7579
7599
  x: otherPos.x,
7580
7600
  y: otherPos.y,
7581
7601
  width,
7582
- layer,
7602
+ layer: currentLayer,
7583
7603
  end_pcb_port_id: otherPort.pcb_port_id
7584
7604
  });
7585
7605
  const traceLength = getTraceLength(route);
@@ -7590,6 +7610,22 @@ function Trace_doInitialPcbManualTraceRender(trace) {
7590
7610
  pcb_group_id: trace.getGroup()?.pcb_group_id ?? void 0,
7591
7611
  trace_length: traceLength
7592
7612
  });
7613
+ const pcbStyle = trace.getInheritedMergedProperty("pcbStyle");
7614
+ const { holeDiameter, padDiameter } = getViaDiameterDefaults(pcbStyle);
7615
+ for (const point6 of route) {
7616
+ if (point6.route_type === "via") {
7617
+ db.pcb_via.insert({
7618
+ pcb_trace_id: pcb_trace.pcb_trace_id,
7619
+ x: point6.x,
7620
+ y: point6.y,
7621
+ hole_diameter: holeDiameter,
7622
+ outer_diameter: padDiameter,
7623
+ layers: [point6.from_layer, point6.to_layer],
7624
+ from_layer: point6.from_layer,
7625
+ to_layer: point6.to_layer
7626
+ });
7627
+ }
7628
+ }
7593
7629
  trace._portsRoutedOnPcb = ports;
7594
7630
  trace.pcb_trace_id = pcb_trace.pcb_trace_id;
7595
7631
  trace._insertErrorIfTraceIsOutsideBoard(route, ports);
@@ -21815,7 +21851,7 @@ import { identity as identity5 } from "transformation-matrix";
21815
21851
  var package_default = {
21816
21852
  name: "@tscircuit/core",
21817
21853
  type: "module",
21818
- version: "0.0.1007",
21854
+ version: "0.0.1008",
21819
21855
  types: "dist/index.d.ts",
21820
21856
  main: "dist/index.js",
21821
21857
  module: "dist/index.js",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.1008",
4
+ "version": "0.0.1009",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",