@tscircuit/schematic-trace-solver 0.0.95 → 0.0.97

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 (21) hide show
  1. package/dist/index.d.ts +7 -6
  2. package/dist/index.js +271 -221
  3. package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2.ts +55 -14
  4. package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/collisions.ts +31 -0
  5. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +11 -7
  6. package/lib/solvers/SchematicTracePipelineSolver/visualizeInputProblem.ts +47 -40
  7. package/lib/types/InputProblem.ts +1 -0
  8. package/package.json +1 -1
  9. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +1 -1
  10. package/tests/bug-reports/bug-report-20260706T213649Z/bug-report-20260706T213649Z.test.ts +3 -1
  11. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +1 -1
  12. package/tests/bug-reports/bug-report-20260707T092615Z/bug-report-20260707T092615Z.test.ts +3 -1
  13. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +178 -0
  14. package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +54 -0
  15. package/tests/repros/assets/repro-rp2040-gamepad-trace-alignment.input.json +237 -0
  16. package/tests/repros/assets/repro-rp2040-zero-crystal-fallback-netlabels.input.json +121 -0
  17. package/tests/repros/repro-rp2040-gamepad-trace-alignment.test.ts +14 -0
  18. package/tests/repros/repro-rp2040-zero-crystal-fallback-netlabels.test.ts +16 -0
  19. package/tests/solvers/SchematicTraceSingleLineSolver2/segment-intersects-rect-interior.test.ts +15 -0
  20. package/tests/solvers/SchematicTraceSingleLineSolver2/segment-overlaps-rect-boundary-boundary.test.ts +18 -0
  21. package/tests/solvers/SchematicTraceSingleLineSolver2/segment-overlaps-rect-boundary-interior.test.ts +18 -0
