@tscircuit/rectdiff 0.0.28 → 0.0.30

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 (68) hide show
  1. package/.github/workflows/bun-pver-release.yml +24 -45
  2. package/lib/RectDiffPipeline.ts +0 -46
  3. package/lib/fixtures/twoNodeExpansionFixture.ts +1 -1
  4. package/lib/solvers/GapFillSolver/ExpandEdgesToEmptySpaceSolver.ts +4 -2
  5. package/lib/solvers/GapFillSolver/FindSegmentsWithAdjacentEmptySpaceSolver.ts +3 -1
  6. package/lib/solvers/GapFillSolver/GapFillSolverPipeline.ts +6 -2
  7. package/lib/solvers/RectDiffExpansionSolver/RectDiffExpansionSolver.ts +5 -2
  8. package/lib/solvers/RectDiffGridSolverPipeline/RectDiffGridSolverPipeline.ts +8 -5
  9. package/lib/solvers/RectDiffGridSolverPipeline/buildObstacleIndexes.ts +6 -6
  10. package/lib/solvers/RectDiffSeedingSolver/RectDiffSeedingSolver.ts +4 -4
  11. package/lib/solvers/RectDiffSeedingSolver/computeCandidates3D.ts +1 -1
  12. package/lib/solvers/RectDiffSeedingSolver/computeEdgeCandidates3D.ts +1 -1
  13. package/lib/solvers/RectDiffSeedingSolver/longestFreeSpanAroundZ.ts +1 -1
  14. package/lib/types/capacity-mesh-types.ts +1 -1
  15. package/lib/types/srj-types.ts +0 -1
  16. package/lib/utils/expandRectFromSeed.ts +1 -1
  17. package/lib/utils/finalizeRects.ts +1 -1
  18. package/lib/utils/isFullyOccupiedAtPoint.ts +1 -1
  19. package/lib/utils/isSelfRect.ts +1 -1
  20. package/lib/utils/rectToTree.ts +2 -2
  21. package/lib/utils/renderObstacleClearance.ts +1 -1
  22. package/lib/utils/resizeSoftOverlaps.ts +1 -1
  23. package/lib/utils/sameTreeRect.ts +1 -1
  24. package/lib/utils/searchStrip.ts +1 -1
  25. package/package.json +12 -8
  26. package/pages/repro/merge-single-layer-node.page.tsx +17 -0
  27. package/tests/__snapshots__/board-outline.snap.svg +2 -2
  28. package/tests/solver/__snapshots__/rectDiffGridSolverPipeline.snap.svg +1 -1
  29. package/tests/solver/both-points-equivalent/__snapshots__/both-points-equivalent.snap.svg +1 -1
  30. package/tests/solver/bugreport01-be84eb/__snapshots__/bugreport01-be84eb.snap.svg +1 -1
  31. package/tests/solver/bugreport02-bc4361/__snapshots__/bugreport02-bc4361.snap.svg +1 -1
  32. package/tests/solver/bugreport03-fe4a17/__snapshots__/bugreport03-fe4a17.snap.svg +1 -1
  33. package/tests/solver/bugreport07-d3f3be/__snapshots__/bugreport07-d3f3be.snap.svg +1 -1
  34. package/tests/solver/bugreport08-e3ec95/__snapshots__/bugreport08-e3ec95.snap.svg +1 -1
  35. package/tests/solver/bugreport09-618e09/__snapshots__/bugreport09-618e09.snap.svg +1 -1
  36. package/tests/solver/bugreport10-71239a/__snapshots__/bugreport10-71239a.snap.svg +1 -1
  37. package/tests/solver/bugreport11-b2de3c/__snapshots__/bugreport11-b2de3c.snap.svg +1 -1
  38. package/tests/solver/bugreport12-35ce1c/__snapshots__/bugreport12-35ce1c.snap.svg +1 -1
  39. package/tests/solver/bugreport13-b9a758/__snapshots__/bugreport13-b9a758.snap.svg +1 -1
  40. package/tests/solver/bugreport16-d95f38/__snapshots__/bugreport16-d95f38.snap.svg +1 -1
  41. package/tests/solver/bugreport19/__snapshots__/bugreport19.snap.svg +1 -1
  42. package/tests/solver/bugreport20-obstacle-clipping/__snapshots__/bugreport20-obstacle-clipping.snap.svg +1 -1
  43. package/tests/solver/bugreport21-board-outline/__snapshots__/bugreport21-board-outline.snap.svg +2 -2
  44. package/tests/solver/bugreport22-2a75ce/__snapshots__/bugreport22-2a75ce.snap.svg +1 -1
  45. package/tests/solver/bugreport23-LGA15x4/__snapshots__/bugreport23-LGA15x4.snap.svg +1 -1
  46. package/tests/solver/bugreport24-05597c/__snapshots__/bugreport24-05597c.snap.svg +1 -1
  47. package/tests/solver/bugreport25-4b1d55/__snapshots__/bugreport25-4b1d55.snap.svg +1 -1
  48. package/tests/solver/bugreport36-bf8303/__snapshots__/bugreport36-bf8303.snap.svg +1 -1
  49. package/tests/solver/interaction/__snapshots__/interaction.snap.svg +1 -1
  50. package/tests/solver/multi-point/__snapshots__/multi-point.snap.svg +1 -1
  51. package/tests/solver/no-better-path/__snapshots__/no-better-path.snap.svg +1 -1
  52. package/tests/solver/repros/merge-single-layer-node/merge-single-layer-node.json +861 -0
  53. package/tests/solver/{bugreport50-multi-support-layer-merge/bugreport50-multi-support-layer-merge.test.ts → repros/merge-single-layer-node/merge-single-layer-node.test.ts} +7 -42
  54. package/tests/solver/transitivity/__snapshots__/transitivity.snap.svg +2 -2
  55. package/tsconfig.json +5 -1
  56. package/vite.config.ts +4 -0
  57. package/dist/index.d.ts +0 -427
  58. package/dist/index.js +0 -3319
  59. package/lib/solvers/AdjacentLayerContainmentMergeSolver/AdjacentLayerContainmentMergeSolver.ts +0 -456
  60. package/lib/solvers/OuterLayerContainmentMergeSolver/OuterLayerContainmentMergeSolver.ts +0 -314
  61. package/pages/bugreports/bugreport50-multi-support-layer-merge.page.tsx +0 -19
  62. package/pages/pour.page.tsx +0 -18
  63. package/test-assets/bugreport49-634662.json +0 -412
  64. package/tests/outer-layer-containment-merge-solver.test.ts +0 -73
  65. package/tests/solver/bugreport49-634662/__snapshots__/bugreport49-634662.snap.svg +0 -44
  66. package/tests/solver/bugreport49-634662/bugreport49-634662.test.ts +0 -130
  67. package/tests/solver/bugreport50-multi-support-layer-merge/__snapshots__/bugreport50-multi-support-layer-merge.snap.svg +0 -44
  68. package/tests/solver/bugreport50-multi-support-layer-merge/bugreport50-multi-support-layer-merge.json +0 -972
