@tscircuit/schematic-trace-solver 0.0.48 → 0.0.50

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 (168) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +128 -1
  3. package/dist/index.js +1450 -42
  4. package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +682 -0
  5. package/lib/solvers/AvailableNetOrientationSolver/constants.ts +6 -0
  6. package/lib/solvers/AvailableNetOrientationSolver/geometry.ts +192 -0
  7. package/lib/solvers/AvailableNetOrientationSolver/traces.ts +43 -0
  8. package/lib/solvers/AvailableNetOrientationSolver/types.ts +44 -0
  9. package/lib/solvers/AvailableNetOrientationSolver/visualize.ts +123 -0
  10. package/lib/solvers/Example28Solver/Example28Solver.ts +182 -0
  11. package/lib/solvers/Example28Solver/geometry.ts +246 -0
  12. package/lib/solvers/Example28Solver/labelMovement.ts +82 -0
  13. package/lib/solvers/Example28Solver/reroute.ts +368 -0
  14. package/lib/solvers/Example28Solver/types.ts +47 -0
  15. package/lib/solvers/Example28Solver/visualize.ts +96 -0
  16. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +30 -0
  17. package/package.json +1 -1
  18. package/site/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.page.tsx +2 -0
  19. package/site/TraceCleanupSolver/TraceCleanupSolver.page.tsx +23 -0
  20. package/site/TraceLabelOverlapAvoidanceSolver/MergedNetLabelObstacles.page.tsx +18 -0
  21. package/site/TraceLabelOverlapAvoidanceSolver/OverlapAvoidanceStepSolver.page.tsx +24 -0
  22. package/site/TraceLabelOverlapAvoidanceSolver/SingleOverlapSolver.page.tsx +10 -0
  23. package/site/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.page.tsx +146 -0
  24. package/site/TraceLabelOverlapAvoidanceSolver/renderComparisonView01.page.tsx +32 -0
  25. package/site/TraceLabelOverlapAvoidanceSolver/renderComparisonView02.page.tsx +32 -0
  26. package/site/TraceLabelOverlapAvoidanceSolver/renderComparisonView03.page.tsx +35 -0
  27. package/site/examples/example01.page.tsx +6 -0
  28. package/site/examples/example02.page.tsx +4 -180
  29. package/site/examples/example03.page.tsx +3 -212
  30. package/site/examples/example04.page.tsx +6 -0
  31. package/site/examples/example05.page.tsx +3 -179
  32. package/site/examples/example06.page.tsx +3 -57
  33. package/site/examples/example07.page.tsx +3 -132
  34. package/site/examples/example08.page.tsx +3 -91
  35. package/site/examples/example09.page.tsx +3 -414
  36. package/site/examples/example10.page.tsx +3 -75
  37. package/site/examples/example11.page.tsx +3 -116
  38. package/site/examples/example12.page.tsx +3 -94
  39. package/site/examples/example13.page.tsx +3 -216
  40. package/site/examples/example14.page.tsx +3 -207
  41. package/site/examples/example15.page.tsx +6 -0
  42. package/site/examples/example16.page.tsx +6 -0
  43. package/site/examples/example17.page.tsx +6 -0
  44. package/site/examples/example18.page.tsx +3 -178
  45. package/site/examples/example19.page.tsx +3 -166
  46. package/site/examples/example20.page.tsx +3 -100
  47. package/site/examples/example21.page.tsx +3 -174
  48. package/site/examples/example22.page.tsx +3 -105
  49. package/site/examples/example23.page.tsx +3 -134
  50. package/site/examples/example24.page.tsx +3 -125
  51. package/site/examples/example25.page.tsx +2 -0
  52. package/site/examples/example26.page.tsx +2 -0
  53. package/site/examples/example27.page.tsx +2 -0
  54. package/site/examples/example28.page.tsx +3 -58
  55. package/site/examples/example29.page.tsx +6 -0
  56. package/site/examples/example30.page.tsx +6 -0
  57. package/site/examples/example31.page.tsx +4 -0
  58. package/tests/assets/example01.json +109 -0
  59. package/tests/assets/example02.json +178 -0
  60. package/tests/assets/example03.json +210 -0
  61. package/tests/assets/example04.json +41 -0
  62. package/tests/assets/example05.json +175 -0
  63. package/tests/assets/example06.json +55 -0
  64. package/tests/assets/example07.json +130 -0
  65. package/tests/assets/example08.json +89 -0
  66. package/tests/assets/example09.json +412 -0
  67. package/tests/assets/example10.json +73 -0
  68. package/tests/assets/example11.json +114 -0
  69. package/tests/assets/example12.json +92 -0
  70. package/tests/assets/example13.json +214 -0
  71. package/tests/assets/example14.json +205 -0
  72. package/tests/assets/example15.json +618 -0
  73. package/tests/assets/example16.json +102 -0
  74. package/tests/assets/example17.json +160 -0
  75. package/tests/assets/example18.json +176 -0
  76. package/tests/assets/example19.json +164 -0
  77. package/tests/assets/example20.json +98 -0
  78. package/tests/assets/example21.json +172 -0
  79. package/tests/assets/example22.json +103 -0
  80. package/tests/assets/example23.json +132 -0
  81. package/tests/assets/example24.json +123 -0
  82. package/tests/assets/example25.json +146 -33
  83. package/tests/assets/example26.json +51 -1134
  84. package/tests/assets/example27.json +151 -91
  85. package/tests/assets/example28.json +56 -0
  86. package/tests/assets/example29.json +1206 -0
  87. package/tests/assets/example30.json +168 -0
  88. package/tests/assets/example31.json +46 -0
  89. package/tests/examples/__snapshots__/example01.snap.svg +12 -6
  90. package/tests/examples/__snapshots__/example02.snap.svg +16 -8
  91. package/tests/examples/__snapshots__/example03.snap.svg +36 -18
  92. package/tests/examples/__snapshots__/example04.snap.svg +8 -4
  93. package/tests/examples/__snapshots__/example05.snap.svg +4 -2
  94. package/tests/examples/__snapshots__/example06.snap.svg +4 -2
  95. package/tests/examples/__snapshots__/example07.snap.svg +20 -10
  96. package/tests/examples/__snapshots__/example08.snap.svg +16 -8
  97. package/tests/examples/__snapshots__/example09.snap.svg +80 -40
  98. package/tests/examples/__snapshots__/example10.snap.svg +16 -8
  99. package/tests/examples/__snapshots__/example11.snap.svg +24 -12
  100. package/tests/examples/__snapshots__/example12.snap.svg +41 -30
  101. package/tests/examples/__snapshots__/example13.snap.svg +38 -16
  102. package/tests/examples/__snapshots__/example14.snap.svg +121 -48
  103. package/tests/examples/__snapshots__/example15.snap.svg +36 -18
  104. package/tests/examples/__snapshots__/example16.snap.svg +41 -27
  105. package/tests/examples/__snapshots__/example17.snap.svg +16 -8
  106. package/tests/examples/__snapshots__/example18.snap.svg +20 -10
  107. package/tests/examples/__snapshots__/example19.snap.svg +16 -8
  108. package/tests/examples/__snapshots__/example20.snap.svg +45 -131
  109. package/tests/examples/__snapshots__/example21.snap.svg +93 -65
  110. package/tests/examples/__snapshots__/example22.snap.svg +43 -23
  111. package/tests/examples/__snapshots__/example23.snap.svg +62 -26
  112. package/tests/examples/__snapshots__/example24.snap.svg +50 -28
  113. package/tests/examples/__snapshots__/example25.snap.svg +175 -49
  114. package/tests/examples/__snapshots__/example26.snap.svg +16 -8
  115. package/tests/examples/__snapshots__/example27.snap.svg +24 -12
  116. package/tests/examples/__snapshots__/example28.snap.svg +24 -18
  117. package/tests/examples/__snapshots__/example29.snap.svg +184 -92
  118. package/tests/examples/__snapshots__/example30.snap.svg +48 -24
  119. package/tests/examples/__snapshots__/example31.snap.svg +88 -0
  120. package/tests/examples/example01.test.ts +2 -2
  121. package/tests/examples/example02.test.ts +2 -2
  122. package/tests/examples/example03.test.ts +2 -2
  123. package/tests/examples/example04.test.ts +2 -2
  124. package/tests/examples/example05.test.ts +2 -2
  125. package/tests/examples/example06.test.ts +2 -2
  126. package/tests/examples/example07.test.ts +2 -2
  127. package/tests/examples/example08.test.ts +2 -2
  128. package/tests/examples/example09.test.ts +2 -2
  129. package/tests/examples/example10.test.ts +2 -2
  130. package/tests/examples/{example11.test.tsx → example11.test.ts} +2 -2
  131. package/tests/examples/{example12.test.tsx → example12.test.ts} +2 -2
  132. package/tests/examples/{example13.test.tsx → example13.test.ts} +2 -2
  133. package/tests/examples/example14.test.ts +12 -0
  134. package/tests/examples/example15.test.ts +12 -0
  135. package/tests/examples/example16.test.ts +12 -0
  136. package/tests/examples/example17.test.ts +12 -0
  137. package/tests/examples/example18.test.ts +12 -0
  138. package/tests/examples/example19.test.ts +12 -0
  139. package/tests/examples/example20.test.ts +12 -0
  140. package/tests/examples/example21.test.ts +12 -0
  141. package/tests/examples/example22.test.ts +12 -0
  142. package/tests/examples/example23.test.ts +12 -0
  143. package/tests/examples/example24.test.ts +12 -0
  144. package/tests/examples/example25.test.ts +12 -0
  145. package/tests/examples/example26.test.ts +12 -0
  146. package/tests/examples/example27.test.ts +3 -232
  147. package/tests/examples/example28.test.ts +2 -2
  148. package/tests/examples/example29.test.ts +1 -2
  149. package/tests/examples/example30.test.ts +2 -2
  150. package/tests/examples/example31.test.ts +12 -0
  151. package/site/examples/example01-basic.page.tsx +0 -105
  152. package/site/examples/example04-single-symbol.page.tsx +0 -46
  153. package/site/examples/example15-rp2040-caps.page.tsx +0 -623
  154. package/site/examples/example16-core-repro51.page.tsx +0 -107
  155. package/site/examples/example17-straight-line-trace.page.tsx +0 -165
  156. package/tests/examples/example14.test.tsx +0 -11
  157. package/tests/examples/example15.test.tsx +0 -629
  158. package/tests/examples/example16.test.tsx +0 -113
  159. package/tests/examples/example17.test.tsx +0 -171
  160. package/tests/examples/example18.test.tsx +0 -187
  161. package/tests/examples/example19.test.tsx +0 -175
  162. package/tests/examples/example20.test.tsx +0 -190
  163. package/tests/examples/example21.test.tsx +0 -183
  164. package/tests/examples/example22.test.tsx +0 -109
  165. package/tests/examples/example23.test.tsx +0 -109
  166. package/tests/examples/example24.test.tsx +0 -114
  167. package/tests/examples/example25.test.tsx +0 -143
  168. package/tests/examples/example26.test.tsx +0 -134