@@ -0,0 +1,178 @@
1
+ <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-7.75,3.08 -5.4,3.08 -5.4,1.75" data-type="line" data-label="" points="135.9371727748691,179.05759162303664 234.36649214659684,179.05759162303664 234.36649214659684,234.76439790575915" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.75,1.52 -5.875,1.52 -5.875,1.95 -4,1.95 -4,1.75" data-type="line" data-label="" points="135.9371727748691,244.39790575916228 214.47120418848166,244.39790575916228 214.47120418848166,226.38743455497382 293.0052356020942,226.38743455497382 293.0052356020942,234.76439790575915" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-4,0.6499999999999999 -4,0.44999999999999973 -5.4,0.44999999999999973 -5.4,0.6499999999999999" data-type="line" data-label="" points="293.0052356020942,280.83769633507853 293.0052356020942,289.21465968586386 234.36649214659684,289.21465968586386 234.36649214659684,280.83769633507853" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.75,0.74 -6.575,0.74 -6.575,0.4499999999999999 -5.4,0.4499999999999999 -5.4,0.6499999999999999" data-type="line" data-label="" points="135.9371727748691,277.0680628272251 185.15183246073298,277.0680628272251 185.15183246073298,289.21465968586386 234.36649214659684,289.21465968586386 234.36649214659684,280.83769633507853" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.75,1 -7.55,1 -7.55,0.74 -7.75,0.74" data-type="line" data-label="" points="135.9371727748691,266.1780104712042 144.31413612565444,266.1780104712042 144.31413612565444,277.0680628272251 135.9371727748691,277.0680628272251" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.75,3.86 -7.65,3.86 -7.65,1 -7.75,1" data-type="line" data-label="" points="135.9371727748691,146.3874345549738 140.12565445026178,146.3874345549738 140.12565445026178,266.1780104712042 135.9371727748691,266.1780104712042" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.75,3.6 -7.55,3.6 -7.55,1.26 -7.75,1.26" data-type="line" data-label="" points="135.9371727748691,157.27748691099475 144.31413612565444,157.27748691099475 144.31413612565444,255.28795811518324 135.9371727748691,255.28795811518324" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.75,2.82 -7.45,2.82 -7.45,2.3 -7.75,2.3" data-type="line" data-label="" points="135.9371727748691,189.9476439790576 148.5026178010471,189.9476439790576 148.5026178010471,211.72774869109946 135.9371727748691,211.72774869109946" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.75,2.56 -7.3500000000000005,2.56 -7.3500000000000005,2.04 -7.75,2.04" data-type="line" data-label="" points="135.9371727748691,200.83769633507853 152.69109947643977,200.83769633507853 152.69109947643977,222.6178010471204 135.9371727748691,222.6178010471204" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.778,-1.905 -2.179,-1.905 -2.179,-0.6890000000000001 -1.978,-0.6890000000000001 -1.978,-0.635 -1.778,-0.635" data-type="line" data-label="" points="386.0732984293194,387.85340314136124 369.27748691099475,387.85340314136124 369.27748691099475,336.9214659685864 377.69633507853405,336.9214659685864 377.69633507853405,334.65968586387436 386.0732984293194,334.65968586387436" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.778,0.635 -1.978,0.635 -1.978,0.581 -2.179,0.581 -2.179,-0.635 -1.778,-0.635" data-type="line" data-label="" points="386.0732984293194,281.4659685863874 377.69633507853405,281.4659685863874 377.69633507853405,283.72774869109946 369.27748691099475,283.72774869109946 369.27748691099475,334.65968586387436 386.0732984293194,334.65968586387436" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.778,1.905 -1.978,1.905 -1.978,1.8510000000000002 -2.179,1.8510000000000002 -2.179,1.5970000000000002 -2.3589999999999995,1.5970000000000002 -2.3589999999999995,0.635 -1.778,0.635" data-type="line" data-label="" points="386.0732984293194,228.2722513089005 377.69633507853405,228.2722513089005 377.69633507853405,230.53403141361255 369.27748691099475,230.53403141361255 369.27748691099475,241.17277486910993 361.738219895288,241.17277486910993 361.738219895288,281.4659685863874 386.0732984293194,281.4659685863874" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0,-6.35 0,-6.55 -1.978,-6.55 -1.978,-2.613 -2.7790000000000004,-2.613 -2.7790000000000004,-2.2129999999999996 -2.4789999999999996,-2.2129999999999996 -2.4789999999999996,-1.9589999999999996 -1.978,-1.9589999999999996 -1.978,-1.905 -1.778,-1.905" data-type="line" data-label="" points="460.5445026178011,574.0314136125655 460.5445026178011,582.4083769633507 377.69633507853405,582.4083769633507 377.69633507853405,417.5078534031414 344.14659685863876,417.5078534031414 344.14659685863876,400.75392670157066 356.7120418848168,400.75392670157066 356.7120418848168,390.1151832460733 377.69633507853405,390.1151832460733 377.69633507853405,387.85340314136124 386.0732984293194,387.85340314136124" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.7780000000000005,-1.9050000000000011 2.179,-1.9050000000000011 2.179,-2.613 1.9779999999999998,-2.613 1.9779999999999998,-6.55 0,-6.55 0,-6.35" data-type="line" data-label="" points="535.0157068062828,387.8534031413613 551.8115183246074,387.8534031413613 551.8115183246074,417.5078534031414 543.3926701570681,417.5078534031414 543.3926701570681,582.4083769633507 460.5445026178011,582.4083769633507 460.5445026178011,574.0314136125655" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.778,-0.635 2.179,-0.635 2.179,-1.8510000000000002 1.978,-1.8510000000000002 1.978,-1.905 1.778,-1.905" data-type="line" data-label="" points="535.0157068062828,334.65968586387436 551.8115183246074,334.65968586387436 551.8115183246074,385.59162303664925 543.3926701570681,385.59162303664925 543.3926701570681,387.85340314136124 535.0157068062828,387.85340314136124" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.778,0.635 2.179,0.635 2.179,-0.07300000000000001 1.978,-0.07300000000000001 1.978,-0.635 1.778,-0.635" data-type="line" data-label="" points="535.0157068062828,281.4659685863874 551.8115183246074,281.4659685863874 551.8115183246074,311.12041884816756 543.3926701570681,311.12041884816756 543.3926701570681,334.65968586387436 535.0157068062828,334.65968586387436" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.778,1.905 1.978,1.905 1.978,1.089 2.539,1.089 2.539,0.6890000000000001 1.978,0.6890000000000001 1.978,0.635 1.778,0.635" data-type="line" data-label="" points="535.0157068062828,228.2722513089005 543.3926701570681,228.2722513089005 543.3926701570681,262.4502617801047 566.890052356021,262.4502617801047 566.890052356021,279.2041884816754 543.3926701570681,279.2041884816754 543.3926701570681,281.4659685863874 535.0157068062828,281.4659685863874" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-7.55,3.6 -7.35,3.6 -7.35,3.601" data-type="line" data-label="" points="144.31413612565444,157.27748691099475 152.69109947643977,157.27748691099475 152.69109947643977,157.23560209424082" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.778,2.413 1.9789999999999999,2.413 1.9789999999999999,2.4639999999999995" data-type="line" data-label="" points="535.0157068062828,206.99476439790575 543.4345549738221,206.99476439790575 543.4345549738221,204.85863874345551" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.762,6.35 -0.762,6.3999999999999995 -2.112,6.3999999999999995 -2.112,6.2989999999999995" data-type="line" data-label="" points="428.62827225130894,42.094240837696304 428.62827225130894,40 372.08376963350787,40 372.08376963350787,44.23036649214657" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="J2" data-x="0" data-y="0" x="386.0732984293194" y="42.094240837696304" width="148.94240837696339" height="531.9371727748692" fill="hsl(184, 100%, 50%, 0.8)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="USB1" data-x="-8.5" data-y="2.3" x="73.10994764397904" y="136.33507853403137" width="62.8272251308901" height="150.78534031413616" fill="hsl(133, 100%, 50%, 0.8)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="R1" data-x="-5.4" data-y="1.2" x="223.89528795811518" y="234.76439790575915" width="20.94240837696333" height="46.07329842931938" fill="hsl(71, 100%, 50%, 0.8)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="R2" data-x="-4" data-y="1.2" x="282.5340314136125" y="234.76439790575915" width="20.94240837696333" height="46.07329842931938" fill="hsl(72, 100%, 50%, 0.8)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: SDA
2
+ globalConnNetId: connectivity_net6" data-x="-1.9589999999999999" data-y="2.413" x="370.9528795811519" y="202.80628272251306" width="15.078534031413596" height="8.376963350785388" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: SCL
3
+ globalConnNetId: connectivity_net7" data-x="-1.9589999999999999" data-y="2.159" x="370.9528795811519" y="213.44502617801044" width="15.078534031413596" height="8.37696335078536" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: GND
4
+ globalConnNetId: connectivity_net31" data-x="0" data-y="-6.76" x="450.4921465968587" y="582.4083769633507" width="20.104712041884795" height="17.591623036649253" fill="#00000066" stroke="#000000" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: UP
5
+ globalConnNetId: connectivity_net8" data-x="-1.9289999999999998" data-y="1.651" x="373.4659685863875" y="234.72251308900525" width="12.565445026177997" height="8.37696335078536" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: DOWN
6
+ globalConnNetId: connectivity_net9" data-x="-2.0189999999999997" data-y="1.397" x="365.9267015706807" y="245.36125654450262" width="20.104712041884795" height="8.37696335078536" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: RIGHT
7
+ globalConnNetId: connectivity_net10" data-x="-2.049" data-y="1.143" x="363.413612565445" y="256" width="22.61780104712045" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: LEFT
8
+ globalConnNetId: connectivity_net11" data-x="-2.0189999999999997" data-y="0.889" x="365.9267015706807" y="266.6387434554974" width="20.104712041884795" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: B1
9
+ globalConnNetId: connectivity_net12" data-x="-1.9289999999999998" data-y="0.381" x="373.4659685863875" y="287.91623036649213" width="12.565445026177997" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: B2
10
+ globalConnNetId: connectivity_net13" data-x="-1.9289999999999998" data-y="0.127" x="373.4659685863875" y="298.5549738219895" width="12.565445026177997" height="8.376963350785388" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: R2
11
+ globalConnNetId: connectivity_net14" data-x="-1.9289999999999998" data-y="-0.127" x="373.4659685863875" y="309.19371727748694" width="12.565445026177997" height="8.376963350785388" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: L2
12
+ globalConnNetId: connectivity_net15" data-x="-1.9289999999999998" data-y="-0.381" x="373.4659685863875" y="319.8324607329843" width="12.565445026177997" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: B3
13
+ globalConnNetId: connectivity_net16" data-x="-1.9289999999999998" data-y="-0.889" x="373.4659685863875" y="341.10994764397907" width="12.565445026177997" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: B4
14
+ globalConnNetId: connectivity_net17" data-x="-1.9289999999999998" data-y="-1.143" x="373.4659685863875" y="351.74869109947645" width="12.565445026177997" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: R1
15
+ globalConnNetId: connectivity_net18" data-x="-1.9289999999999998" data-y="-1.397" x="373.4659685863875" y="362.3874345549738" width="12.565445026177997" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: L1
16
+ globalConnNetId: connectivity_net19" data-x="-1.9289999999999998" data-y="-1.651" x="373.4659685863875" y="373.0261780104712" width="12.565445026177997" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: TURBO
17
+ globalConnNetId: connectivity_net20" data-x="-2.0789999999999997" data-y="-2.159" x="360.9005235602094" y="394.303664921466" width="25.13089005235605" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: LED-TURBO
18
+ globalConnNetId: connectivity_net21" data-x="-2.229" data-y="-2.413" x="348.3350785340314" y="404.9424083769633" width="37.69633507853405" height="8.376963350785388" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: S1
19
+ globalConnNetId: connectivity_net22" data-x="1.9289999999999998" data-y="-2.413" x="535.0575916230367" y="404.9424083769633" width="12.56544502617794" height="8.376963350785388" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: S2
20
+ globalConnNetId: connectivity_net23" data-x="1.9289999999999998" data-y="-2.159" x="535.0575916230367" y="394.303664921466" width="12.56544502617794" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: L3
21
+ globalConnNetId: connectivity_net24" data-x="1.9289999999999998" data-y="-1.651" x="535.0575916230367" y="373.0261780104712" width="12.56544502617794" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: R3
22
+ globalConnNetId: connectivity_net25" data-x="1.9289999999999998" data-y="-1.397" x="535.0575916230367" y="362.3874345549738" width="12.56544502617794" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: A1
23
+ globalConnNetId: connectivity_net26" data-x="1.9289999999999998" data-y="-1.143" x="535.0575916230367" y="351.74869109947645" width="12.56544502617794" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: A2
24
+ globalConnNetId: connectivity_net27" data-x="1.9289999999999998" data-y="-0.889" x="535.0575916230367" y="341.10994764397907" width="12.56544502617794" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: R5
25
+ globalConnNetId: connectivity_net28" data-x="1.9289999999999998" data-y="0.127" x="535.0575916230367" y="298.5549738219895" width="12.56544502617794" height="8.376963350785388" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: L5
26
+ globalConnNetId: connectivity_net29" data-x="1.9289999999999998" data-y="0.381" x="535.0575916230367" y="287.91623036649213" width="12.56544502617794" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: LED-RGB
27
+ globalConnNetId: connectivity_net30" data-x="2.109" data-y="0.889" x="535.0575916230368" y="266.6387434554974" width="27.643979057591537" height="8.376963350785331" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: V5
28
+ globalConnNetId: connectivity_net3" data-x="-7.35" data-y="3.811" x="146.40837696335075" y="139.6439790575916" width="12.565445026178054" height="17.591623036649224" fill="#ef444466" stroke="#ef4444" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: V5
29
+ globalConnNetId: connectivity_net3" data-x="1.9789999999999999" data-y="2.6739999999999995" x="537.151832460733" y="187.26701570680626" width="12.565445026178054" height="17.591623036649224" fill="#ef444466" stroke="#ef4444" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: GNDPWR
30
+ globalConnNetId: connectivity_net2" data-x="-4" data-y="0.23999999999999974" x="279.1832460732984" y="289.21465968586386" width="27.64397905759165" height="17.591623036649253" fill="#00000066" stroke="#000000" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: GNDPWR
31
+ globalConnNetId: connectivity_net2" data-x="-2.112" data-y="6.0889999999999995" x="358.26178010471205" y="44.23036649214659" width="27.64397905759165" height="17.591623036649224" fill="#00000066" stroke="#000000" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: USB1.CC1 to R1.1
32
+ globalConnNetId: connectivity_net0" data-x="-5.4" data-y="3.305" x="230.17801047120417" y="160.2094240837696" width="8.376963350785331" height="18.848167539267052" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: D-
33
+ globalConnNetId: connectivity_net4" data-x="-7.3" data-y="2.82" x="148.5026178010471" y="185.75916230366494" width="12.565445026178054" height="8.37696335078536" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: D+
34
+ globalConnNetId: connectivity_net5" data-x="-7.2" data-y="2.56" x="152.6910994764398" y="196.64921465968587" width="12.565445026177997" height="8.37696335078536" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><rect data-type="rect" data-label="netId: USB1.CC2 to R2.1
35
+ globalConnNetId: connectivity_net1" data-x="-4" data-y="2.175" x="288.81675392670155" y="207.5392670157068" width="8.376963350785331" height="18.848167539267024" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.023874999999999997"/></g><g><circle data-type="point" data-label="J2.1
36
+ x-" data-x="-1.778" data-y="2.413" cx="386.0732984293194" cy="206.99476439790575" r="3" fill="hsl(99, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.2
37
+ x-" data-x="-1.778" data-y="2.159" cx="386.0732984293194" cy="217.63350785340313" r="3" fill="hsl(100, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.3
38
+ x-" data-x="-1.778" data-y="1.905" cx="386.0732984293194" cy="228.2722513089005" r="3" fill="hsl(101, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.4
39
+ x-" data-x="-1.778" data-y="1.651" cx="386.0732984293194" cy="238.9109947643979" r="3" fill="hsl(102, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.5
40
+ x-" data-x="-1.778" data-y="1.397" cx="386.0732984293194" cy="249.5497382198953" r="3" fill="hsl(103, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.6
41
+ x-" data-x="-1.778" data-y="1.143" cx="386.0732984293194" cy="260.18848167539267" r="3" fill="hsl(104, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.7
42
+ x-" data-x="-1.778" data-y="0.889" cx="386.0732984293194" cy="270.82722513089004" r="3" fill="hsl(105, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.8
43
+ x-" data-x="-1.778" data-y="0.635" cx="386.0732984293194" cy="281.4659685863874" r="3" fill="hsl(106, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.9
44
+ x-" data-x="-1.778" data-y="0.381" cx="386.0732984293194" cy="292.1047120418848" r="3" fill="hsl(107, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.10
45
+ x-" data-x="-1.778" data-y="0.127" cx="386.0732984293194" cy="302.7434554973822" r="3" fill="hsl(237, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.11
46
+ x-" data-x="-1.778" data-y="-0.127" cx="386.0732984293194" cy="313.3821989528796" r="3" fill="hsl(238, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.12
47
+ x-" data-x="-1.778" data-y="-0.381" cx="386.0732984293194" cy="324.020942408377" r="3" fill="hsl(239, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.13
48
+ x-" data-x="-1.778" data-y="-0.635" cx="386.0732984293194" cy="334.65968586387436" r="3" fill="hsl(240, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.14
49
+ x-" data-x="-1.778" data-y="-0.889" cx="386.0732984293194" cy="345.29842931937173" r="3" fill="hsl(241, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.15
50
+ x-" data-x="-1.778" data-y="-1.143" cx="386.0732984293194" cy="355.9371727748691" r="3" fill="hsl(242, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.16
51
+ x-" data-x="-1.778" data-y="-1.397" cx="386.0732984293194" cy="366.5759162303665" r="3" fill="hsl(243, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.17
52
+ x-" data-x="-1.778" data-y="-1.651" cx="386.0732984293194" cy="377.21465968586386" r="3" fill="hsl(244, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.18
53
+ x-" data-x="-1.778" data-y="-1.905" cx="386.0732984293194" cy="387.85340314136124" r="3" fill="hsl(245, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.19
54
+ x-" data-x="-1.778" data-y="-2.159" cx="386.0732984293194" cy="398.4921465968587" r="3" fill="hsl(246, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.20
55
+ x-" data-x="-1.778" data-y="-2.413" cx="386.0732984293194" cy="409.130890052356" r="3" fill="hsl(268, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.21
56
+ x+" data-x="1.778" data-y="-2.413" cx="535.0157068062828" cy="409.130890052356" r="3" fill="hsl(269, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.22
57
+ x+" data-x="1.778" data-y="-2.159" cx="535.0157068062828" cy="398.4921465968587" r="3" fill="hsl(270, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.23
58
+ x+" data-x="1.778" data-y="-1.905" cx="535.0157068062828" cy="387.85340314136124" r="3" fill="hsl(271, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.24
59
+ x+" data-x="1.778" data-y="-1.651" cx="535.0157068062828" cy="377.21465968586386" r="3" fill="hsl(272, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.25
60
+ x+" data-x="1.778" data-y="-1.397" cx="535.0157068062828" cy="366.5759162303665" r="3" fill="hsl(273, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.26
61
+ x+" data-x="1.778" data-y="-1.143" cx="535.0157068062828" cy="355.9371727748691" r="3" fill="hsl(274, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.27
62
+ x+" data-x="1.778" data-y="-0.889" cx="535.0157068062828" cy="345.29842931937173" r="3" fill="hsl(275, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.28
63
+ x+" data-x="1.778" data-y="-0.635" cx="535.0157068062828" cy="334.65968586387436" r="3" fill="hsl(276, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.29
64
+ x+" data-x="1.778" data-y="-0.381" cx="535.0157068062828" cy="324.020942408377" r="3" fill="hsl(277, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.30
65
+ x+" data-x="1.778" data-y="-0.127" cx="535.0157068062828" cy="313.3821989528796" r="3" fill="hsl(299, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.31
66
+ x+" data-x="1.778" data-y="0.127" cx="535.0157068062828" cy="302.7434554973822" r="3" fill="hsl(300, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.32
67
+ x+" data-x="1.778" data-y="0.381" cx="535.0157068062828" cy="292.1047120418848" r="3" fill="hsl(301, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.33
68
+ x+" data-x="1.778" data-y="0.635" cx="535.0157068062828" cy="281.4659685863874" r="3" fill="hsl(302, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.34
69
+ x+" data-x="1.778" data-y="0.889" cx="535.0157068062828" cy="270.82722513089004" r="3" fill="hsl(303, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.35
70
+ x+" data-x="1.778" data-y="1.143" cx="535.0157068062828" cy="260.18848167539267" r="3" fill="hsl(304, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.36
71
+ x+" data-x="1.778" data-y="1.397" cx="535.0157068062828" cy="249.5497382198953" r="3" fill="hsl(305, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.37
72
+ x+" data-x="1.778" data-y="1.651" cx="535.0157068062828" cy="238.9109947643979" r="3" fill="hsl(306, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.38
73
+ x+" data-x="1.778" data-y="1.905" cx="535.0157068062828" cy="228.2722513089005" r="3" fill="hsl(307, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.39
74
+ x+" data-x="1.778" data-y="2.159" cx="535.0157068062828" cy="217.63350785340313" r="3" fill="hsl(308, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.40
75
+ x+" data-x="1.778" data-y="2.413" cx="535.0157068062828" cy="206.99476439790575" r="3" fill="hsl(330, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.TP1
76
+ y+" data-x="-0.762" data-y="6.35" cx="428.62827225130894" cy="42.094240837696304" r="3" fill="hsl(263, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.TP2
77
+ y+" data-x="-0.508" data-y="6.35" cx="439.2670157068063" cy="42.094240837696304" r="3" fill="hsl(264, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.TP3
78
+ y+" data-x="-0.254" data-y="6.35" cx="449.9057591623037" cy="42.094240837696304" r="3" fill="hsl(265, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.TP4
79
+ y+" data-x="0" data-y="6.35" cx="460.5445026178011" cy="42.094240837696304" r="3" fill="hsl(266, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.TP5
80
+ y+" data-x="0.254" data-y="6.35" cx="471.18324607329845" cy="42.094240837696304" r="3" fill="hsl(267, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.TP6
81
+ y+" data-x="0.508" data-y="6.35" cx="481.8219895287958" cy="42.094240837696304" r="3" fill="hsl(268, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.D1
82
+ y-" data-x="-0.254" data-y="-6.35" cx="449.9057591623037" cy="574.0314136125655" r="3" fill="hsl(107, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.D2
83
+ y-" data-x="0" data-y="-6.35" cx="460.5445026178011" cy="574.0314136125655" r="3" fill="hsl(108, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="J2.D3
84
+ y-" data-x="0.254" data-y="-6.35" cx="471.18324607329845" cy="574.0314136125655" r="3" fill="hsl(109, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.1
85
+ x+" data-x="-7.75" data-y="3.86" cx="135.9371727748691" cy="146.3874345549738" r="3" fill="hsl(48, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.2
86
+ x+" data-x="-7.75" data-y="3.6" cx="135.9371727748691" cy="157.27748691099475" r="3" fill="hsl(49, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.3
87
+ x+" data-x="-7.75" data-y="3.34" cx="135.9371727748691" cy="168.16753926701568" r="3" fill="hsl(50, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.4
88
+ x+" data-x="-7.75" data-y="3.08" cx="135.9371727748691" cy="179.05759162303664" r="3" fill="hsl(51, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.5
89
+ x+" data-x="-7.75" data-y="2.82" cx="135.9371727748691" cy="189.9476439790576" r="3" fill="hsl(52, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.6
90
+ x+" data-x="-7.75" data-y="2.56" cx="135.9371727748691" cy="200.83769633507853" r="3" fill="hsl(53, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.7
91
+ x+" data-x="-7.75" data-y="2.3" cx="135.9371727748691" cy="211.72774869109946" r="3" fill="hsl(54, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.8
92
+ x+" data-x="-7.75" data-y="2.04" cx="135.9371727748691" cy="222.6178010471204" r="3" fill="hsl(55, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.9
93
+ x+" data-x="-7.75" data-y="1.78" cx="135.9371727748691" cy="233.50785340314135" r="3" fill="hsl(56, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.10
94
+ x+" data-x="-7.75" data-y="1.52" cx="135.9371727748691" cy="244.39790575916228" r="3" fill="hsl(96, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.11
95
+ x+" data-x="-7.75" data-y="1.26" cx="135.9371727748691" cy="255.28795811518324" r="3" fill="hsl(97, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.12
96
+ x+" data-x="-7.75" data-y="1" cx="135.9371727748691" cy="266.1780104712042" r="3" fill="hsl(98, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="USB1.13
97
+ x+" data-x="-7.75" data-y="0.74" cx="135.9371727748691" cy="277.0680628272251" r="3" fill="hsl(99, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R1.1
98
+ y+" data-x="-5.4" data-y="1.75" cx="234.36649214659684" cy="234.76439790575915" r="3" fill="hsl(226, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R1.2
99
+ y-" data-x="-5.4" data-y="0.6499999999999999" cx="234.36649214659684" cy="280.83769633507853" r="3" fill="hsl(227, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R2.1
100
+ y+" data-x="-4" data-y="1.75" cx="293.0052356020942" cy="234.76439790575915" r="3" fill="hsl(107, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R2.2
101
+ y-" data-x="-4" data-y="0.6499999999999999" cx="293.0052356020942" cy="280.83769633507853" r="3" fill="hsl(108, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
102
+ orientation: x-" data-x="-1.778" data-y="2.413" cx="386.0732984293194" cy="206.99476439790575" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
103
+ orientation: x-" data-x="-1.778" data-y="2.159" cx="386.0732984293194" cy="217.63350785340313" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
104
+ orientation: y-" data-x="0" data-y="-6.55" cx="460.5445026178011" cy="582.4083769633507" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
105
+ orientation: x-" data-x="-1.778" data-y="1.651" cx="386.0732984293194" cy="238.9109947643979" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
106
+ orientation: x-" data-x="-1.778" data-y="1.397" cx="386.0732984293194" cy="249.5497382198953" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
107
+ orientation: x-" data-x="-1.778" data-y="1.143" cx="386.0732984293194" cy="260.18848167539267" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
108
+ orientation: x-" data-x="-1.778" data-y="0.889" cx="386.0732984293194" cy="270.82722513089004" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
109
+ orientation: x-" data-x="-1.778" data-y="0.381" cx="386.0732984293194" cy="292.1047120418848" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
110
+ orientation: x-" data-x="-1.778" data-y="0.127" cx="386.0732984293194" cy="302.7434554973822" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
111
+ orientation: x-" data-x="-1.778" data-y="-0.127" cx="386.0732984293194" cy="313.3821989528796" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
112
+ orientation: x-" data-x="-1.778" data-y="-0.381" cx="386.0732984293194" cy="324.020942408377" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
113
+ orientation: x-" data-x="-1.778" data-y="-0.889" cx="386.0732984293194" cy="345.29842931937173" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
114
+ orientation: x-" data-x="-1.778" data-y="-1.143" cx="386.0732984293194" cy="355.9371727748691" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
115
+ orientation: x-" data-x="-1.778" data-y="-1.397" cx="386.0732984293194" cy="366.5759162303665" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
116
+ orientation: x-" data-x="-1.778" data-y="-1.651" cx="386.0732984293194" cy="377.21465968586386" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
117
+ orientation: x-" data-x="-1.778" data-y="-2.159" cx="386.0732984293194" cy="398.4921465968587" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
118
+ orientation: x-" data-x="-1.778" data-y="-2.413" cx="386.0732984293194" cy="409.130890052356" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
119
+ orientation: x+" data-x="1.778" data-y="-2.413" cx="535.0157068062828" cy="409.130890052356" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
120
+ orientation: x+" data-x="1.778" data-y="-2.159" cx="535.0157068062828" cy="398.4921465968587" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
121
+ orientation: x+" data-x="1.778" data-y="-1.651" cx="535.0157068062828" cy="377.21465968586386" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
122
+ orientation: x+" data-x="1.778" data-y="-1.397" cx="535.0157068062828" cy="366.5759162303665" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
123
+ orientation: x+" data-x="1.778" data-y="-1.143" cx="535.0157068062828" cy="355.9371727748691" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
124
+ orientation: x+" data-x="1.778" data-y="-0.889" cx="535.0157068062828" cy="345.29842931937173" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
125
+ orientation: x+" data-x="1.778" data-y="0.127" cx="535.0157068062828" cy="302.7434554973822" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
126
+ orientation: x+" data-x="1.778" data-y="0.381" cx="535.0157068062828" cy="292.1047120418848" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
127
+ orientation: x+" data-x="1.778" data-y="0.889" cx="535.0157068062828" cy="270.82722513089004" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
128
+ orientation: y+" data-x="-7.35" data-y="3.601" cx="152.69109947643977" cy="157.23560209424082" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
129
+ orientation: y+" data-x="1.9789999999999999" data-y="2.4639999999999995" cx="543.4345549738221" cy="204.85863874345551" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
130
+ orientation: y-" data-x="-4" data-y="0.44999999999999973" cx="293.0052356020942" cy="289.21465968586386" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
131
+ orientation: y-" data-x="-2.112" data-y="6.2989999999999995" cx="372.08376963350787" cy="44.23036649214657" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
132
+ orientation: y+" data-x="-5.4" data-y="3.08" cx="234.36649214659684" cy="179.05759162303664" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
133
+ orientation: x+" data-x="-7.45" data-y="2.82" cx="148.5026178010471" cy="189.9476439790576" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
134
+ orientation: x+" data-x="-7.3500000000000005" data-y="2.56" cx="152.69109947643977" cy="200.83769633507853" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
135
+ orientation: y+" data-x="-4" data-y="1.95" cx="293.0052356020942" cy="226.38743455497382" 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[
136
+ document.currentScript.parentElement.addEventListener('mousemove', (e) => {
137
+ const svg = e.currentTarget;
138
+ const rect = svg.getBoundingClientRect();
139
+ const x = e.clientX - rect.left;
140
+ const y = e.clientY - rect.top;
141
+ const crosshair = svg.getElementById('crosshair');
142
+ const h = svg.getElementById('crosshair-h');
143
+ const v = svg.getElementById('crosshair-v');
144
+ const coords = svg.getElementById('coordinates');
145
+
146
+ crosshair.style.display = 'block';
147
+ h.setAttribute('x1', '0');
148
+ h.setAttribute('x2', '640');
149
+ h.setAttribute('y1', y);
150
+ h.setAttribute('y2', y);
151
+ v.setAttribute('x1', x);
152
+ v.setAttribute('x2', x);
153
+ v.setAttribute('y1', '0');
154
+ v.setAttribute('y2', '640');
155
+
156
+ // Calculate real coordinates using inverse transformation
157
+ const matrix = {"a":41.88481675392671,"c":0,"e":460.5445026178011,"b":0,"d":-41.88481675392671,"f":308.0628272251309};
158
+ // Manually invert and apply the affine transform
159
+ // Since we only use translate and scale, we can directly compute:
160
+ // x' = (x - tx) / sx
161
+ // y' = (y - ty) / sy
162
+ const sx = matrix.a;
163
+ const sy = matrix.d;
164
+ const tx = matrix.e;
165
+ const ty = matrix.f;
166
+ const realPoint = {
167
+ x: (x - tx) / sx,
168
+ y: (y - ty) / sy // Flip y back since we used negative scale
169
+ }
170
+
171
+ coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
172
+ coords.setAttribute('x', (x + 5).toString());
173
+ coords.setAttribute('y', (y - 5).toString());
174
+ });
175
+ document.currentScript.parentElement.addEventListener('mouseleave', () => {
176
+ document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
177
+ });
178
+ ]]></script></svg>
@@ -0,0 +1,54 @@
1
+ <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.06999999999999984,0.37 1.1,-0.28" data-type="line" data-label="" points="337.47675962815407,262.73572377158035 511.5006640106242,359.4156706507304" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.06999999999999984,0.37 1.07,0.37000000000000005" data-type="line" data-label="" points="337.47675962815407,262.73572377158035 507.03851261620184,262.73572377158035" fill="none" stroke="hsl(224, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.07,0.37000000000000005 1.07,0.17000000000000004 1.1,0.17000000000000004 1.1,-0.2800000000000001" data-type="line" data-label="" points="507.03851261620184,262.73572377158035 507.03851261620184,292.48339973439573 511.5006640106242,292.48339973439573 511.5006640106242,359.4156706507304" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.06999999999999984,0.37 1.07,0.37000000000000005" data-type="line" data-label="" points="337.47675962815407,262.73572377158035 507.03851261620184,262.73572377158035" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="1.105" data-y="0.67" x="440.10624169986716" y="173.4926958831341" width="144.27622841965467" height="89.24302788844622" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006723214285714286"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="1.1725" data-y="-0.66" x="444.56839309428943" y="359.41567065073036" width="155.4316069057105" height="113.0411686586985" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006723214285714286"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-1.07" data-y="0.47" x="39.99999999999997" y="203.24037184594957" width="297.47675962815407" height="89.24302788844619" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006723214285714286"/></g><g><rect data-type="rect" data-label="ABM8_272_T3" data-x="-1.0100000000000002" data-y="0.039999999999999925" x="99.49535192563081" y="298.4329349269588" width="196.3346613545816" height="26.772908366533898" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.006723214285714286"/></g><g><rect data-type="rect" data-label="X1" data-x="-1.5500000000000003" data-y="0.885" x="90.57104913678613" y="167.54316069057106" width="53.54581673306777" height="37.18459495351925" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.006723214285714286"/></g><g><rect data-type="rect" data-label="netId: .X1 &gt; .XTAL2 to R8.pin2
2
+ globalConnNetId: connectivity_net0" data-x="0.5000000000000001" data-y="0.595" x="407.3837981407702" y="195.80345285524567" width="29.747675962815435" height="66.93227091633466" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.006723214285714286"/></g><g><circle data-type="point" data-label="R8.1
3
+ y+" data-x="1.07" data-y="0.97" cx="507.03851261620184" cy="173.49269588313413" r="3" fill="hsl(113, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R8.2
4
+ y-" data-x="1.07" data-y="0.37000000000000005" cx="507.03851261620184" cy="262.73572377158035" r="3" fill="hsl(114, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="C17.1
5
+ y+" data-x="1.1" data-y="-0.28" cx="511.5006640106242" cy="359.4156706507304" r="3" fill="hsl(116, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="C17.2
6
+ y-" data-x="1.1" data-y="-1.04" cx="511.5006640106242" cy="472.4568393094289" r="3" fill="hsl(117, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="X1.1
7
+ x-" data-x="-2.0700000000000003" data-y="0.57" cx="40" cy="232.98804780876495" r="3" fill="hsl(52, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="X1.2
8
+ x-" data-x="-2.0700000000000003" data-y="0.37" cx="40" cy="262.73572377158035" r="3" fill="hsl(53, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="X1.3
9
+ x+" data-x="-0.06999999999999984" data-y="0.37" cx="337.47675962815407" cy="262.73572377158035" r="3" fill="hsl(54, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="X1.4
10
+ x+" data-x="-0.06999999999999984" data-y="0.57" cx="337.47675962815407" cy="232.98804780876495" r="3" fill="hsl(55, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
11
+ orientation: y+" data-x="0.5000000000000001" data-y="0.37" cx="422.2576361221779" cy="262.73572377158035" 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[
12
+ document.currentScript.parentElement.addEventListener('mousemove', (e) => {
13
+ const svg = e.currentTarget;
14
+ const rect = svg.getBoundingClientRect();
15
+ const x = e.clientX - rect.left;
16
+ const y = e.clientY - rect.top;
17
+ const crosshair = svg.getElementById('crosshair');
18
+ const h = svg.getElementById('crosshair-h');
19
+ const v = svg.getElementById('crosshair-v');
20
+ const coords = svg.getElementById('coordinates');
21
+
22
+ crosshair.style.display = 'block';
23
+ h.setAttribute('x1', '0');
24
+ h.setAttribute('x2', '640');
25
+ h.setAttribute('y1', y);
26
+ h.setAttribute('y2', y);
27
+ v.setAttribute('x1', x);
28
+ v.setAttribute('x2', x);
29
+ v.setAttribute('y1', '0');
30
+ v.setAttribute('y2', '640');
31
+
32
+ // Calculate real coordinates using inverse transformation
33
+ const matrix = {"a":148.738379814077,"c":0,"e":347.8884462151394,"b":0,"d":-148.738379814077,"f":317.76892430278883};
34
+ // Manually invert and apply the affine transform
35
+ // Since we only use translate and scale, we can directly compute:
36
+ // x' = (x - tx) / sx
37
+ // y' = (y - ty) / sy
38
+ const sx = matrix.a;
39
+ const sy = matrix.d;
40
+ const tx = matrix.e;
41
+ const ty = matrix.f;
42
+ const realPoint = {
43
+ x: (x - tx) / sx,
44
+ y: (y - ty) / sy // Flip y back since we used negative scale
45
+ }
46
+
47
+ coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
48
+ coords.setAttribute('x', (x + 5).toString());
49
+ coords.setAttribute('y', (y - 5).toString());
50
+ });
51
+ document.currentScript.parentElement.addEventListener('mouseleave', () => {
52
+ document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
53
+ });
54
+ ]]></script></svg>
@@ -0,0 +1,237 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "J2",
5
+ "center": {
6
+ "x": 0,
7
+ "y": 0
8
+ },
9
+ "width": 2.54,
10
+ "height": 11.684,
11
+ "pins": [
12
+ { "pinId": "J2.1", "x": -1.778, "y": 2.413 },
13
+ { "pinId": "J2.2", "x": -1.778, "y": 2.159 },
14
+ { "pinId": "J2.3", "x": -1.778, "y": 1.905 },
15
+ { "pinId": "J2.4", "x": -1.778, "y": 1.651 },
16
+ { "pinId": "J2.5", "x": -1.778, "y": 1.397 },
17
+ { "pinId": "J2.6", "x": -1.778, "y": 1.143 },
18
+ { "pinId": "J2.7", "x": -1.778, "y": 0.889 },
19
+ { "pinId": "J2.8", "x": -1.778, "y": 0.635 },
20
+ { "pinId": "J2.9", "x": -1.778, "y": 0.381 },
21
+ { "pinId": "J2.10", "x": -1.778, "y": 0.127 },
22
+ { "pinId": "J2.11", "x": -1.778, "y": -0.127 },
23
+ { "pinId": "J2.12", "x": -1.778, "y": -0.381 },
24
+ { "pinId": "J2.13", "x": -1.778, "y": -0.635 },
25
+ { "pinId": "J2.14", "x": -1.778, "y": -0.889 },
26
+ { "pinId": "J2.15", "x": -1.778, "y": -1.143 },
27
+ { "pinId": "J2.16", "x": -1.778, "y": -1.397 },
28
+ { "pinId": "J2.17", "x": -1.778, "y": -1.651 },
29
+ { "pinId": "J2.18", "x": -1.778, "y": -1.905 },
30
+ { "pinId": "J2.19", "x": -1.778, "y": -2.159 },
31
+ { "pinId": "J2.20", "x": -1.778, "y": -2.413 },
32
+ { "pinId": "J2.21", "x": 1.778, "y": -2.413 },
33
+ { "pinId": "J2.22", "x": 1.778, "y": -2.159 },
34
+ { "pinId": "J2.23", "x": 1.778, "y": -1.905 },
35
+ { "pinId": "J2.24", "x": 1.778, "y": -1.651 },
36
+ { "pinId": "J2.25", "x": 1.778, "y": -1.397 },
37
+ { "pinId": "J2.26", "x": 1.778, "y": -1.143 },
38
+ { "pinId": "J2.27", "x": 1.778, "y": -0.889 },
39
+ { "pinId": "J2.28", "x": 1.778, "y": -0.635 },
40
+ { "pinId": "J2.29", "x": 1.778, "y": -0.381 },
41
+ { "pinId": "J2.30", "x": 1.778, "y": -0.127 },
42
+ { "pinId": "J2.31", "x": 1.778, "y": 0.127 },
43
+ { "pinId": "J2.32", "x": 1.778, "y": 0.381 },
44
+ { "pinId": "J2.33", "x": 1.778, "y": 0.635 },
45
+ { "pinId": "J2.34", "x": 1.778, "y": 0.889 },
46
+ { "pinId": "J2.35", "x": 1.778, "y": 1.143 },
47
+ { "pinId": "J2.36", "x": 1.778, "y": 1.397 },
48
+ { "pinId": "J2.37", "x": 1.778, "y": 1.651 },
49
+ { "pinId": "J2.38", "x": 1.778, "y": 1.905 },
50
+ { "pinId": "J2.39", "x": 1.778, "y": 2.159 },
51
+ { "pinId": "J2.40", "x": 1.778, "y": 2.413 },
52
+ { "pinId": "J2.TP1", "x": -0.762, "y": 6.35 },
53
+ { "pinId": "J2.TP2", "x": -0.508, "y": 6.35 },
54
+ { "pinId": "J2.TP3", "x": -0.254, "y": 6.35 },
55
+ { "pinId": "J2.TP4", "x": 0, "y": 6.35 },
56
+ { "pinId": "J2.TP5", "x": 0.254, "y": 6.35 },
57
+ { "pinId": "J2.TP6", "x": 0.508, "y": 6.35 },
58
+ { "pinId": "J2.D1", "x": -0.254, "y": -6.35 },
59
+ { "pinId": "J2.D2", "x": 0, "y": -6.35 },
60
+ { "pinId": "J2.D3", "x": 0.254, "y": -6.35 }
61
+ ]
62
+ },
63
+ {
64
+ "chipId": "USB1",
65
+ "center": {
66
+ "x": -8.5,
67
+ "y": 2.3
68
+ },
69
+ "width": 1.5,
70
+ "height": 3.6,
71
+ "pins": [
72
+ { "pinId": "USB1.1", "x": -7.75, "y": 3.86 },
73
+ { "pinId": "USB1.2", "x": -7.75, "y": 3.6 },
74
+ { "pinId": "USB1.3", "x": -7.75, "y": 3.34 },
75
+ { "pinId": "USB1.4", "x": -7.75, "y": 3.08 },
76
+ { "pinId": "USB1.5", "x": -7.75, "y": 2.82 },
77
+ { "pinId": "USB1.6", "x": -7.75, "y": 2.56 },
78
+ { "pinId": "USB1.7", "x": -7.75, "y": 2.3 },
79
+ { "pinId": "USB1.8", "x": -7.75, "y": 2.04 },
80
+ { "pinId": "USB1.9", "x": -7.75, "y": 1.78 },
81
+ { "pinId": "USB1.10", "x": -7.75, "y": 1.52 },
82
+ { "pinId": "USB1.11", "x": -7.75, "y": 1.26 },
83
+ { "pinId": "USB1.12", "x": -7.75, "y": 1 },
84
+ { "pinId": "USB1.13", "x": -7.75, "y": 0.74 }
85
+ ]
86
+ },
87
+ {
88
+ "chipId": "R1",
89
+ "center": {
90
+ "x": -5.4,
91
+ "y": 1.2
92
+ },
93
+ "width": 0.5,
94
+ "height": 1,
95
+ "pins": [
96
+ { "pinId": "R1.1", "x": -5.4, "y": 1.75 },
97
+ { "pinId": "R1.2", "x": -5.4, "y": 0.65 }
98
+ ]
99
+ },
100
+ {
101
+ "chipId": "R2",
102
+ "center": {
103
+ "x": -4,
104
+ "y": 1.2
105
+ },
106
+ "width": 0.5,
107
+ "height": 1,
108
+ "pins": [
109
+ { "pinId": "R2.1", "x": -4, "y": 1.75 },
110
+ { "pinId": "R2.2", "x": -4, "y": 0.65 }
111
+ ]
112
+ }
113
+ ],
114
+ "directConnections": [
115
+ {
116
+ "pinIds": ["USB1.4", "R1.1"],
117
+ "netId": "USB1.CC1 to R1.1"
118
+ },
119
+ {
120
+ "pinIds": ["USB1.10", "R2.1"],
121
+ "netId": "USB1.CC2 to R2.1"
122
+ }
123
+ ],
124
+ "netConnections": [
125
+ {
126
+ "netId": "GNDPWR",
127
+ "pinIds": [
128
+ "USB1.1",
129
+ "USB1.12",
130
+ "USB1.13",
131
+ "R1.2",
132
+ "R2.2",
133
+ "J2.TP1"
134
+ ],
135
+ "netLabelWidth": 0.42,
136
+ "netLabelHeight": 0.66
137
+ },
138
+ {
139
+ "netId": "V5",
140
+ "pinIds": ["USB1.2", "USB1.11", "J2.40"],
141
+ "netLabelWidth": 0.42,
142
+ "netLabelHeight": 0.3
143
+ },
144
+ {
145
+ "netId": "D-",
146
+ "pinIds": ["USB1.5", "USB1.7"],
147
+ "netLabelWidth": 0.3
148
+ },
149
+ {
150
+ "netId": "D+",
151
+ "pinIds": ["USB1.6", "USB1.8"],
152
+ "netLabelWidth": 0.3
153
+ },
154
+ { "netId": "SDA", "pinIds": ["J2.1"], "netLabelWidth": 0.36 },
155
+ { "netId": "SCL", "pinIds": ["J2.2"], "netLabelWidth": 0.36 },
156
+ { "netId": "UP", "pinIds": ["J2.4"], "netLabelWidth": 0.3 },
157
+ { "netId": "DOWN", "pinIds": ["J2.5"], "netLabelWidth": 0.48 },
158
+ { "netId": "RIGHT", "pinIds": ["J2.6"], "netLabelWidth": 0.54 },
159
+ { "netId": "LEFT", "pinIds": ["J2.7"], "netLabelWidth": 0.48 },
160
+ { "netId": "B1", "pinIds": ["J2.9"], "netLabelWidth": 0.3 },
161
+ { "netId": "B2", "pinIds": ["J2.10"], "netLabelWidth": 0.3 },
162
+ { "netId": "R2", "pinIds": ["J2.11"], "netLabelWidth": 0.3 },
163
+ { "netId": "L2", "pinIds": ["J2.12"], "netLabelWidth": 0.3 },
164
+ { "netId": "B3", "pinIds": ["J2.14"], "netLabelWidth": 0.3 },
165
+ { "netId": "B4", "pinIds": ["J2.15"], "netLabelWidth": 0.3 },
166
+ { "netId": "R1", "pinIds": ["J2.16"], "netLabelWidth": 0.3 },
167
+ { "netId": "L1", "pinIds": ["J2.17"], "netLabelWidth": 0.3 },
168
+ { "netId": "TURBO", "pinIds": ["J2.19"], "netLabelWidth": 0.6 },
169
+ {
170
+ "netId": "LED-TURBO",
171
+ "pinIds": ["J2.20"],
172
+ "netLabelWidth": 0.9
173
+ },
174
+ { "netId": "S1", "pinIds": ["J2.21"], "netLabelWidth": 0.3 },
175
+ { "netId": "S2", "pinIds": ["J2.22"], "netLabelWidth": 0.3 },
176
+ { "netId": "L3", "pinIds": ["J2.24"], "netLabelWidth": 0.3 },
177
+ { "netId": "R3", "pinIds": ["J2.25"], "netLabelWidth": 0.3 },
178
+ { "netId": "A1", "pinIds": ["J2.26"], "netLabelWidth": 0.3 },
179
+ { "netId": "A2", "pinIds": ["J2.27"], "netLabelWidth": 0.3 },
180
+ { "netId": "R5", "pinIds": ["J2.31"], "netLabelWidth": 0.3 },
181
+ { "netId": "L5", "pinIds": ["J2.32"], "netLabelWidth": 0.3 },
182
+ {
183
+ "netId": "LED-RGB",
184
+ "pinIds": ["J2.34"],
185
+ "netLabelWidth": 0.66
186
+ },
187
+ {
188
+ "netId": "GND",
189
+ "pinIds": [
190
+ "J2.3",
191
+ "J2.8",
192
+ "J2.13",
193
+ "J2.18",
194
+ "J2.23",
195
+ "J2.28",
196
+ "J2.33",
197
+ "J2.38",
198
+ "J2.D2"
199
+ ],
200
+ "netLabelWidth": 0.42,
201
+ "netLabelHeight": 0.48
202
+ }
203
+ ],
204
+ "availableNetLabelOrientations": {
205
+ "SDA": ["x-"],
206
+ "SCL": ["x-"],
207
+ "UP": ["x-"],
208
+ "DOWN": ["x-"],
209
+ "RIGHT": ["x-"],
210
+ "LEFT": ["x-"],
211
+ "B1": ["x-"],
212
+ "B2": ["x-"],
213
+ "R2": ["x-"],
214
+ "L2": ["x-"],
215
+ "B3": ["x-"],
216
+ "B4": ["x-"],
217
+ "R1": ["x-"],
218
+ "L1": ["x-"],
219
+ "TURBO": ["x-"],
220
+ "LED-TURBO": ["x-"],
221
+ "S1": ["x+"],
222
+ "S2": ["x+"],
223
+ "L3": ["x+"],
224
+ "R3": ["x+"],
225
+ "A1": ["x+"],
226
+ "A2": ["x+"],
227
+ "R5": ["x+"],
228
+ "L5": ["x+"],
229
+ "LED-RGB": ["x+"],
230
+ "GNDPWR": ["y-"],
231
+ "V5": ["y+"],
232
+ "D-": ["x+"],
233
+ "D+": ["x+"],
234
+ "GND": ["y-"]
235
+ },
236
+ "maxMspPairDistance": 8
237
+ }