@@ -1,972 +0,0 @@
1
- {
2
- "simpleRouteJson": {
3
- "bounds": {
4
- "maxX": 10,
5
- "maxY": 5,
6
- "minX": -10,
7
- "minY": -5
8
- },
9
- "obstacles": [
10
- {
11
- "type": "rect",
12
- "width": 1,
13
- "center": {
14
- "x": -2.15,
15
- "y": 2.54
16
- },
17
- "height": 0.6,
18
- "layers": ["top"],
19
- "connectedTo": [
20
- "pcb_smtpad_0",
21
- "connectivity_net8",
22
- "source_trace_3",
23
- "source_port_10",
24
- "source_port_0",
25
- "pcb_smtpad_0",
26
- "pcb_port_0",
27
- "pcb_smtpad_10",
28
- "pcb_port_10"
29
- ],
30
- "zLayers": [0]
31
- },
32
- {
33
- "type": "rect",
34
- "width": 1,
35
- "center": {
36
- "x": -2.15,
37
- "y": 1.27
38
- },
39
- "height": 0.6,
40
- "layers": ["top"],
41
- "connectedTo": [
42
- "pcb_smtpad_1",
43
- "connectivity_net26",
44
- "source_trace_10",
45
- "source_port_17",
46
- "source_trace_6",
47
- "source_port_13",
48
- "source_trace_4",
49
- "source_port_11",
50
- "source_trace_2",
51
- "source_port_3",
52
- "source_trace_0",
53
- "source_port_1",
54
- "source_net_0",
55
- "pcb_smtpad_1",
56
- "pcb_port_1",
57
- "pcb_smtpad_3",
58
- "pcb_port_3",
59
- "pcb_smtpad_11",
60
- "pcb_port_11",
61
- "pcb_smtpad_13",
62
- "pcb_port_13",
63
- "pcb_smtpad_17",
64
- "pcb_port_17"
65
- ],
66
- "zLayers": [0]
67
- },
68
- {
69
- "type": "rect",
70
- "width": 1,
71
- "center": {
72
- "x": -2.15,
73
- "y": 0
74
- },
75
- "height": 0.6,
76
- "layers": ["top"],
77
- "connectedTo": [
78
- "pcb_smtpad_2",
79
- "connectivity_net24",
80
- "source_trace_9",
81
- "source_port_16",
82
- "source_trace_1",
83
- "source_port_2",
84
- "source_net_1",
85
- "pcb_smtpad_2",
86
- "pcb_port_2",
87
- "pcb_smtpad_16",
88
- "pcb_port_16"
89
- ],
90
- "zLayers": [0]
91
- },
92
- {
93
- "type": "rect",
94
- "width": 1,
95
- "center": {
96
- "x": -2.15,
97
- "y": -1.27
98
- },
99
- "height": 0.6,
100
- "layers": ["top"],
101
- "connectedTo": [
102
- "pcb_smtpad_3",
103
- "connectivity_net26",
104
- "source_trace_10",
105
- "source_port_17",
106
- "source_trace_6",
107
- "source_port_13",
108
- "source_trace_4",
109
- "source_port_11",
110
- "source_trace_2",
111
- "source_port_3",
112
- "source_trace_0",
113
- "source_port_1",
114
- "source_net_0",
115
- "pcb_smtpad_1",
116
- "pcb_port_1",
117
- "pcb_smtpad_3",
118
- "pcb_port_3",
119
- "pcb_smtpad_11",
120
- "pcb_port_11",
121
- "pcb_smtpad_13",
122
- "pcb_port_13",
123
- "pcb_smtpad_17",
124
- "pcb_port_17"
125
- ],
126
- "zLayers": [0]
127
- },
128
- {
129
- "type": "rect",
130
- "width": 1,
131
- "center": {
132
- "x": -2.15,
133
- "y": -2.54
134
- },
135
- "height": 0.6,
136
- "layers": ["top"],
137
- "connectedTo": [
138
- "pcb_smtpad_4",
139
- "connectivity_net74",
140
- "source_port_4",
141
- "pcb_smtpad_4",
142
- "pcb_port_4"
143
- ],
144
- "zLayers": [0]
145
- },
146
- {
147
- "type": "rect",
148
- "width": 1,
149
- "center": {
150
- "x": 2.15,
151
- "y": -2.54
152
- },
153
- "height": 0.6,
154
- "layers": ["top"],
155
- "connectedTo": [
156
- "pcb_smtpad_5",
157
- "connectivity_net13",
158
- "source_trace_5",
159
- "source_port_12",
160
- "source_port_5",
161
- "pcb_smtpad_5",
162
- "pcb_port_5",
163
- "pcb_smtpad_12",
164
- "pcb_port_12"
165
- ],
166
- "zLayers": [0]
167
- },
168
- {
169
- "type": "rect",
170
- "width": 1,
171
- "center": {
172
- "x": 2.15,
173
- "y": -1.27
174
- },
175
- "height": 0.6,
176
- "layers": ["top"],
177
- "connectedTo": [
178
- "pcb_smtpad_6",
179
- "connectivity_net21",
180
- "source_trace_8",
181
- "source_port_15",
182
- "source_port_6",
183
- "pcb_smtpad_6",
184
- "pcb_port_6",
185
- "pcb_smtpad_15",
186
- "pcb_port_15"
187
- ],
188
- "zLayers": [0]
189
- },
190
- {
191
- "type": "rect",
192
- "width": 1,
193
- "center": {
194
- "x": 2.15,
195
- "y": 0
196
- },
197
- "height": 0.6,
198
- "layers": ["top"],
199
- "connectedTo": [
200
- "pcb_smtpad_7",
201
- "connectivity_net18",
202
- "source_trace_7",
203
- "source_port_14",
204
- "source_port_7",
205
- "pcb_smtpad_7",
206
- "pcb_port_7",
207
- "pcb_smtpad_14",
208
- "pcb_port_14"
209
- ],
210
- "zLayers": [0]
211
- },
212
- {
213
- "type": "rect",
214
- "width": 1,
215
- "center": {
216
- "x": 2.15,
217
- "y": 1.27
218
- },
219
- "height": 0.6,
220
- "layers": ["top"],
221
- "connectedTo": [
222
- "pcb_smtpad_8",
223
- "connectivity_net31",
224
- "source_trace_12",
225
- "source_port_19",
226
- "source_port_8",
227
- "pcb_smtpad_8",
228
- "pcb_port_8",
229
- "pcb_smtpad_19",
230
- "pcb_port_19"
231
- ],
232
- "zLayers": [0]
233
- },
234
- {
235
- "type": "rect",
236
- "width": 1,
237
- "center": {
238
- "x": 2.15,
239
- "y": 2.54
240
- },
241
- "height": 0.6,
242
- "layers": ["top"],
243
- "connectedTo": [
244
- "pcb_smtpad_9",
245
- "connectivity_net28",
246
- "source_trace_11",
247
- "source_port_18",
248
- "source_port_9",
249
- "pcb_smtpad_9",
250
- "pcb_port_9",
251
- "pcb_smtpad_18",
252
- "pcb_port_18"
253
- ],
254
- "zLayers": [0]
255
- },
256
- {
257
- "type": "rect",
258
- "width": 0.54,
259
- "center": {
260
- "x": -2.1500000000000004,
261
- "y": 4.16
262
- },
263
- "height": 0.64,
264
- "layers": ["top"],
265
- "connectedTo": [
266
- "pcb_smtpad_10",
267
- "connectivity_net8",
268
- "source_trace_3",
269
- "source_port_10",
270
- "source_port_0",
271
- "pcb_smtpad_0",
272
- "pcb_port_0",
273
- "pcb_smtpad_10",
274
- "pcb_port_10"
275
- ],
276
- "zLayers": [0]
277
- },
278
- {
279
- "type": "rect",
280
- "width": 0.54,
281
- "center": {
282
- "x": -1.1300000000000006,
283
- "y": 4.16
284
- },
285
- "height": 0.64,
286
- "layers": ["top"],
287
- "connectedTo": [
288
- "pcb_smtpad_11",
289
- "connectivity_net26",
290
- "source_trace_10",
291
- "source_port_17",
292
- "source_trace_6",
293
- "source_port_13",
294
- "source_trace_4",
295
- "source_port_11",
296
- "source_trace_2",
297
- "source_port_3",
298
- "source_trace_0",
299
- "source_port_1",
300
- "source_net_0",
301
- "pcb_smtpad_1",
302
- "pcb_port_1",
303
- "pcb_smtpad_3",
304
- "pcb_port_3",
305
- "pcb_smtpad_11",
306
- "pcb_port_11",
307
- "pcb_smtpad_13",
308
- "pcb_port_13",
309
- "pcb_smtpad_17",
310
- "pcb_port_17"
311
- ],
312
- "zLayers": [0]
313
- },
314
- {
315
- "type": "rect",
316
- "width": 0.64,
317
- "center": {
318
- "x": 3.97,
319
- "y": -3.2861261293105146
320
- },
321
- "height": 0.54,
322
- "layers": ["top"],
323
- "connectedTo": [
324
- "pcb_smtpad_12",
325
- "connectivity_net13",
326
- "source_trace_5",
327
- "source_port_12",
328
- "source_port_5",
329
- "pcb_smtpad_5",
330
- "pcb_port_5",
331
- "pcb_smtpad_12",
332
- "pcb_port_12"
333
- ],
334
- "zLayers": [0]
335
- },
336
- {
337
- "type": "rect",
338
- "width": 0.64,
339
- "center": {
340
- "x": 3.97,
341
- "y": -4.306126129310514
342
- },
343
- "height": 0.54,
344
- "layers": ["top"],
345
- "connectedTo": [
346
- "pcb_smtpad_13",
347
- "connectivity_net26",
348
- "source_trace_10",
349
- "source_port_17",
350
- "source_trace_6",
351
- "source_port_13",
352
- "source_trace_4",
353
- "source_port_11",
354
- "source_trace_2",
355
- "source_port_3",
356
- "source_trace_0",
357
- "source_port_1",
358
- "source_net_0",
359
- "pcb_smtpad_1",
360
- "pcb_port_1",
361
- "pcb_smtpad_3",
362
- "pcb_port_3",
363
- "pcb_smtpad_11",
364
- "pcb_port_11",
365
- "pcb_smtpad_13",
366
- "pcb_port_13",
367
- "pcb_smtpad_17",
368
- "pcb_port_17"
369
- ],
370
- "zLayers": [0]
371
- },
372
- {
373
- "type": "rect",
374
- "width": 1,
375
- "center": {
376
- "x": 4.15,
377
- "y": 0.8238738706894861
378
- },
379
- "height": 0.6,
380
- "layers": ["top"],
381
- "connectedTo": [
382
- "pcb_smtpad_14",
383
- "connectivity_net18",
384
- "source_trace_7",
385
- "source_port_14",
386
- "source_port_7",
387
- "pcb_smtpad_7",
388
- "pcb_port_7",
389
- "pcb_smtpad_14",
390
- "pcb_port_14"
391
- ],
392
- "zLayers": [0]
393
- },
394
- {
395
- "type": "rect",
396
- "width": 1,
397
- "center": {
398
- "x": 4.15,
399
- "y": -0.4461261293105139
400
- },
401
- "height": 0.6,
402
- "layers": ["top"],
403
- "connectedTo": [
404
- "pcb_smtpad_15",
405
- "connectivity_net21",
406
- "source_trace_8",
407
- "source_port_15",
408
- "source_port_6",
409
- "pcb_smtpad_6",
410
- "pcb_port_6",
411
- "pcb_smtpad_15",
412
- "pcb_port_15"
413
- ],
414
- "zLayers": [0]
415
- },
416
- {
417
- "type": "rect",
418
- "width": 1,
419
- "center": {
420
- "x": 4.15,
421
- "y": -1.716126129310514
422
- },
423
- "height": 0.6,
424
- "layers": ["top"],
425
- "connectedTo": [
426
- "pcb_smtpad_16",
427
- "connectivity_net24",
428
- "source_trace_9",
429
- "source_port_16",
430
- "source_trace_1",
431
- "source_port_2",
432
- "source_net_1",
433
- "pcb_smtpad_2",
434
- "pcb_port_2",
435
- "pcb_smtpad_16",
436
- "pcb_port_16"
437
- ],
438
- "zLayers": [0]
439
- },
440
- {
441
- "type": "rect",
442
- "width": 1,
443
- "center": {
444
- "x": 8.45,
445
- "y": -1.716126129310514
446
- },
447
- "height": 0.6,
448
- "layers": ["top"],
449
- "connectedTo": [
450
- "pcb_smtpad_17",
451
- "connectivity_net26",
452
- "source_trace_10",
453
- "source_port_17",
454
- "source_trace_6",
455
- "source_port_13",
456
- "source_trace_4",
457
- "source_port_11",
458
- "source_trace_2",
459
- "source_port_3",
460
- "source_trace_0",
461
- "source_port_1",
462
- "source_net_0",
463
- "pcb_smtpad_1",
464
- "pcb_port_1",
465
- "pcb_smtpad_3",
466
- "pcb_port_3",
467
- "pcb_smtpad_11",
468
- "pcb_port_11",
469
- "pcb_smtpad_13",
470
- "pcb_port_13",
471
- "pcb_smtpad_17",
472
- "pcb_port_17"
473
- ],
474
- "zLayers": [0]
475
- },
476
- {
477
- "type": "rect",
478
- "width": 1,
479
- "center": {
480
- "x": 8.45,
481
- "y": -0.4461261293105139
482
- },
483
- "height": 0.6,
484
- "layers": ["top"],
485
- "connectedTo": [
486
- "pcb_smtpad_18",
487
- "connectivity_net28",
488
- "source_trace_11",
489
- "source_port_18",
490
- "source_port_9",
491
- "pcb_smtpad_9",
492
- "pcb_port_9",
493
- "pcb_smtpad_18",
494
- "pcb_port_18"
495
- ],
496
- "zLayers": [0]
497
- },
498
- {
499
- "type": "rect",
500
- "width": 1,
501
- "center": {
502
- "x": 8.45,
503
- "y": 0.8238738706894861
504
- },
505
- "height": 0.6,
506
- "layers": ["top"],
507
- "connectedTo": [
508
- "pcb_smtpad_19",
509
- "connectivity_net31",
510
- "source_trace_12",
511
- "source_port_19",
512
- "source_port_8",
513
- "pcb_smtpad_8",
514
- "pcb_port_8",
515
- "pcb_smtpad_19",
516
- "pcb_port_19"
517
- ],
518
- "zLayers": [0]
519
- },
520
- {
521
- "type": "rect",
522
- "width": 20,
523
- "center": {
524
- "x": 0,
525
- "y": 0
526
- },
527
- "height": 10,
528
- "layers": ["bottom"],
529
- "connectedTo": [
530
- "source_net_0",
531
- "unnamedsubcircuit760_connectivity_net0",
532
- "connectivity_net26",
533
- "source_trace_10",
534
- "source_port_17",
535
- "source_trace_6",
536
- "source_port_13",
537
- "source_trace_4",
538
- "source_port_11",
539
- "source_trace_2",
540
- "source_port_3",
541
- "source_trace_0",
542
- "source_port_1",
543
- "source_net_0",
544
- "pcb_smtpad_1",
545
- "pcb_port_1",
546
- "pcb_smtpad_3",
547
- "pcb_port_3",
548
- "pcb_smtpad_11",
549
- "pcb_port_11",
550
- "pcb_smtpad_13",
551
- "pcb_port_13",
552
- "pcb_smtpad_17",
553
- "pcb_port_17"
554
- ],
555
- "isCopperPour": true,
556
- "zLayers": [3]
557
- },
558
- {
559
- "type": "rect",
560
- "width": 20,
561
- "center": {
562
- "x": 0,
563
- "y": 0
564
- },
565
- "height": 10,
566
- "layers": ["inner2"],
567
- "connectedTo": [
568
- "source_net_1",
569
- "unnamedsubcircuit760_connectivity_net1",
570
- "connectivity_net24",
571
- "source_trace_9",
572
- "source_port_16",
573
- "source_trace_1",
574
- "source_port_2",
575
- "source_net_1",
576
- "pcb_smtpad_2",
577
- "pcb_port_2",
578
- "pcb_smtpad_16",
579
- "pcb_port_16"
580
- ],
581
- "isCopperPour": true,
582
- "zLayers": [2]
583
- },
584
- {
585
- "obstacleId": "escape-via-obstacle:escape-via:source_trace_9:pcb_port_16:inner2:0",
586
- "type": "rect",
587
- "layers": ["top", "inner1", "inner2"],
588
- "zLayers": [0, 1, 2],
589
- "center": {
590
- "x": 3.3500000000000005,
591
- "y": -1.716126129310514
592
- },
593
- "width": 0.3,
594
- "height": 0.3,
595
- "connectedTo": ["source_trace_9"]
596
- },
597
- {
598
- "obstacleId": "escape-via-obstacle:escape-via:source_net_1:pcb_port_2:inner2:2",
599
- "type": "rect",
600
- "layers": ["top", "inner1", "inner2"],
601
- "zLayers": [0, 1, 2],
602
- "center": {
603
- "x": -1.3499999999999999,
604
- "y": 0
605
- },
606
- "width": 0.3,
607
- "height": 0.3,
608
- "connectedTo": ["source_net_1"]
609
- },
610
- {
611
- "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_11:bottom:3",
612
- "type": "rect",
613
- "layers": ["top", "inner1", "inner2", "bottom"],
614
- "zLayers": [0, 1, 2, 3],
615
- "center": {
616
- "x": -0.5600000000000005,
617
- "y": 4.16
618
- },
619
- "width": 0.3,
620
- "height": 0.3,
621
- "connectedTo": ["source_net_0"]
622
- },
623
- {
624
- "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_13:bottom:4",
625
- "type": "rect",
626
- "layers": ["top", "inner1", "inner2", "bottom"],
627
- "zLayers": [0, 1, 2, 3],
628
- "center": {
629
- "x": 3.3500000000000005,
630
- "y": -4.306126129310514
631
- },
632
- "width": 0.3,
633
- "height": 0.3,
634
- "connectedTo": ["source_net_0"]
635
- },
636
- {
637
- "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_1:bottom:6",
638
- "type": "rect",
639
- "layers": ["top", "inner1", "inner2", "bottom"],
640
- "zLayers": [0, 1, 2, 3],
641
- "center": {
642
- "x": -1.3499999999999999,
643
- "y": 1.27
644
- },
645
- "width": 0.3,
646
- "height": 0.3,
647
- "connectedTo": ["source_net_0"]
648
- },
649
- {
650
- "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_3:bottom:8",
651
- "type": "rect",
652
- "layers": ["top", "inner1", "inner2", "bottom"],
653
- "zLayers": [0, 1, 2, 3],
654
- "center": {
655
- "x": -1.3499999999999999,
656
- "y": -1.27
657
- },
658
- "width": 0.3,
659
- "height": 0.3,
660
- "connectedTo": ["source_net_0"]
661
- },
662
- {
663
- "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_17:bottom:9",
664
- "type": "rect",
665
- "layers": ["top", "inner1", "inner2", "bottom"],
666
- "zLayers": [0, 1, 2, 3],
667
- "center": {
668
- "x": 7.6499999999999995,
669
- "y": -1.716126129310514
670
- },
671
- "width": 0.3,
672
- "height": 0.3,
673
- "connectedTo": ["source_net_0"]
674
- }
675
- ],
676
- "layerCount": 4,
677
- "connections": [
678
- {
679
- "pointsToConnect": [
680
- {
681
- "x": -1.1300000000000006,
682
- "y": 4.16,
683
- "layer": "top",
684
- "pointId": "pcb_port_11",
685
- "pcb_port_id": "pcb_port_11"
686
- },
687
- {
688
- "x": -0.5600000000000005,
689
- "y": 4.16,
690
- "layer": "top",
691
- "pointId": "escape-via:source_net_0:pcb_port_11:bottom:3",
692
- "terminalVia": {
693
- "toLayer": "bottom",
694
- "viaDiameter": 0.3
695
- }
696
- }
697
- ],
698
- "name": "source_net_0_mst0",
699
- "rootConnectionName": "source_net_0"
700
- },
701
- {
702
- "pointsToConnect": [
703
- {
704
- "x": 3.3500000000000005,
705
- "y": -4.306126129310514,
706
- "layer": "top",
707
- "pointId": "escape-via:source_net_0:pcb_port_13:bottom:4",
708
- "terminalVia": {
709
- "toLayer": "bottom",
710
- "viaDiameter": 0.3
711
- }
712
- },
713
- {
714
- "x": 3.97,
715
- "y": -4.306126129310514,
716
- "layer": "top",
717
- "pointId": "pcb_port_13",
718
- "pcb_port_id": "pcb_port_13"
719
- }
720
- ],
721
- "name": "source_net_0_mst1",
722
- "rootConnectionName": "source_net_0"
723
- },
724
- {
725
- "pointsToConnect": [
726
- {
727
- "x": 7.6499999999999995,
728
- "y": -1.716126129310514,
729
- "layer": "top",
730
- "pointId": "escape-via:source_net_0:pcb_port_17:bottom:9",
731
- "terminalVia": {
732
- "toLayer": "bottom",
733
- "viaDiameter": 0.3
734
- }
735
- },
736
- {
737
- "x": 8.45,
738
- "y": -1.716126129310514,
739
- "layer": "top",
740
- "pointId": "pcb_port_17",
741
- "pcb_port_id": "pcb_port_17"
742
- }
743
- ],
744
- "name": "source_net_0_mst2",
745
- "rootConnectionName": "source_net_0"
746
- },
747
- {
748
- "pointsToConnect": [
749
- {
750
- "x": -2.15,
751
- "y": 1.27,
752
- "layer": "top",
753
- "pointId": "pcb_port_1",
754
- "pcb_port_id": "pcb_port_1"
755
- },
756
- {
757
- "x": -1.3499999999999999,
758
- "y": 1.27,
759
- "layer": "top",
760
- "pointId": "escape-via:source_net_0:pcb_port_1:bottom:6",
761
- "terminalVia": {
762
- "toLayer": "bottom",
763
- "viaDiameter": 0.3
764
- }
765
- }
766
- ],
767
- "name": "source_net_0_mst3",
768
- "rootConnectionName": "source_net_0"
769
- },
770
- {
771
- "pointsToConnect": [
772
- {
773
- "x": -2.15,
774
- "y": -1.27,
775
- "layer": "top",
776
- "pointId": "pcb_port_3",
777
- "pcb_port_id": "pcb_port_3"
778
- },
779
- {
780
- "x": -1.3499999999999999,
781
- "y": -1.27,
782
- "layer": "top",
783
- "pointId": "escape-via:source_net_0:pcb_port_3:bottom:8",
784
- "terminalVia": {
785
- "toLayer": "bottom",
786
- "viaDiameter": 0.3
787
- }
788
- }
789
- ],
790
- "name": "source_net_0_mst4",
791
- "rootConnectionName": "source_net_0"
792
- },
793
- {
794
- "name": "source_trace_12",
795
- "pointsToConnect": [
796
- {
797
- "x": 8.45,
798
- "y": 0.8238738706894861,
799
- "layer": "top",
800
- "pointId": "pcb_port_19",
801
- "pcb_port_id": "pcb_port_19"
802
- },
803
- {
804
- "x": 2.15,
805
- "y": 1.27,
806
- "layer": "top",
807
- "pointId": "pcb_port_8",
808
- "pcb_port_id": "pcb_port_8"
809
- }
810
- ],
811
- "source_trace_id": "source_trace_12",
812
- "rootConnectionName": "source_trace_12"
813
- },
814
- {
815
- "name": "source_trace_11",
816
- "pointsToConnect": [
817
- {
818
- "x": 8.45,
819
- "y": -0.4461261293105139,
820
- "layer": "top",
821
- "pointId": "pcb_port_18",
822
- "pcb_port_id": "pcb_port_18"
823
- },
824
- {
825
- "x": 2.15,
826
- "y": 2.54,
827
- "layer": "top",
828
- "pointId": "pcb_port_9",
829
- "pcb_port_id": "pcb_port_9"
830
- }
831
- ],
832
- "source_trace_id": "source_trace_11",
833
- "rootConnectionName": "source_trace_11"
834
- },
835
- {
836
- "pointsToConnect": [
837
- {
838
- "x": 3.3500000000000005,
839
- "y": -1.716126129310514,
840
- "layer": "top",
841
- "pointId": "escape-via:source_trace_9:pcb_port_16:inner2:0",
842
- "terminalVia": {
843
- "toLayer": "inner2",
844
- "viaDiameter": 0.3
845
- }
846
- },
847
- {
848
- "x": 4.15,
849
- "y": -1.716126129310514,
850
- "layer": "top",
851
- "pointId": "pcb_port_16",
852
- "pcb_port_id": "pcb_port_16"
853
- }
854
- ],
855
- "name": "source_trace_9__source_net_1_mst0",
856
- "rootConnectionName": "source_trace_9__source_net_1",
857
- "mergedConnectionNames": {
858
- "$ref": "$.simpleRouteJson.connections[8].mergedConnectionNames"
859
- }
860
- },
861
- {
862
- "pointsToConnect": [
863
- {
864
- "x": -2.15,
865
- "y": 0,
866
- "layer": "top",
867
- "pointId": "pcb_port_2",
868
- "pcb_port_id": "pcb_port_2"
869
- },
870
- {
871
- "x": -1.3499999999999999,
872
- "y": 0,
873
- "layer": "top",
874
- "pointId": "escape-via:source_net_1:pcb_port_2:inner2:2",
875
- "terminalVia": {
876
- "toLayer": "inner2",
877
- "viaDiameter": 0.3
878
- }
879
- }
880
- ],
881
- "name": "source_trace_9__source_net_1_mst1",
882
- "rootConnectionName": "source_trace_9__source_net_1",
883
- "mergedConnectionNames": ["source_trace_9", "source_net_1"]
884
- },
885
- {
886
- "name": "source_trace_8",
887
- "pointsToConnect": [
888
- {
889
- "x": 4.15,
890
- "y": -0.4461261293105139,
891
- "layer": "top",
892
- "pointId": "pcb_port_15",
893
- "pcb_port_id": "pcb_port_15"
894
- },
895
- {
896
- "x": 2.15,
897
- "y": -1.27,
898
- "layer": "top",
899
- "pointId": "pcb_port_6",
900
- "pcb_port_id": "pcb_port_6"
901
- }
902
- ],
903
- "source_trace_id": "source_trace_8",
904
- "rootConnectionName": "source_trace_8"
905
- },
906
- {
907
- "name": "source_trace_7",
908
- "pointsToConnect": [
909
- {
910
- "x": 4.15,
911
- "y": 0.8238738706894861,
912
- "layer": "top",
913
- "pointId": "pcb_port_14",
914
- "pcb_port_id": "pcb_port_14"
915
- },
916
- {
917
- "x": 2.15,
918
- "y": 0,
919
- "layer": "top",
920
- "pointId": "pcb_port_7",
921
- "pcb_port_id": "pcb_port_7"
922
- }
923
- ],
924
- "source_trace_id": "source_trace_7",
925
- "rootConnectionName": "source_trace_7"
926
- },
927
- {
928
- "name": "source_trace_5",
929
- "pointsToConnect": [
930
- {
931
- "x": 3.97,
932
- "y": -3.2861261293105146,
933
- "layer": "top",
934
- "pointId": "pcb_port_12",
935
- "pcb_port_id": "pcb_port_12"
936
- },
937
- {
938
- "x": 2.15,
939
- "y": -2.54,
940
- "layer": "top",
941
- "pointId": "pcb_port_5",
942
- "pcb_port_id": "pcb_port_5"
943
- }
944
- ],
945
- "source_trace_id": "source_trace_5",
946
- "rootConnectionName": "source_trace_5"
947
- },
948
- {
949
- "name": "source_trace_3",
950
- "pointsToConnect": [
951
- {
952
- "x": -2.1500000000000004,
953
- "y": 4.16,
954
- "layer": "top",
955
- "pointId": "pcb_port_10",
956
- "pcb_port_id": "pcb_port_10"
957
- },
958
- {
959
- "x": -2.15,
960
- "y": 2.54,
961
- "layer": "top",
962
- "pointId": "pcb_port_0",
963
- "pcb_port_id": "pcb_port_0"
964
- }
965
- ],
966
- "source_trace_id": "source_trace_3",
967
- "rootConnectionName": "source_trace_3"
968
- }
969
- ],
970
- "minTraceWidth": 0.15
971
- }
972
- }