@tscircuit/schematic-trace-solver 0.0.41 → 0.0.42

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 (46) hide show
  1. package/dist/index.d.ts +118 -7
  2. package/dist/index.js +760 -432
  3. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +30 -17
  4. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +94 -192
  5. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +13 -24
  6. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/LabelMergingSolver/LabelMergingSolver.ts +205 -0
  7. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/OverlapAvoidanceStepSolver/OverlapAvoidanceStepSolver.ts +144 -0
  8. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +117 -0
  9. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver/TraceCleanupSolver.ts +132 -0
  10. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{balanceLShapes.ts → sub-solvers/TraceCleanupSolver/balanceLShapes.ts} +12 -10
  11. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{hasCollisions.ts → sub-solvers/TraceCleanupSolver/hasCollisions.ts} +1 -1
  12. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{hasCollisionsWithLabels.ts → sub-solvers/TraceCleanupSolver/hasCollisionsWithLabels.ts} +1 -1
  13. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{minimizeTurnsWithFilteredLabels.ts → sub-solvers/TraceCleanupSolver/minimizeTurnsWithFilteredLabels.ts} +6 -6
  14. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{simplifyPath.ts → sub-solvers/TraceCleanupSolver/simplifyPath.ts} +1 -1
  15. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{turnMinimization.ts → sub-solvers/TraceCleanupSolver/turnMinimization.ts} +0 -2
  16. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/tryFourPointDetour.ts +104 -0
  17. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/trySnipAndReconnect.ts +24 -154
  18. package/package.json +1 -1
  19. package/tests/assets/1.input.json +379 -0
  20. package/tests/assets/2.input.json +330 -0
  21. package/tests/assets/3.input.json +388 -0
  22. package/tests/assets/MergedNetLabelObstacles.test.input.json +154 -0
  23. package/tests/assets/OverlapAvoidanceStepSolver.test.input.json +682 -0
  24. package/tests/assets/SingleOverlapSolver.test.input.json +170 -0
  25. package/tests/assets/TraceCleanupSolver.test.input.json +216 -0
  26. package/tests/assets/TraceLabelOverlapAvoidanceSolver.test.input.json +424 -0
  27. package/tests/examples/__snapshots__/example25.snap.svg +3 -3
  28. package/tests/examples/__snapshots__/example26.snap.svg +3 -3
  29. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.test.ts +18 -0
  30. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +243 -0
  31. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView01.snap.svg +223 -0
  32. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView02.snap.svg +205 -0
  33. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView03.snap.svg +184 -0
  34. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/renderComparisonView01.test.ts +29 -0
  35. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/renderComparisonView02.test.ts +27 -0
  36. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/renderComparisonView03.test.ts +39 -0
  37. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/MergedNetLabelObstacles.test.ts +14 -0
  38. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/OverlapAvoidanceStepSolver.test.ts +20 -0
  39. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/SingleOverlapSolver.test.ts +10 -0
  40. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/TraceCleanupSolver.test.ts +19 -0
  41. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +140 -0
  42. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +216 -0
  43. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +125 -0
  44. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/TraceCleanupSolver.snap.svg +119 -0
  45. /package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{countTurns.ts → sub-solvers/TraceCleanupSolver/countTurns.ts} +0 -0
  46. /package/lib/solvers/TraceLabelOverlapAvoidanceSolver/{tryConnectPoints.ts → sub-solvers/TraceCleanupSolver/tryConnectPoints.ts} +0 -0