@@ -0,0 +1,172 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": 0,
7
+ "y": 0
8
+ },
9
+ "width": 2,
10
+ "height": 2,
11
+ "pins": [
12
+ {
13
+ "pinId": "CORNERS.1",
14
+ "x": -1.4,
15
+ "y": -0.6
16
+ },
17
+ {
18
+ "pinId": "CORNERS.2",
19
+ "x": -1.4,
20
+ "y": 0.6
21
+ },
22
+ {
23
+ "pinId": "CORNERS.3",
24
+ "x": 1.4,
25
+ "y": 0.6
26
+ },
27
+ {
28
+ "pinId": "CORNERS.4",
29
+ "x": 1.4,
30
+ "y": -0.6
31
+ }
32
+ ]
33
+ },
34
+ {
35
+ "chipId": "schematic_component_1",
36
+ "center": {
37
+ "x": 4.785,
38
+ "y": -0.3999999999999999
39
+ },
40
+ "width": 1.2000000000000002,
41
+ "height": 1,
42
+ "pins": [
43
+ {
44
+ "pinId": "U100.1",
45
+ "x": 3.785,
46
+ "y": -0.29999999999999993
47
+ },
48
+ {
49
+ "pinId": "U100.2",
50
+ "x": 4.785,
51
+ "y": -1.2999999999999998
52
+ },
53
+ {
54
+ "pinId": "U100.3",
55
+ "x": 3.785,
56
+ "y": -0.4999999999999999
57
+ },
58
+ {
59
+ "pinId": "U100.5",
60
+ "x": 5.785,
61
+ "y": -0.3999999999999999
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "chipId": "schematic_component_2",
67
+ "center": {
68
+ "x": 6.7,
69
+ "y": -0.9499999999999993
70
+ },
71
+ "width": 0.53,
72
+ "height": 1.06,
73
+ "pins": [
74
+ {
75
+ "pinId": "C101.1",
76
+ "x": 6.7,
77
+ "y": -0.39999999999999925
78
+ },
79
+ {
80
+ "pinId": "C101.2",
81
+ "x": 6.7,
82
+ "y": -1.4999999999999993
83
+ }
84
+ ]
85
+ },
86
+ {
87
+ "chipId": "schematic_component_3",
88
+ "center": {
89
+ "x": 2.8699999999999997,
90
+ "y": -1.75
91
+ },
92
+ "width": 0.53,
93
+ "height": 1.06,
94
+ "pins": [
95
+ {
96
+ "pinId": "C100.1",
97
+ "x": 2.8699999999999997,
98
+ "y": -1.2
99
+ },
100
+ {
101
+ "pinId": "C100.2",
102
+ "x": 2.8699999999999997,
103
+ "y": -2.3
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "chipId": "schematic_component_4",
109
+ "center": {
110
+ "x": 2.9752723250000006,
111
+ "y": 0.050000000000000266
112
+ },
113
+ "width": 0.3194553499999995,
114
+ "height": 1.06,
115
+ "pins": [
116
+ {
117
+ "pinId": "R100.1",
118
+ "x": 2.9752723250000006,
119
+ "y": 0.6000000000000001
120
+ },
121
+ {
122
+ "pinId": "R100.2",
123
+ "x": 2.9752723250000006,
124
+ "y": -0.4999999999999998
125
+ }
126
+ ]
127
+ }
128
+ ],
129
+ "directConnections": [
130
+ {
131
+ "pinIds": ["C101.1", "U100.5"],
132
+ "netId": "group > capacitor.C101 > port.pin1 to U100.VOUT"
133
+ },
134
+ {
135
+ "pinIds": ["C100.1", "U100.1"],
136
+ "netId": "group > capacitor.C100 > port.pin1 to U100.VIN"
137
+ },
138
+ {
139
+ "pinIds": ["R100.2", "U100.3"],
140
+ "netId": "group > resistor.R100 > port.pin2 to U100.EN"
141
+ }
142
+ ],
143
+ "netConnections": [
144
+ {
145
+ "netId": "GND",
146
+ "pinIds": ["CORNERS.1", "CORNERS.4", "U100.2", "C101.2", "C100.2"],
147
+ "netLabelWidth": 0.3
148
+ },
149
+ {
150
+ "netId": "VIN",
151
+ "pinIds": ["CORNERS.2", "U100.1", "C100.1", "R100.1"],
152
+ "netLabelWidth": 0.3
153
+ },
154
+ {
155
+ "netId": "VOUT",
156
+ "pinIds": ["CORNERS.3", "U100.5", "C101.1"],
157
+ "netLabelWidth": 0.4
158
+ },
159
+ {
160
+ "netId": "LDO_EN",
161
+ "pinIds": ["U100.3", "R100.2"],
162
+ "netLabelWidth": 0.6
163
+ }
164
+ ],
165
+ "availableNetLabelOrientations": {
166
+ "GND": ["y-"],
167
+ "VIN": ["y+"],
168
+ "VOUT": ["y+"],
169
+ "LDO_EN": ["x-", "x+"]
170
+ },
171
+ "maxMspPairDistance": 2.4
172
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": 0,
7
+ "y": 0
8
+ },
9
+ "width": 2.4000000000000004,
10
+ "height": 1,
11
+ "pins": [
12
+ {
13
+ "pinId": "U1.1",
14
+ "x": 1.2000000000000002,
15
+ "y": -0.30000000000000004
16
+ },
17
+ {
18
+ "pinId": "U1.2",
19
+ "x": -1.2000000000000002,
20
+ "y": -0.30000000000000004
21
+ },
22
+ {
23
+ "pinId": "U1.3",
24
+ "x": 1.2000000000000002,
25
+ "y": 0.09999999999999998
26
+ },
27
+ {
28
+ "pinId": "U1.4",
29
+ "x": -1.2000000000000002,
30
+ "y": 0.30000000000000004
31
+ },
32
+ {
33
+ "pinId": "U1.5",
34
+ "x": -1.2000000000000002,
35
+ "y": 0.10000000000000003
36
+ },
37
+ {
38
+ "pinId": "U1.6",
39
+ "x": -1.2000000000000002,
40
+ "y": -0.09999999999999998
41
+ },
42
+ {
43
+ "pinId": "U1.7",
44
+ "x": 1.2000000000000002,
45
+ "y": -0.10000000000000003
46
+ },
47
+ {
48
+ "pinId": "U1.8",
49
+ "x": 1.2000000000000002,
50
+ "y": 0.30000000000000004
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "chipId": "schematic_component_1",
56
+ "center": {
57
+ "x": 2.7,
58
+ "y": -2.095
59
+ },
60
+ "width": 2.2,
61
+ "height": 0.8,
62
+ "pins": [
63
+ {
64
+ "pinId": "J1.1",
65
+ "x": 1.6,
66
+ "y": -1.895
67
+ },
68
+ {
69
+ "pinId": "J1.2",
70
+ "x": 1.6,
71
+ "y": -2.095
72
+ },
73
+ {
74
+ "pinId": "J1.3",
75
+ "x": 1.6,
76
+ "y": -2.295
77
+ }
78
+ ]
79
+ }
80
+ ],
81
+ "directConnections": [],
82
+ "netConnections": [
83
+ {
84
+ "netId": "GND",
85
+ "pinIds": ["U1.1", "J1.3"]
86
+ },
87
+ {
88
+ "netId": "VCC",
89
+ "pinIds": ["U1.8", "J1.1"]
90
+ },
91
+ {
92
+ "netId": "MMM",
93
+ "pinIds": ["J1.2"]
94
+ }
95
+ ],
96
+ "availableNetLabelOrientations": {
97
+ "VCC": ["y+"],
98
+ "OUT": ["x-", "x+"],
99
+ "GND": ["y-"],
100
+ "MMM": ["x+", "x-"]
101
+ },
102
+ "maxMspPairDistance": 2.4
103
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": -3,
7
+ "y": 0
8
+ },
9
+ "width": 2.4000000000000004,
10
+ "height": 1,
11
+ "pins": [
12
+ {
13
+ "pinId": "U1.1",
14
+ "x": -1.8,
15
+ "y": -0.30000000000000004
16
+ },
17
+ {
18
+ "pinId": "U1.2",
19
+ "x": -4.2,
20
+ "y": -0.30000000000000004
21
+ },
22
+ {
23
+ "pinId": "U1.3",
24
+ "x": -1.8,
25
+ "y": 0.09999999999999998
26
+ },
27
+ {
28
+ "pinId": "U1.4",
29
+ "x": -4.2,
30
+ "y": 0.30000000000000004
31
+ },
32
+ {
33
+ "pinId": "U1.5",
34
+ "x": -4.2,
35
+ "y": 0.10000000000000003
36
+ },
37
+ {
38
+ "pinId": "U1.6",
39
+ "x": -4.2,
40
+ "y": -0.09999999999999998
41
+ },
42
+ {
43
+ "pinId": "U1.7",
44
+ "x": -1.8,
45
+ "y": -0.10000000000000003
46
+ },
47
+ {
48
+ "pinId": "U1.8",
49
+ "x": -1.8,
50
+ "y": 0.30000000000000004
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "chipId": "schematic_component_1",
56
+ "center": {
57
+ "x": 3,
58
+ "y": 0
59
+ },
60
+ "width": 2.2,
61
+ "height": 0.8,
62
+ "pins": [
63
+ {
64
+ "pinId": "J1.1",
65
+ "x": 1.9,
66
+ "y": 0.2
67
+ },
68
+ {
69
+ "pinId": "J1.2",
70
+ "x": 1.9,
71
+ "y": 0
72
+ },
73
+ {
74
+ "pinId": "J1.3",
75
+ "x": 1.9,
76
+ "y": -0.2
77
+ }
78
+ ]
79
+ },
80
+ {
81
+ "chipId": "schematic_component_2",
82
+ "center": {
83
+ "x": 0,
84
+ "y": -2
85
+ },
86
+ "width": 1.2,
87
+ "height": 3,
88
+ "pins": [
89
+ {
90
+ "pinId": "U2.1",
91
+ "x": -0.4,
92
+ "y": -0.5
93
+ },
94
+ {
95
+ "pinId": "U2.2",
96
+ "x": 0.4,
97
+ "y": -0.6
98
+ },
99
+ {
100
+ "pinId": "U2.3",
101
+ "x": -0.4,
102
+ "y": -2.8
103
+ },
104
+ {
105
+ "pinId": "U2.4",
106
+ "x": 0.4,
107
+ "y": -2.8
108
+ }
109
+ ]
110
+ }
111
+ ],
112
+ "directConnections": [
113
+ {
114
+ "pinIds": ["U1.1", "J1.3"]
115
+ },
116
+ {
117
+ "pinIds": ["U1.8", "J1.1"]
118
+ }
119
+ ],
120
+ "netConnections": [
121
+ {
122
+ "netId": "SIGNAL1",
123
+ "pinIds": ["U2.2"]
124
+ },
125
+ {
126
+ "netId": "SIGNAL2",
127
+ "pinIds": ["U2.1"]
128
+ }
129
+ ],
130
+ "availableNetLabelOrientations": {},
131
+ "maxMspPairDistance": 6.5
132
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": -3,
7
+ "y": 0
8
+ },
9
+ "width": 2.4000000000000004,
10
+ "height": 1,
11
+ "pins": [
12
+ {
13
+ "pinId": "U1.1",
14
+ "x": -1.8,
15
+ "y": -0.30000000000000004
16
+ },
17
+ {
18
+ "pinId": "U1.2",
19
+ "x": -4.2,
20
+ "y": -0.30000000000000004
21
+ },
22
+ {
23
+ "pinId": "U1.3",
24
+ "x": -1.8,
25
+ "y": 0.09999999999999998
26
+ },
27
+ {
28
+ "pinId": "U1.4",
29
+ "x": -4.2,
30
+ "y": 0.30000000000000004
31
+ },
32
+ {
33
+ "pinId": "U1.5",
34
+ "x": -4.2,
35
+ "y": 0.10000000000000003
36
+ },
37
+ {
38
+ "pinId": "U1.6",
39
+ "x": -4.2,
40
+ "y": -0.09999999999999998
41
+ },
42
+ {
43
+ "pinId": "U1.7",
44
+ "x": -1.8,
45
+ "y": -0.10000000000000003
46
+ },
47
+ {
48
+ "pinId": "U1.8",
49
+ "x": -1.8,
50
+ "y": 0.30000000000000004
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "chipId": "schematic_component_1",
56
+ "center": {
57
+ "x": 3,
58
+ "y": 0
59
+ },
60
+ "width": 2.2,
61
+ "height": 0.8,
62
+ "pins": [
63
+ {
64
+ "pinId": "J1.1",
65
+ "x": 1.9,
66
+ "y": 0.2
67
+ },
68
+ {
69
+ "pinId": "J1.2",
70
+ "x": 1.9,
71
+ "y": 0
72
+ },
73
+ {
74
+ "pinId": "J1.3",
75
+ "x": 1.9,
76
+ "y": -0.2
77
+ }
78
+ ]
79
+ },
80
+ {
81
+ "chipId": "schematic_component_2",
82
+ "center": {
83
+ "x": 0,
84
+ "y": 1
85
+ },
86
+ "width": 1,
87
+ "height": 1,
88
+ "pins": [
89
+ {
90
+ "pinId": "U2.3",
91
+ "x": -0.4,
92
+ "y": 0.5
93
+ },
94
+ {
95
+ "pinId": "U2.4",
96
+ "x": 0.4,
97
+ "y": 0.5
98
+ }
99
+ ]
100
+ }
101
+ ],
102
+ "directConnections": [],
103
+ "netConnections": [
104
+ {
105
+ "netId": "SIGNAL1",
106
+ "pinIds": ["U2.3"]
107
+ },
108
+ {
109
+ "netId": "SIGNAL2",
110
+ "pinIds": ["U2.4"]
111
+ },
112
+ {
113
+ "netId": "SSH",
114
+ "pinIds": ["U1.1", "J1.3"]
115
+ },
116
+ {
117
+ "netId": "BHH",
118
+ "pinIds": ["J1.1", "U1.3"]
119
+ }
120
+ ],
121
+ "availableNetLabelOrientations": {},
122
+ "maxMspPairDistance": 6.5
123
+ }