@tscircuit/core 0.0.62 → 0.0.63
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
CHANGED
|
@@ -2521,23 +2521,31 @@ searched component ${targetComponent.getString()}, which has ports: ${targetComp
|
|
|
2521
2521
|
return { ...t, layers: [candidateLayerSelections[idx]] };
|
|
2522
2522
|
});
|
|
2523
2523
|
}
|
|
2524
|
+
;
|
|
2525
|
+
orderedRoutePoints[0].pcb_port_id = ports[0].pcb_port_id;
|
|
2526
|
+
orderedRoutePoints[orderedRoutePoints.length - 1].pcb_port_id = ports[1].pcb_port_id;
|
|
2524
2527
|
const routes = [];
|
|
2525
2528
|
for (const [a, b] of pairs(orderedRoutePoints)) {
|
|
2526
2529
|
const dominantLayer = "via_to_layer" in a ? a.via_to_layer : null;
|
|
2527
2530
|
const BOUNDS_MARGIN = 2;
|
|
2528
2531
|
const aLayer = "layers" in a && a.layers.length === 1 ? a.layers[0] : dominantLayer ?? "top";
|
|
2529
2532
|
const bLayer = "layers" in b && b.layers.length === 1 ? b.layers[0] : dominantLayer ?? "top";
|
|
2533
|
+
const pcbPortA = "pcb_port_id" in a ? a.pcb_port_id : null;
|
|
2534
|
+
const pcbPortB = "pcb_port_id" in b ? b.pcb_port_id : null;
|
|
2530
2535
|
const ijump = new MultilayerIjump({
|
|
2531
2536
|
OBSTACLE_MARGIN: 0.3,
|
|
2532
|
-
isRemovePathLoopsEnabled: true,
|
|
2537
|
+
// isRemovePathLoopsEnabled: true,
|
|
2538
|
+
optimizeWithGoalBoxes: false,
|
|
2539
|
+
// Boolean(pcbPortA && pcbPortB),
|
|
2540
|
+
connMap,
|
|
2533
2541
|
input: {
|
|
2534
2542
|
obstacles,
|
|
2535
2543
|
connections: [
|
|
2536
2544
|
{
|
|
2537
|
-
name:
|
|
2545
|
+
name: this.source_trace_id,
|
|
2538
2546
|
pointsToConnect: [
|
|
2539
|
-
{ ...a, layer: aLayer },
|
|
2540
|
-
{ ...b, layer: bLayer }
|
|
2547
|
+
{ ...a, layer: aLayer, pcb_port_id: pcbPortA },
|
|
2548
|
+
{ ...b, layer: bLayer, pcb_port_id: pcbPortB }
|
|
2541
2549
|
]
|
|
2542
2550
|
}
|
|
2543
2551
|
],
|
|
@@ -44,7 +44,13 @@ import { getFullConnectivityMapFromCircuitJson } from "circuit-json-to-connectiv
|
|
|
44
44
|
|
|
45
45
|
type PcbRouteObjective =
|
|
46
46
|
| RouteHintPoint
|
|
47
|
-
| {
|
|
47
|
+
| {
|
|
48
|
+
layers: string[]
|
|
49
|
+
x: number
|
|
50
|
+
y: number
|
|
51
|
+
via?: boolean
|
|
52
|
+
pcb_port_id?: string
|
|
53
|
+
}
|
|
48
54
|
|
|
49
55
|
const portToObjective = (port: Port): PcbRouteObjective => {
|
|
50
56
|
const portPosition = port._getGlobalPcbPositionAfterLayout()
|
|
@@ -422,6 +428,9 @@ export class Trace extends PrimitiveComponent<typeof traceProps> {
|
|
|
422
428
|
return { ...t, layers: [candidateLayerSelections[idx]] }
|
|
423
429
|
})
|
|
424
430
|
}
|
|
431
|
+
;(orderedRoutePoints[0] as any).pcb_port_id = ports[0].pcb_port_id
|
|
432
|
+
;(orderedRoutePoints[orderedRoutePoints.length - 1] as any).pcb_port_id =
|
|
433
|
+
ports[1].pcb_port_id
|
|
425
434
|
|
|
426
435
|
const routes: PCBTrace["route"][] = []
|
|
427
436
|
for (const [a, b] of pairs(orderedRoutePoints)) {
|
|
@@ -432,23 +441,28 @@ export class Trace extends PrimitiveComponent<typeof traceProps> {
|
|
|
432
441
|
const aLayer =
|
|
433
442
|
"layers" in a && a.layers.length === 1
|
|
434
443
|
? a.layers[0]
|
|
435
|
-
: dominantLayer ?? "top"
|
|
444
|
+
: (dominantLayer ?? "top")
|
|
436
445
|
const bLayer =
|
|
437
446
|
"layers" in b && b.layers.length === 1
|
|
438
447
|
? b.layers[0]
|
|
439
|
-
: dominantLayer ?? "top"
|
|
448
|
+
: (dominantLayer ?? "top")
|
|
449
|
+
|
|
450
|
+
const pcbPortA = "pcb_port_id" in a ? a.pcb_port_id : null
|
|
451
|
+
const pcbPortB = "pcb_port_id" in b ? b.pcb_port_id : null
|
|
440
452
|
|
|
441
453
|
const ijump = new MultilayerIjump({
|
|
442
454
|
OBSTACLE_MARGIN: 0.3,
|
|
443
|
-
isRemovePathLoopsEnabled: true,
|
|
455
|
+
// isRemovePathLoopsEnabled: true,
|
|
456
|
+
optimizeWithGoalBoxes: false, // Boolean(pcbPortA && pcbPortB),
|
|
457
|
+
connMap,
|
|
444
458
|
input: {
|
|
445
459
|
obstacles,
|
|
446
460
|
connections: [
|
|
447
461
|
{
|
|
448
|
-
name:
|
|
462
|
+
name: this.source_trace_id!,
|
|
449
463
|
pointsToConnect: [
|
|
450
|
-
{ ...a, layer: aLayer },
|
|
451
|
-
{ ...b, layer: bLayer },
|
|
464
|
+
{ ...a, layer: aLayer, pcb_port_id: pcbPortA! },
|
|
465
|
+
{ ...b, layer: bLayer, pcb_port_id: pcbPortB! },
|
|
452
466
|
],
|
|
453
467
|
},
|
|
454
468
|
],
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@tscircuit/core",
|
|
3
3
|
"module": "index.ts",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.63",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"files": [
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"debug": "^4.3.6",
|
|
28
28
|
"howfat": "^0.3.8",
|
|
29
29
|
"looks-same": "^9.0.1",
|
|
30
|
+
"performance-now": "^2.1.0",
|
|
30
31
|
"tsup": "^8.2.4"
|
|
31
32
|
},
|
|
32
33
|
"peerDependencies": {
|
|
@@ -34,12 +35,14 @@
|
|
|
34
35
|
},
|
|
35
36
|
"dependencies": {
|
|
36
37
|
"@lume/kiwi": "^0.4.3",
|
|
37
|
-
"@tscircuit/infgrid-ijump-astar": "^0.0.
|
|
38
|
+
"@tscircuit/infgrid-ijump-astar": "^0.0.18",
|
|
39
|
+
"@tscircuit/math-utils": "^0.0.4",
|
|
38
40
|
"@tscircuit/props": "^0.0.63",
|
|
39
41
|
"@tscircuit/soup": "^0.0.69",
|
|
40
42
|
"@tscircuit/soup-util": "^0.0.26",
|
|
41
|
-
"circuit-json-to-connectivity-map": "^0.0.
|
|
43
|
+
"circuit-json-to-connectivity-map": "^0.0.15",
|
|
42
44
|
"footprinter": "^0.0.44",
|
|
45
|
+
"nanoid": "^5.0.7",
|
|
43
46
|
"react": "^18.3.1",
|
|
44
47
|
"react-reconciler": "^0.29.2",
|
|
45
48
|
"schematic-symbols": "0.0.17",
|