@@ -0,0 +1,379 @@
1
+ {
2
+ "mergedNetLabelObstacleSolver": {
3
+ "netLabelPlacements": [
4
+ {
5
+ "globalConnNetId": "connectivity_net0",
6
+ "dcConnNetId": "connectivity_net0",
7
+ "netId": "GND",
8
+ "mspConnectionPairIds": ["U1.1-J1.3"],
9
+ "pinIds": ["U1.1", "J1.3"],
10
+ "orientation": "y-",
11
+ "anchorPoint": {
12
+ "x": 1.4000000000000001,
13
+ "y": -2.295
14
+ },
15
+ "width": 0.2,
16
+ "height": 0.45,
17
+ "center": {
18
+ "x": 1.4000000000000001,
19
+ "y": -2.52
20
+ }
21
+ },
22
+ {
23
+ "globalConnNetId": "connectivity_net1",
24
+ "netId": "VCC",
25
+ "mspConnectionPairIds": [],
26
+ "pinIds": ["U1.8"],
27
+ "orientation": "x+",
28
+ "anchorPoint": {
29
+ "x": 1.2000000000000002,
30
+ "y": 0.30000000000000004
31
+ },
32
+ "width": 0.45,
33
+ "height": 0.2,
34
+ "center": {
35
+ "x": 1.4260000000000002,
36
+ "y": 0.30000000000000004
37
+ }
38
+ },
39
+ {
40
+ "globalConnNetId": "connectivity_net1",
41
+ "netId": "VCC",
42
+ "mspConnectionPairIds": [],
43
+ "pinIds": ["J1.1"],
44
+ "orientation": "x-",
45
+ "anchorPoint": {
46
+ "x": 1.6,
47
+ "y": -1.895
48
+ },
49
+ "width": 0.45,
50
+ "height": 0.2,
51
+ "center": {
52
+ "x": 1.374,
53
+ "y": -1.895
54
+ }
55
+ },
56
+ {
57
+ "globalConnNetId": "connectivity_net2",
58
+ "netId": "MMM",
59
+ "mspConnectionPairIds": [],
60
+ "pinIds": ["J1.2"],
61
+ "orientation": "x-",
62
+ "anchorPoint": {
63
+ "x": 1.6,
64
+ "y": -2.095
65
+ },
66
+ "width": 0.45,
67
+ "height": 0.2,
68
+ "center": {
69
+ "x": 1.374,
70
+ "y": -2.095
71
+ }
72
+ }
73
+ ],
74
+ "inputProblem": {
75
+ "chips": [
76
+ {
77
+ "chipId": "schematic_component_0",
78
+ "center": {
79
+ "x": 0,
80
+ "y": 0
81
+ },
82
+ "width": 2.4000000000000004,
83
+ "height": 1,
84
+ "pins": [
85
+ {
86
+ "pinId": "U1.1",
87
+ "x": 1.2000000000000002,
88
+ "y": -0.30000000000000004
89
+ },
90
+ {
91
+ "pinId": "U1.2",
92
+ "x": -1.2000000000000002,
93
+ "y": -0.30000000000000004
94
+ },
95
+ {
96
+ "pinId": "U1.3",
97
+ "x": 1.2000000000000002,
98
+ "y": 0.09999999999999998
99
+ },
100
+ {
101
+ "pinId": "U1.4",
102
+ "x": -1.2000000000000002,
103
+ "y": 0.30000000000000004
104
+ },
105
+ {
106
+ "pinId": "U1.5",
107
+ "x": -1.2000000000000002,
108
+ "y": 0.10000000000000003
109
+ },
110
+ {
111
+ "pinId": "U1.6",
112
+ "x": -1.2000000000000002,
113
+ "y": -0.09999999999999998
114
+ },
115
+ {
116
+ "pinId": "U1.7",
117
+ "x": 1.2000000000000002,
118
+ "y": -0.10000000000000003
119
+ },
120
+ {
121
+ "pinId": "U1.8",
122
+ "x": 1.2000000000000002,
123
+ "y": 0.30000000000000004
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "chipId": "schematic_component_1",
129
+ "center": {
130
+ "x": 2.7,
131
+ "y": -2.095
132
+ },
133
+ "width": 2.2,
134
+ "height": 0.8,
135
+ "pins": [
136
+ {
137
+ "pinId": "J1.1",
138
+ "x": 1.6,
139
+ "y": -1.895
140
+ },
141
+ {
142
+ "pinId": "J1.2",
143
+ "x": 1.6,
144
+ "y": -2.095
145
+ },
146
+ {
147
+ "pinId": "J1.3",
148
+ "x": 1.6,
149
+ "y": -2.295
150
+ }
151
+ ]
152
+ }
153
+ ],
154
+ "directConnections": [],
155
+ "netConnections": [
156
+ {
157
+ "netId": "GND",
158
+ "pinIds": ["U1.1", "J1.3"]
159
+ },
160
+ {
161
+ "netId": "VCC",
162
+ "pinIds": ["U1.8", "J1.1"]
163
+ },
164
+ {
165
+ "netId": "MMM",
166
+ "pinIds": ["J1.2"]
167
+ }
168
+ ],
169
+ "availableNetLabelOrientations": {
170
+ "VCC": ["y-"],
171
+ "OUT": ["x-", "x+"],
172
+ "GND": ["y-"],
173
+ "MMM": ["x+", "x-"]
174
+ },
175
+ "maxMspPairDistance": 2.4
176
+ },
177
+ "traces": [
178
+ {
179
+ "mspPairId": "U1.1-J1.3",
180
+ "dcConnNetId": "connectivity_net0",
181
+ "globalConnNetId": "connectivity_net0",
182
+ "userNetId": "GND",
183
+ "pins": [
184
+ {
185
+ "pinId": "U1.1",
186
+ "x": 1.2000000000000002,
187
+ "y": -0.30000000000000004,
188
+ "chipId": "schematic_component_0",
189
+ "_facingDirection": "x+"
190
+ },
191
+ {
192
+ "pinId": "J1.3",
193
+ "x": 1.6,
194
+ "y": -2.295,
195
+ "chipId": "schematic_component_1",
196
+ "_facingDirection": "x-"
197
+ }
198
+ ],
199
+ "tracePath": [
200
+ {
201
+ "x": 1.2000000000000002,
202
+ "y": -0.30000000000000004
203
+ },
204
+ {
205
+ "x": 1.4000000000000001,
206
+ "y": -0.30000000000000004
207
+ },
208
+ {
209
+ "x": 1.4000000000000001,
210
+ "y": -1.2974999999999999
211
+ },
212
+ {
213
+ "x": 1.4000000000000001,
214
+ "y": -2.295
215
+ },
216
+ {
217
+ "x": 1.6,
218
+ "y": -2.295
219
+ }
220
+ ],
221
+ "mspConnectionPairIds": ["U1.1-J1.3"],
222
+ "pinIds": ["U1.1", "J1.3"]
223
+ }
224
+ ]
225
+ },
226
+ "netLabelPlacementSolver": {
227
+ "inputProblem": {
228
+ "chips": [
229
+ {
230
+ "chipId": "schematic_component_0",
231
+ "center": {
232
+ "x": 0,
233
+ "y": 0
234
+ },
235
+ "width": 2.4000000000000004,
236
+ "height": 1,
237
+ "pins": [
238
+ {
239
+ "pinId": "U1.1",
240
+ "x": 1.2000000000000002,
241
+ "y": -0.30000000000000004
242
+ },
243
+ {
244
+ "pinId": "U1.2",
245
+ "x": -1.2000000000000002,
246
+ "y": -0.30000000000000004
247
+ },
248
+ {
249
+ "pinId": "U1.3",
250
+ "x": 1.2000000000000002,
251
+ "y": 0.09999999999999998
252
+ },
253
+ {
254
+ "pinId": "U1.4",
255
+ "x": -1.2000000000000002,
256
+ "y": 0.30000000000000004
257
+ },
258
+ {
259
+ "pinId": "U1.5",
260
+ "x": -1.2000000000000002,
261
+ "y": 0.10000000000000003
262
+ },
263
+ {
264
+ "pinId": "U1.6",
265
+ "x": -1.2000000000000002,
266
+ "y": -0.09999999999999998
267
+ },
268
+ {
269
+ "pinId": "U1.7",
270
+ "x": 1.2000000000000002,
271
+ "y": -0.10000000000000003
272
+ },
273
+ {
274
+ "pinId": "U1.8",
275
+ "x": 1.2000000000000002,
276
+ "y": 0.30000000000000004
277
+ }
278
+ ]
279
+ },
280
+ {
281
+ "chipId": "schematic_component_1",
282
+ "center": {
283
+ "x": 2.7,
284
+ "y": -2.095
285
+ },
286
+ "width": 2.2,
287
+ "height": 0.8,
288
+ "pins": [
289
+ {
290
+ "pinId": "J1.1",
291
+ "x": 1.6,
292
+ "y": -1.895
293
+ },
294
+ {
295
+ "pinId": "J1.2",
296
+ "x": 1.6,
297
+ "y": -2.095
298
+ },
299
+ {
300
+ "pinId": "J1.3",
301
+ "x": 1.6,
302
+ "y": -2.295
303
+ }
304
+ ]
305
+ }
306
+ ],
307
+ "directConnections": [],
308
+ "netConnections": [
309
+ {
310
+ "netId": "GND",
311
+ "pinIds": ["U1.1", "J1.3"]
312
+ },
313
+ {
314
+ "netId": "VCC",
315
+ "pinIds": ["U1.8", "J1.1"]
316
+ },
317
+ {
318
+ "netId": "MMM",
319
+ "pinIds": ["J1.2"]
320
+ }
321
+ ],
322
+ "availableNetLabelOrientations": {
323
+ "VCC": ["y-"],
324
+ "OUT": ["x-", "x+"],
325
+ "GND": ["y-"],
326
+ "MMM": ["x+", "x-"]
327
+ },
328
+ "maxMspPairDistance": 2.4
329
+ },
330
+ "inputTraceMap": {
331
+ "U1.1-J1.3": {
332
+ "mspPairId": "U1.1-J1.3",
333
+ "dcConnNetId": "connectivity_net0",
334
+ "globalConnNetId": "connectivity_net0",
335
+ "userNetId": "GND",
336
+ "pins": [
337
+ {
338
+ "pinId": "U1.1",
339
+ "x": 1.2000000000000002,
340
+ "y": -0.30000000000000004,
341
+ "chipId": "schematic_component_0",
342
+ "_facingDirection": "x+"
343
+ },
344
+ {
345
+ "pinId": "J1.3",
346
+ "x": 1.6,
347
+ "y": -2.295,
348
+ "chipId": "schematic_component_1",
349
+ "_facingDirection": "x-"
350
+ }
351
+ ],
352
+ "tracePath": [
353
+ {
354
+ "x": 1.2000000000000002,
355
+ "y": -0.30000000000000004
356
+ },
357
+ {
358
+ "x": 1.4000000000000001,
359
+ "y": -0.30000000000000004
360
+ },
361
+ {
362
+ "x": 1.4000000000000001,
363
+ "y": -1.2974999999999999
364
+ },
365
+ {
366
+ "x": 1.4000000000000001,
367
+ "y": -2.295
368
+ },
369
+ {
370
+ "x": 1.6,
371
+ "y": -2.295
372
+ }
373
+ ],
374
+ "mspConnectionPairIds": ["U1.1-J1.3"],
375
+ "pinIds": ["U1.1", "J1.3"]
376
+ }
377
+ }
378
+ }
379
+ }
@@ -0,0 +1,330 @@
1
+ {
2
+ "mergedNetLabelObstacleSolver": {
3
+ "netLabelPlacements": [
4
+ {
5
+ "globalConnNetId": "connectivity_net0",
6
+ "dcConnNetId": "connectivity_net0",
7
+ "netId": "GND",
8
+ "mspConnectionPairIds": ["U1.1-J1.3"],
9
+ "pinIds": ["U1.1", "J1.3"],
10
+ "orientation": "y-",
11
+ "anchorPoint": { "x": 1.4000000000000001, "y": -2.295 },
12
+ "width": 0.2,
13
+ "height": 0.45,
14
+ "center": { "x": 1.4000000000000001, "y": -2.52 }
15
+ },
16
+ {
17
+ "globalConnNetId": "connectivity_net1",
18
+ "netId": "VCC",
19
+ "mspConnectionPairIds": [],
20
+ "pinIds": ["U1.8"],
21
+ "orientation": "x+",
22
+ "anchorPoint": { "x": 1.2000000000000002, "y": 0.30000000000000004 },
23
+ "width": 0.45,
24
+ "height": 0.2,
25
+ "center": { "x": 1.4260000000000002, "y": 0.30000000000000004 }
26
+ },
27
+ {
28
+ "globalConnNetId": "connectivity_net1",
29
+ "netId": "VCC",
30
+ "mspConnectionPairIds": [],
31
+ "pinIds": ["J1.1"],
32
+ "orientation": "x-",
33
+ "anchorPoint": { "x": 1.6, "y": -1.895 },
34
+ "width": 0.45,
35
+ "height": 0.2,
36
+ "center": { "x": 1.374, "y": -1.895 }
37
+ },
38
+ {
39
+ "globalConnNetId": "connectivity_net2",
40
+ "netId": "MMM",
41
+ "mspConnectionPairIds": [],
42
+ "pinIds": ["J1.2"],
43
+ "orientation": "x-",
44
+ "anchorPoint": { "x": 1.6, "y": -2.095 },
45
+ "width": 0.45,
46
+ "height": 0.2,
47
+ "center": { "x": 1.374, "y": -2.095 }
48
+ }
49
+ ],
50
+ "inputProblem": {
51
+ "chips": [
52
+ {
53
+ "chipId": "schematic_component_0",
54
+ "center": { "x": 0, "y": 0 },
55
+ "width": 2.4000000000000004,
56
+ "height": 1,
57
+ "pins": [
58
+ {
59
+ "pinId": "U1.1",
60
+ "x": 1.2000000000000002,
61
+ "y": -0.30000000000000004
62
+ },
63
+ {
64
+ "pinId": "U1.2",
65
+ "x": -1.2000000000000002,
66
+ "y": -0.30000000000000004
67
+ },
68
+ {
69
+ "pinId": "U1.3",
70
+ "x": 1.2000000000000002,
71
+ "y": 0.09999999999999998
72
+ },
73
+ {
74
+ "pinId": "U1.4",
75
+ "x": -1.2000000000000002,
76
+ "y": 0.30000000000000004
77
+ },
78
+ {
79
+ "pinId": "U1.5",
80
+ "x": -1.2000000000000002,
81
+ "y": 0.10000000000000003
82
+ },
83
+ {
84
+ "pinId": "U1.6",
85
+ "x": -1.2000000000000002,
86
+ "y": -0.09999999999999998
87
+ },
88
+ {
89
+ "pinId": "U1.7",
90
+ "x": 1.2000000000000002,
91
+ "y": -0.10000000000000003
92
+ },
93
+ {
94
+ "pinId": "U1.8",
95
+ "x": 1.2000000000000002,
96
+ "y": 0.30000000000000004
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "chipId": "schematic_component_1",
102
+ "center": { "x": 2.7, "y": -2.095 },
103
+ "width": 2.2,
104
+ "height": 0.8,
105
+ "pins": [
106
+ { "pinId": "J1.1", "x": 1.6, "y": -1.895 },
107
+ { "pinId": "J1.2", "x": 1.6, "y": -2.095 },
108
+ { "pinId": "J1.3", "x": 1.6, "y": -2.295 }
109
+ ]
110
+ }
111
+ ],
112
+ "directConnections": [],
113
+ "netConnections": [
114
+ { "netId": "GND", "pinIds": ["U1.1", "J1.3"] },
115
+ { "netId": "VCC", "pinIds": ["U1.8", "J1.1"] },
116
+ { "netId": "MMM", "pinIds": ["J1.2"] }
117
+ ],
118
+ "availableNetLabelOrientations": {
119
+ "VCC": ["y-"],
120
+ "OUT": ["x-", "x+"],
121
+ "GND": ["y-"],
122
+ "MMM": ["x+", "x-"]
123
+ },
124
+ "maxMspPairDistance": 2.4
125
+ },
126
+ "traces": [
127
+ {
128
+ "mspPairId": "U1.1-J1.3",
129
+ "dcConnNetId": "connectivity_net0",
130
+ "globalConnNetId": "connectivity_net0",
131
+ "userNetId": "GND",
132
+ "pins": [
133
+ {
134
+ "pinId": "U1.1",
135
+ "x": 1.2000000000000002,
136
+ "y": -0.30000000000000004,
137
+ "chipId": "schematic_component_0",
138
+ "_facingDirection": "x+"
139
+ },
140
+ {
141
+ "pinId": "J1.3",
142
+ "x": 1.6,
143
+ "y": -2.295,
144
+ "chipId": "schematic_component_1",
145
+ "_facingDirection": "x-"
146
+ }
147
+ ],
148
+ "tracePath": [
149
+ { "x": 1.2000000000000002, "y": -0.30000000000000004 },
150
+ { "x": 1.4000000000000001, "y": -0.30000000000000004 },
151
+ { "x": 1.4000000000000001, "y": -1.2974999999999999 },
152
+ { "x": 1.4000000000000001, "y": -2.295 },
153
+ { "x": 1.6, "y": -2.295 }
154
+ ],
155
+ "mspConnectionPairIds": ["U1.1-J1.3"],
156
+ "pinIds": ["U1.1", "J1.3"]
157
+ }
158
+ ]
159
+ },
160
+ "singleOverlapSolver": {
161
+ "trace": {
162
+ "mspPairId": "U1.1-J1.3",
163
+ "dcConnNetId": "connectivity_net0",
164
+ "globalConnNetId": "connectivity_net0",
165
+ "userNetId": "GND",
166
+ "pins": [
167
+ {
168
+ "pinId": "U1.1",
169
+ "x": 1.2000000000000002,
170
+ "y": -0.30000000000000004,
171
+ "chipId": "schematic_component_0",
172
+ "_facingDirection": "x+"
173
+ },
174
+ {
175
+ "pinId": "J1.3",
176
+ "x": 1.6,
177
+ "y": -2.295,
178
+ "chipId": "schematic_component_1",
179
+ "_facingDirection": "x-"
180
+ }
181
+ ],
182
+ "tracePath": [
183
+ {
184
+ "x": 1.2000000000000002,
185
+ "y": -0.30000000000000004
186
+ },
187
+ {
188
+ "x": 1.4000000000000001,
189
+ "y": -0.30000000000000004
190
+ },
191
+ {
192
+ "x": 1.4000000000000001,
193
+ "y": -1.2974999999999999
194
+ },
195
+ {
196
+ "x": 1.4000000000000001,
197
+ "y": -2.295
198
+ },
199
+ {
200
+ "x": 1.6,
201
+ "y": -2.295
202
+ }
203
+ ],
204
+ "mspConnectionPairIds": ["U1.1-J1.3"],
205
+ "pinIds": ["U1.1", "J1.3"]
206
+ },
207
+ "label": {
208
+ "globalConnNetId": "merged-group-J1-x-",
209
+ "netId": "VCC",
210
+ "mspConnectionPairIds": [],
211
+ "pinIds": ["J1.1", "J1.2"],
212
+ "orientation": "x-",
213
+ "anchorPoint": {
214
+ "x": 1.6,
215
+ "y": -1.895
216
+ },
217
+ "width": 0.4500000000000002,
218
+ "height": 0.40000000000000036,
219
+ "center": {
220
+ "x": 1.374,
221
+ "y": -1.995
222
+ }
223
+ },
224
+ "problem": {
225
+ "chips": [
226
+ {
227
+ "chipId": "schematic_component_0",
228
+ "center": {
229
+ "x": 0,
230
+ "y": 0
231
+ },
232
+ "width": 2.4000000000000004,
233
+ "height": 1,
234
+ "pins": [
235
+ {
236
+ "pinId": "U1.1",
237
+ "x": 1.2000000000000002,
238
+ "y": -0.30000000000000004
239
+ },
240
+ {
241
+ "pinId": "U1.2",
242
+ "x": -1.2000000000000002,
243
+ "y": -0.30000000000000004
244
+ },
245
+ {
246
+ "pinId": "U1.3",
247
+ "x": 1.2000000000000002,
248
+ "y": 0.09999999999999998
249
+ },
250
+ {
251
+ "pinId": "U1.4",
252
+ "x": -1.2000000000000002,
253
+ "y": 0.30000000000000004
254
+ },
255
+ {
256
+ "pinId": "U1.5",
257
+ "x": -1.2000000000000002,
258
+ "y": 0.10000000000000003
259
+ },
260
+ {
261
+ "pinId": "U1.6",
262
+ "x": -1.2000000000000002,
263
+ "y": -0.09999999999999998
264
+ },
265
+ {
266
+ "pinId": "U1.7",
267
+ "x": 1.2000000000000002,
268
+ "y": -0.10000000000000003
269
+ },
270
+ {
271
+ "pinId": "U1.8",
272
+ "x": 1.2000000000000002,
273
+ "y": 0.30000000000000004
274
+ }
275
+ ]
276
+ },
277
+ {
278
+ "chipId": "schematic_component_1",
279
+ "center": {
280
+ "x": 2.7,
281
+ "y": -2.095
282
+ },
283
+ "width": 2.2,
284
+ "height": 0.8,
285
+ "pins": [
286
+ {
287
+ "pinId": "J1.1",
288
+ "x": 1.6,
289
+ "y": -1.895
290
+ },
291
+ {
292
+ "pinId": "J1.2",
293
+ "x": 1.6,
294
+ "y": -2.095
295
+ },
296
+ {
297
+ "pinId": "J1.3",
298
+ "x": 1.6,
299
+ "y": -2.295
300
+ }
301
+ ]
302
+ }
303
+ ],
304
+ "directConnections": [],
305
+ "netConnections": [
306
+ {
307
+ "netId": "GND",
308
+ "pinIds": ["U1.1", "J1.3"]
309
+ },
310
+ {
311
+ "netId": "VCC",
312
+ "pinIds": ["U1.8", "J1.1"]
313
+ },
314
+ {
315
+ "netId": "MMM",
316
+ "pinIds": ["J1.2"]
317
+ }
318
+ ],
319
+ "availableNetLabelOrientations": {
320
+ "VCC": ["y-"],
321
+ "OUT": ["x-", "x+"],
322
+ "GND": ["y-"],
323
+ "MMM": ["x+", "x-"]
324
+ },
325
+ "maxMspPairDistance": 2.4
326
+ },
327
+ "paddingBuffer": 0.1,
328
+ "detourCount": 0
329
+ }
330
+ }