@tscircuit/schematic-trace-solver 0.0.163 → 0.0.165
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.d.ts +5 -1
- package/dist/index.js +160 -23
- package/lib/solvers/NetLabelToTraceSolver/NetLabelToTraceSolver.ts +225 -24
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2.ts +15 -4
- package/package.json +1 -1
- package/tests/assets/example51.json +6 -0
- package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +166 -166
- package/tests/examples/__snapshots__/example51.snap.svg +42 -78
- package/tests/examples/example51.test.ts +24 -0
- package/tests/fixtures/convertSolverOutputToCircuitJson.ts +22 -3
- package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +26 -26
- package/tests/repros/__snapshots__/repro-bluetooth-controller-ground-decoupling-groups.snap.svg +1 -15
- package/tests/repros/__snapshots__/repro-core-ground-inline-label-fallback.snap.svg +2 -16
- package/tests/repros/__snapshots__/repro-pga300-redundant-ground-traces.snap.svg +1 -15
- package/tests/repros/__snapshots__/repro-pmp11282-endpoint-trace-through-component-text.snap.svg +76 -0
- package/tests/repros/__snapshots__/repro-pmp11282-isolated-dcdc.snap.svg +114 -110
- package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1681 -1690
- package/tests/repros/repro-pmp11282-endpoint-trace-through-component-text.test.ts +82 -0
- package/tests/repros/repro-pmp11282-isolated-dcdc.test.ts +5 -5
package/tests/repros/__snapshots__/repro-bluetooth-controller-ground-decoupling-groups.snap.svg
CHANGED
|
@@ -89,21 +89,7 @@ MLDO_OUT" data-x="7.35" data-y="1.0300000000000002" cx="237.15004191114838" cy="
|
|
|
89
89
|
L 692.9758323406,60.570574814770346
|
|
90
90
|
L 692.9758323406,102.11391306104687
|
|
91
91
|
Z
|
|
92
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.42282299259px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="680.86171737765" y="97.75283167438488" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="21.80540693331px" transform="rotate(-90 680.86171737765 97.75283167438488)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
93
|
-
M 680.86171737765,249.17926871126014
|
|
94
|
-
L 692.9758323406,255.72089079125314
|
|
95
|
-
L 692.9758323406,297.2642290375297
|
|
96
|
-
L 668.7476024147,297.2642290375297
|
|
97
|
-
L 668.7476024147,255.72089079125314
|
|
98
|
-
Z
|
|
99
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.42282299259px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="680.86171737765" y="260.08197217791513" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="21.80540693331px" transform="rotate(90 680.86171737765 260.08197217791513)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
100
|
-
M 390.1229582668501,691.344464858935
|
|
101
|
-
L 402.2370732298001,697.886086938928
|
|
102
|
-
L 402.2370732298001,739.4294251852045
|
|
103
|
-
L 378.0088433039001,739.4294251852045
|
|
104
|
-
L 378.0088433039001,697.886086938928
|
|
105
|
-
Z
|
|
106
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.42282299259px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="390.1229582668501" y="702.24716832559" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="21.80540693331px" transform="rotate(90 390.1229582668501 702.24716832559)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
|
|
92
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.42282299259px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="680.86171737765" y="97.75283167438488" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="21.80540693331px" transform="rotate(-90 680.86171737765 97.75283167438488)">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="666.32477942211" y="249.17926871126014" width="29.073875911079995" height="21.805406933309996" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="M 666.32477942211 270.98467564457013 L 695.39865533319 270.98467564457013" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.42282299259px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="M 680.86171737765 270.98467564457013 L 680.86171737765 249.17926871126014" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.42282299259px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="680.86171737765" y="277.04173312604513" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="21.80540693331px">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="375.5860203113101" y="691.344464858935" width="29.073875911079995" height="21.805406933309996" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="M 375.5860203113101 713.149871792245 L 404.6598962223901 713.149871792245" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.42282299259px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="M 390.1229582668501 713.149871792245 L 390.1229582668501 691.344464858935" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.42282299259px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="390.1229582668501" y="719.20692927372" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="21.80540693331px">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
|
|
107
93
|
M 874.68755678485,575.048961214615
|
|
108
94
|
L 862.5734418219,568.507339134622
|
|
109
95
|
L 862.5734418219,526.9640008883455
|
|
@@ -230,28 +230,14 @@ motor_2b" data-x="6.055" data-y="0.7" cx="570.4492209712271" cy="265.22915955873
|
|
|
230
230
|
L 387.66368555492824,324.85065122396
|
|
231
231
|
L 358.70726232619415,324.85065122396
|
|
232
232
|
Z
|
|
233
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.688749410696px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_10__stack1" x="361.747011265447" y="316.40690417048" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.198744696263999px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" d="
|
|
234
|
-
M 889.7767332548187,409.28812175876
|
|
235
|
-
L 898.2204803082988,413.8477451676392
|
|
236
|
-
L 898.2204803082988,442.80416839637326
|
|
237
|
-
L 881.3329862013387,442.80416839637326
|
|
238
|
-
L 881.3329862013387,413.8477451676392
|
|
239
|
-
Z
|
|
240
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.688749410696px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" x="889.7767332548187" y="416.887494106892" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.198744696263999px" transform="rotate(90 889.7767332548187 416.887494106892)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_12__stack1" d="
|
|
233
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.688749410696px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_10__stack1" x="361.747011265447" y="316.40690417048" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.198744696263999px" transform="">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" x="879.6442367906427" y="409.2881217587599" width="20.264992928352058" height="15.198744696264043" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" d="M 879.6442367906427 424.48686645502397 L 899.9092297189948 424.48686645502397" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.688749410696px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" d="M 889.7767332548187 424.48686645502397 L 889.7767332548187 409.2881217587599" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.688749410696px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" x="889.7767332548187" y="428.7087399817639" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="15.198744696263999px">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_12__stack1" d="
|
|
241
234
|
M 536.74366894882,307.963157117
|
|
242
235
|
L 532.1840455399407,316.40690417048
|
|
243
236
|
L 503.2276223112067,316.40690417047995
|
|
244
237
|
L 503.2276223112067,299.51941006351996
|
|
245
238
|
L 532.1840455399407,299.51941006351996
|
|
246
239
|
Z
|
|
247
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.688749410696px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_12__stack1" x="529.144296600688" y="307.963157117" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.198744696263999px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" d="
|
|
248
|
-
M 1127.046025457607,544.4725120849748
|
|
249
|
-
L 1135.4897725110868,549.0321354938541
|
|
250
|
-
L 1135.4897725110868,577.9885587225881
|
|
251
|
-
L 1118.602278404127,577.9885587225881
|
|
252
|
-
L 1118.602278404127,549.0321354938541
|
|
253
|
-
Z
|
|
254
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.688749410696px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" x="1127.046025457607" y="552.0718844331068" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.198744696263999px" transform="rotate(90 1127.046025457607 552.0718844331068)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" d="
|
|
240
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.688749410696px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_12__stack1" x="529.144296600688" y="307.963157117" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.198744696263999px" transform="">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" x="1116.9135289934309" y="544.4725120849748" width="20.264992928352058" height="15.19874469626393" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" d="M 1116.9135289934309 559.6712567812388 L 1137.178521921783 559.6712567812388" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.688749410696px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" d="M 1127.046025457607 559.6712567812388 L 1127.046025457607 544.4725120849748" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.688749410696px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_13__stack1" x="1127.046025457607" y="563.8931303079788" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="15.198744696263999px">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_14__stack1" d="
|
|
255
241
|
M 815.4717591841948,274.1037314325452
|
|
256
242
|
L 807.0280121307147,269.544108023666
|
|
257
243
|
L 807.0280121307147,240.58768479493193
|
|
@@ -157,21 +157,7 @@ orientation: y+" data-x="10.9" data-y="1.7" cx="588.3234994010913" cy="278.01428
|
|
|
157
157
|
L 626.6706756582228,360.18212276109307
|
|
158
158
|
L 608.9944590008623,360.18212276109307
|
|
159
159
|
Z
|
|
160
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.030883553112px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="610.850049396464" y="355.02770499553304" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.277951978008px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
161
|
-
M 549.5124779862999,484.27473046695013
|
|
162
|
-
L 554.6668957518599,487.0581160603525
|
|
163
|
-
L 554.6668957518599,504.73433271771296
|
|
164
|
-
L 544.35806022074,504.73433271771296
|
|
165
|
-
L 544.35806022074,487.0581160603525
|
|
166
|
-
Z
|
|
167
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.030883553112px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="549.5124779862999" y="488.9137064559541" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.277951978008px" transform="rotate(90 549.5124779862999 488.9137064559541)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
168
|
-
M 238.13410076882036,536.6436149650397
|
|
169
|
-
L 243.28851853438036,539.427000558442
|
|
170
|
-
L 243.28851853438036,557.1032172158025
|
|
171
|
-
L 232.97968300326036,557.1032172158025
|
|
172
|
-
L 232.97968300326036,539.427000558442
|
|
173
|
-
Z
|
|
174
|
-
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.030883553112px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="238.13410076882036" y="541.2825909540437" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.277951978008px" transform="rotate(90 238.13410076882036 541.2825909540437)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
|
|
160
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.030883553112px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="610.850049396464" y="355.02770499553304" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="9.277951978008px" transform="">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="543.3271766676279" y="484.2747304669501" width="12.370602637344064" height="9.27795197800799" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="M 543.3271766676279 493.55268244495807 L 555.697779304972 493.55268244495807" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.030883553112px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="M 549.5124779862999 493.55268244495807 L 549.5124779862999 484.2747304669501" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.030883553112px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="549.5124779862999" y="496.12989132773805" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="9.277951978008px">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="231.94879945014836" y="536.6436149650395" width="12.370602637344007" height="9.277951978008105" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="M 231.94879945014836 545.9215669430477 L 244.31940208749236 545.9215669430477" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.030883553112px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="M 238.13410076882036 545.9215669430477 L 238.13410076882036 536.6436149650395" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.030883553112px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="238.13410076882036" y="548.4987758258276" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="9.277951978008px">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
|
|
175
161
|
M 834.29405953349,243.30569992702004
|
|
176
162
|
L 829.13964176793,240.52231433361766
|
|
177
163
|
L 829.13964176793,222.84609767625722
|
package/tests/repros/__snapshots__/repro-pmp11282-endpoint-trace-through-component-text.snap.svg
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<svg width="1200" height="2016" viewBox="0 0 1200 2016" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on top and Circuit JSON schematic on the bottom">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.3094999999999999,-2.0075 -0.9035,-2.0075 -0.9035,-2.8125 -3.9875000000000003,-2.8125 -3.9875000000000003,-1.7425 -3.7875,-1.7425" data-type="line" data-label="" points="483.8487231979313,326.03383256114637 412.16679237151175,326.03383256114637 412.16679237151175,423.1785367956039 40,423.1785367956039 40,294.0545199870703 64.13533024458576,294.0545199870703" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="U503" data-x="-2.7375" data-y="-1.6425" x="64.13533024458573" y="245.7838594978989" width="253.42096756815005" height="72.40599073375719" fill="hsl(267, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008286607142857144"/></g><g><rect data-type="rect" data-label="TP502" data-x="0.17175" data-y="-2.0075" x="483.84872319793135" y="313.9661674388535" width="116.15127680206871" height="24.13533024458576" fill="hsl(75, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008286607142857144"/></g><g><rect data-type="rect" data-label="PC817X4NSZ0F" data-x="-2.6675" data-y="-2.0725" x="112.40599073375719" y="323.0169162805731" width="173.7743777610171" height="21.721797220127144" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.008286607142857144"/></g><g><rect data-type="rect" data-label="U503" data-x="-3.1475" data-y="-1.2275" x="105.16539166038149" y="216.82146320439608" width="72.40599073375711" height="30.169162805732128" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.008286607142857144"/></g><g><rect data-type="rect" data-label="netId: TP502.pin1 to U503.pin2
|
|
4
|
+
globalConnNetId: connectivity_net0" data-x="-0.6064999999999999" data-y="-1.7824999999999998" x="435.94009266242864" y="271.7293395108286" width="24.135330244585703" height="54.30449305031783" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008286607142857144"/></g><g><circle data-type="point" data-label="U503.pin1
|
|
5
|
+
x-" data-x="-3.7875" data-y="-1.5425" cx="64.13533024458576" cy="269.9191897424846" r="3" fill="hsl(239, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U503.pin2
|
|
6
|
+
x-" data-x="-3.7875" data-y="-1.7425" cx="64.13533024458576" cy="294.0545199870703" r="3" fill="hsl(240, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U503.pin3
|
|
7
|
+
x+" data-x="-1.6874999999999996" data-y="-1.7425" cx="317.5562978127358" cy="294.0545199870703" r="3" fill="hsl(241, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U503.pin4
|
|
8
|
+
x+" data-x="-1.6874999999999996" data-y="-1.5425" cx="317.5562978127358" cy="269.9191897424846" r="3" fill="hsl(242, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="TP502.pin1
|
|
9
|
+
x-" data-x="-0.3095" data-y="-2.0075" cx="483.8487231979313" cy="326.03383256114637" r="3" fill="hsl(47, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
10
|
+
orientation: y+" data-x="-0.6064999999999999" data-y="-2.0075" cx="448.0077577847215" cy="326.03383256114637" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5"/><line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5"/><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text></g><script><![CDATA[
|
|
11
|
+
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
12
|
+
const svg = e.currentTarget;
|
|
13
|
+
const rect = svg.getBoundingClientRect();
|
|
14
|
+
const x = e.clientX - rect.left;
|
|
15
|
+
const y = e.clientY - rect.top;
|
|
16
|
+
const crosshair = svg.getElementById('crosshair');
|
|
17
|
+
const h = svg.getElementById('crosshair-h');
|
|
18
|
+
const v = svg.getElementById('crosshair-v');
|
|
19
|
+
const coords = svg.getElementById('coordinates');
|
|
20
|
+
|
|
21
|
+
crosshair.style.display = 'block';
|
|
22
|
+
h.setAttribute('x1', '0');
|
|
23
|
+
h.setAttribute('x2', '640');
|
|
24
|
+
h.setAttribute('y1', y);
|
|
25
|
+
h.setAttribute('y2', y);
|
|
26
|
+
v.setAttribute('x1', x);
|
|
27
|
+
v.setAttribute('x2', x);
|
|
28
|
+
v.setAttribute('y1', '0');
|
|
29
|
+
v.setAttribute('y2', '640');
|
|
30
|
+
|
|
31
|
+
// Calculate real coordinates using inverse transformation
|
|
32
|
+
const matrix = {"a":120.67665122292856,"c":0,"e":521.1981467514277,"b":0,"d":-120.67665122292856,"f":83.77545523111735};
|
|
33
|
+
// Manually invert and apply the affine transform
|
|
34
|
+
// Since we only use translate and scale, we can directly compute:
|
|
35
|
+
// x' = (x - tx) / sx
|
|
36
|
+
// y' = (y - ty) / sy
|
|
37
|
+
const sx = matrix.a;
|
|
38
|
+
const sy = matrix.d;
|
|
39
|
+
const tx = matrix.e;
|
|
40
|
+
const ty = matrix.f;
|
|
41
|
+
const realPoint = {
|
|
42
|
+
x: (x - tx) / sx,
|
|
43
|
+
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
47
|
+
coords.setAttribute('x', (x + 5).toString());
|
|
48
|
+
coords.setAttribute('y', (y - 5).toString());
|
|
49
|
+
});
|
|
50
|
+
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
51
|
+
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
52
|
+
});
|
|
53
|
+
]]></script>
|
|
54
|
+
</g>
|
|
55
|
+
<g transform="translate(0, 1216)">
|
|
56
|
+
<style>
|
|
57
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
58
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
59
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
60
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
61
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
62
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
63
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
64
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
65
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
66
|
+
|
|
67
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 929.3584283555862 405.49526033788726 L 798.7910427257159 405.49526033788726 L 798.7910427257159 582.4426432201188 L 120.89572743527867 582.4426432201188 L 120.89572743527867 347.24550075553776 L 164.8578101389387 347.24550075553776" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="35.169666162928px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 929.3584283555862 405.49526033788726 L 798.7910427257159 405.49526033788726 L 798.7910427257159 582.4426432201188 L 120.89572743527867 582.4426432201188 L 120.89572743527867 347.24550075553776 L 164.8578101389387 347.24550075553776" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.396208270366px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="252.78197554625865" y="259.3213353482178" width="285.75353757379014" height="131.88624811097998" stroke-width="4.396208270366px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="252.78197554625865" y="259.3213353482178" width="285.75353757379014" height="131.88624811097998" fill="transparent"/><text class="sch-text" x="395.6587443331538" y="325.2644594037078" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="39.565874433294px" transform="rotate(0, 395.6587443331538, 325.2644594037078)">U503</text><line class="component-pin sch-component-pin sch-port-line" x1="252.78197554625865" y1="303.2834180518778" x2="169.25401840930465" y2="303.2834180518778" stroke-width="4.396208270366px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="164.8578101389387" cy="303.2834180518778" r="4.396208270366" stroke-width="4.396208270366px"/><rect x="160.4616018685727" y="298.8872097815118" width="8.792416540732" height="8.792416540732" opacity="0"/></g><text class="pin-number sch-pin-number" x="208.81989284259873" y="298.8872097815118" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="32.971562027745px" transform=""></text><text class="pin-number sch-pin-label" x="274.7630168980887" y="303.2834180518778" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="32.971562027745px" transform="">pin1</text><line class="component-pin sch-component-pin sch-port-line" x1="252.78197554625865" y1="347.24550075553776" x2="164.8578101389387" y2="347.24550075553776" stroke-width="4.396208270366px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="160.4616018685727" y="342.84929248517176" width="8.792416540732" height="8.792416540732" opacity="0"/></g><text class="pin-number sch-pin-number" x="208.81989284259873" y="342.84929248517176" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="32.971562027745px" transform=""></text><text class="pin-number sch-pin-label" x="274.7630168980887" y="347.24550075553776" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="32.971562027745px" transform="">pin2</text><line class="component-pin sch-component-pin sch-port-line" x1="538.5355131200488" y1="347.24550075553776" x2="622.0634702570028" y2="347.24550075553776" stroke-width="4.396208270366px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="626.4596785273689" cy="347.24550075553776" r="4.396208270366" stroke-width="4.396208270366px"/><rect x="622.0634702570029" y="342.84929248517176" width="8.792416540732" height="8.792416540732" opacity="0"/></g><text class="pin-number sch-pin-number" x="582.4975958237088" y="342.84929248517176" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="32.971562027745px" transform=""></text><text class="pin-number sch-pin-label" x="516.5544717682188" y="347.24550075553776" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="32.971562027745px" transform="">pin3</text><line class="component-pin sch-component-pin sch-port-line" x1="538.5355131200488" y1="303.2834180518778" x2="622.0634702570028" y2="303.2834180518778" stroke-width="4.396208270366px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="626.4596785273689" cy="303.2834180518778" r="4.396208270366" stroke-width="4.396208270366px"/><rect x="622.0634702570029" y="298.8872097815118" width="8.792416540732" height="8.792416540732" opacity="0"/></g><text class="pin-number sch-pin-number" x="582.4975958237088" y="298.8872097815118" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="32.971562027745px" transform=""></text><text class="pin-number sch-pin-label" x="516.5544717682188" y="303.2834180518778" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="32.971562027745px" transform="">pin4</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="1017.2825937629061" y="383.51421898605724" width="35.719192196723725" height="43.96208270366003" stroke-width="4.396208270366px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="1017.2825937629061" y="383.51421898605724" width="35.719192196723725" height="43.96208270366003" fill="transparent"/><text class="sch-text" x="1035.142189861268" y="405.49526033788726" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="21.98104135183px" transform="rotate(0, 1035.142189861268, 405.49526033788726)">TP502</text><line class="component-pin sch-component-pin sch-port-line" x1="1017.2825937629061" y1="405.49526033788726" x2="929.3584283555862" y2="405.49526033788726" stroke-width="4.396208270366px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="924.9622200852202" y="401.09905206752126" width="8.792416540732" height="8.792416540732" opacity="0"/></g><text class="pin-number sch-pin-number" x="973.3205110592461" y="401.09905206752126" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="32.971562027745px" transform=""></text><text class="pin-number sch-pin-label" x="1039.2636351147362" y="405.49526033788726" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="32.971562027745px" transform="">pin1</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="164.8578101389387" cy="303.2834180518778" r="8.792416540732" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="164.8578101389387" cy="347.24550075553776" r="8.792416540732" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="626.4596785273689" cy="347.24550075553776" r="8.792416540732" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="626.4596785273689" cy="303.2834180518778" r="8.792416540732" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="929.3584283555862" cy="405.49526033788726" r="8.792416540732" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
68
|
+
M 864.0747355406511,405.49526033788726
|
|
69
|
+
L 842.0936941888211,393.62549800789907
|
|
70
|
+
L 842.0936941888211,318.24518019869004
|
|
71
|
+
L 886.055776892481,318.24518019869004
|
|
72
|
+
L 886.055776892481,393.62549800789907
|
|
73
|
+
Z
|
|
74
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.396208270366px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="864.0747355406511" y="385.7123231212403" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="39.565874433294px" transform="rotate(-90 864.0747355406511 385.7123231212403)">XX</text><text class="sch-text" x="411.04547327943476" y="419.7829372165767" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="39.565874433294px" transform="rotate(0, 411.04547327943476, 419.7829372165767)">PC817X4NSZ0F</text><text class="sch-text" x="305.5364747906507" y="234.04313779361328" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="39.565874433294px" transform="rotate(0, 305.5364747906507, 234.04313779361328)">U503</text><rect class="schematic-box sch-box" x="252.78197554625865" y="399.99999999992974" width="316.526995466352" height="39.56587443329397" stroke-width="4.396208270366px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="35.169666162928 17.584833081464"/><rect class="schematic-box sch-box" x="239.5933507351607" y="206.56683610382578" width="131.8862481109801" height="54.95260337957501" stroke-width="4.396208270366px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="35.169666162928 17.584833081464"/>
|
|
75
|
+
</g>
|
|
76
|
+
</svg>
|