@tscircuit/schematic-trace-solver 0.0.148 → 0.0.150
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/.agents/skills/schematic-trace-visualization/SKILL.md +7 -2
- package/dist/index.d.ts +31 -2
- package/dist/index.js +127 -46
- package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +115 -6
- package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +17 -1
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +2 -0
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +2 -0
- package/lib/types/InputProblem.ts +27 -1
- package/package.json +8 -1
- package/site/examples/example51.page.tsx +4 -0
- package/tests/assets/example51.json +5102 -0
- package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +751 -5
- package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +660 -5
- package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +44 -5
- package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +394 -5
- package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +170 -5
- package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +79 -5
- package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +219 -5
- package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +65 -5
- package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +142 -5
- package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +100 -5
- package/tests/bug-reports/bug-report-20260708T053736Z/__snapshots__/bug-report-20260708T053736Z.snap.svg +23 -5
- package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +58 -5
- package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +86 -5
- package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +226 -5
- package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +191 -5
- package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +30 -5
- package/tests/bug-reports/bug-report-20260717T042845Z/__snapshots__/bug-report-20260717T042845Z.snap.svg +37 -5
- package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +580 -2
- package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +44 -5
- package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +107 -5
- package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +114 -5
- package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +121 -5
- package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +51 -5
- package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +212 -5
- package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +569 -5
- package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +37 -5
- package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +289 -5
- package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +289 -5
- package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +149 -5
- package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +93 -5
- package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +79 -5
- package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +244 -2
- package/tests/examples/__snapshots__/example01.snap.svg +44 -5
- package/tests/examples/__snapshots__/example02.snap.svg +51 -5
- package/tests/examples/__snapshots__/example03.snap.svg +86 -5
- package/tests/examples/__snapshots__/example04.snap.svg +30 -5
- package/tests/examples/__snapshots__/example05.snap.svg +30 -5
- package/tests/examples/__snapshots__/example06.snap.svg +30 -5
- package/tests/examples/__snapshots__/example07.snap.svg +58 -5
- package/tests/examples/__snapshots__/example08.snap.svg +37 -5
- package/tests/examples/__snapshots__/example09.snap.svg +149 -5
- package/tests/examples/__snapshots__/example10.snap.svg +65 -5
- package/tests/examples/__snapshots__/example11.snap.svg +51 -5
- package/tests/examples/__snapshots__/example12.snap.svg +51 -5
- package/tests/examples/__snapshots__/example13.snap.svg +72 -5
- package/tests/examples/__snapshots__/example14.snap.svg +79 -5
- package/tests/examples/__snapshots__/example15.snap.svg +86 -5
- package/tests/examples/__snapshots__/example16.snap.svg +51 -5
- package/tests/examples/__snapshots__/example17.snap.svg +51 -5
- package/tests/examples/__snapshots__/example18.snap.svg +58 -5
- package/tests/examples/__snapshots__/example19.snap.svg +44 -5
- package/tests/examples/__snapshots__/example20.snap.svg +44 -5
- package/tests/examples/__snapshots__/example21.snap.svg +72 -5
- package/tests/examples/__snapshots__/example22.snap.svg +51 -5
- package/tests/examples/__snapshots__/example23.snap.svg +51 -5
- package/tests/examples/__snapshots__/example24.snap.svg +51 -5
- package/tests/examples/__snapshots__/example25.snap.svg +86 -5
- package/tests/examples/__snapshots__/example26.snap.svg +51 -5
- package/tests/examples/__snapshots__/example27.snap.svg +72 -5
- package/tests/examples/__snapshots__/example28.snap.svg +44 -5
- package/tests/examples/__snapshots__/example29.snap.svg +324 -5
- package/tests/examples/__snapshots__/example30.snap.svg +107 -5
- package/tests/examples/__snapshots__/example31.snap.svg +37 -5
- package/tests/examples/__snapshots__/example32.snap.svg +149 -5
- package/tests/examples/__snapshots__/example33.snap.svg +93 -5
- package/tests/examples/__snapshots__/example34.snap.svg +51 -5
- package/tests/examples/__snapshots__/example35.snap.svg +58 -5
- package/tests/examples/__snapshots__/example36.snap.svg +44 -5
- package/tests/examples/__snapshots__/example37.snap.svg +72 -5
- package/tests/examples/__snapshots__/example38.snap.svg +30 -5
- package/tests/examples/__snapshots__/example39.snap.svg +37 -5
- package/tests/examples/__snapshots__/example40.snap.svg +100 -5
- package/tests/examples/__snapshots__/example41.snap.svg +44 -5
- package/tests/examples/__snapshots__/example42.snap.svg +65 -5
- package/tests/examples/__snapshots__/example43.snap.svg +58 -5
- package/tests/examples/__snapshots__/example44.snap.svg +107 -5
- package/tests/examples/__snapshots__/example45.snap.svg +51 -5
- package/tests/examples/__snapshots__/example46.snap.svg +93 -5
- package/tests/examples/__snapshots__/example47.snap.svg +93 -5
- package/tests/examples/__snapshots__/example48.snap.svg +65 -5
- package/tests/examples/__snapshots__/example49.snap.svg +177 -5
- package/tests/examples/__snapshots__/example50.snap.svg +93 -5
- package/tests/examples/__snapshots__/example51.snap.svg +952 -0
- package/tests/examples/example51.test.ts +12 -0
- package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +219 -0
- package/tests/fixtures/convertSolverOutputToCircuitJson.ts +1058 -0
- package/tests/fixtures/matcher.ts +45 -8
- package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +762 -2
- package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +111 -2
- package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +167 -2
- package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +65 -5
- package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +30 -5
- package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +79 -5
- package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +65 -5
- package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +149 -5
- package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +55 -2
- package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +160 -2
- package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +135 -5
- package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +69 -2
- package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +86 -5
- package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +260 -0
- package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +335 -2
- package/tests/repros/__snapshots__/repro-ground-label-on-lower-rail-end.snap.svg +48 -2
- package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +149 -5
- package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +72 -5
- package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +100 -5
- package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +90 -2
- package/tests/repros/__snapshots__/repro-power-group-rail-labels.snap.svg +37 -5
- package/tests/repros/__snapshots__/repro-rectifier-trace-overlap.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +237 -2
- package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +72 -5
- package/tests/repros/__snapshots__/repro-rp2040-v3v3-label-placement.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +79 -5
- package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +27 -2
- package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1150 -5
- package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-type-c-vbus-led-ground-label.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +685 -2
- package/tests/repros/__snapshots__/repro-vcc-pin1-detour.snap.svg +27 -2
- package/tests/repros/__snapshots__/repro129-host-custom-symbol-passives.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +100 -5
- package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +107 -5
- package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +104 -2
- package/tests/repros/__snapshots__/repro5-escape-padded-text-obstacles.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +65 -5
- package/tests/repros/__snapshots__/repro84-stacked-gnd-label-orientation.snap.svg +27 -2
- package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +58 -5
- package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +37 -5
- package/tests/repros/assets/repro-core-tb67s579ftg-inline-label-routing.input.json +900 -0
- package/tests/repros/repro-core-tb67s579ftg-inline-label-routing.test.ts +40 -0
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/fallback-net-label-width.snap.svg +25 -7
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-anchored-label-clearance.snap.svg +34 -2
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-port-stub.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-two-pin-net.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label01.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/terminal-stub-trace-clearance.snap.svg +71 -0
- package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
- package/tests/solvers/InlineNetLabelSolver/terminal-stub-trace-clearance.test.ts +102 -0
- package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +23 -5
- package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_repro47-short-opposing-pins.snap.svg +20 -2
- package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +44 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +79 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +44 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +23 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +30 -5
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
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="11,8.399999999999999 9.1,6.8" data-type="line" data-label="" points="322.82714054927305,149.24071082390958 107.96445880452347,330.17770597738274" fill="none" stroke="hsl(154, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11,9 12.03,5.3500000000000005" data-type="line" data-label="" points="322.82714054927305,81.38933764135697 439.30533117932123,494.1518578352178" fill="none" stroke="hsl(87, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="9.700000000000001,6.8 8.93,5.3500000000000005" data-type="line" data-label="" points="175.81583198707608,330.17770597738274 88.73990306946689,494.1518578352178" fill="none" stroke="hsl(56, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="9.870000000000001,5.3500000000000005 12.97,5.3500000000000005" data-type="line" data-label="" points="195.04038772213266,494.1518578352178 545.605815831987,494.1518578352178" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="9.700000000000001,6.8 9.900000000000002,6.8 9.900000000000002,6.075 8.73,6.075 8.73,5.3500000000000005 8.93,5.3500000000000005" data-type="line" data-label="" points="175.81583198707608,330.17770597738274 198.43295638126028,330.17770597738274 198.43295638126028,412.1647819063003 66.1227786752828,412.1647819063003 66.1227786752828,494.1518578352178 88.73990306946689,494.1518578352178" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="11,8.399999999999999 11,8.349999999999998 10.2,8.349999999999998 10.2,8.450999999999999" data-type="line" data-label="" points="322.82714054927305,149.24071082390958 322.82714054927305,154.8949919224557 232.35864297253624,154.8949919224557 232.35864297253624,143.4733441033926" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.1,6.8 8.799,6.8 8.799,7.151" data-type="line" data-label="" points="107.96445880452347,330.17770597738274 73.9256865912763,330.17770597738274 73.9256865912763,290.4846526655896" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="11,9 11,9.100999999999999 10.549000000000001,9.100999999999999" data-type="line" data-label="" points="322.82714054927305,81.38933764135697 322.82714054927305,69.967689822294 271.8255250403879,69.967689822294" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.870000000000001,5.3500000000000005 10.111,5.3500000000000005 10.111,4.9990000000000006" data-type="line" data-label="" points="195.04038772213266,494.1518578352178 222.29402261712448,494.1518578352178 222.29402261712448,533.844911147011" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="12.97,5.3500000000000005 13.211,5.3500000000000005 13.211,4.9990000000000006" data-type="line" data-label="" points="545.605815831987,494.1518578352178 572.8594507269788,494.1518578352178 572.8594507269788,533.844911147011" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="11.095" data-y="8.7" x="271.93861066235866" y="81.38933764135697" width="123.26332794830364" height="67.8513731825526" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008842857142857145"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="9.4" data-y="6.8" x="107.96445880452336" y="291.7285945072697" width="67.8513731825526" height="76.8982229402261" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008842857142857145"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="9.4" data-y="5.4" x="88.73990306946678" y="447.84834491114685" width="106.30048465266577" height="81.29846365104993" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008842857142857145"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="12.5" data-y="5.4" x="439.30533117932134" y="447.84834491114685" width="106.30048465266577" height="81.29846365104993" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008842857142857145"/></g><g><rect data-type="rect" data-label="netId: V3V3
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="10.2" data-y="8.661" x="198.43295638125994" y="95.97738287560571" width="67.8513731825526" height="47.49596122778689" fill="#ef444466" stroke="#ef4444" stroke-width="0.008842857142857145"/></g><g><rect data-type="rect" data-label="netId: V3V3
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="8.799" data-y="7.361" x="39.99999999999994" y="242.98869143780274" width="67.85137318255272" height="47.49596122778678" fill="#ef444466" stroke="#ef4444" stroke-width="0.008842857142857145"/></g><g><rect data-type="rect" data-label="netId: RESET
|
|
4
6
|
globalConnNetId: connectivity_net1" data-x="10.189000000000002" data-y="9.100999999999999" x="190.40387722132505" y="58.65912762520196" width="81.42164781906285" height="22.61712439418409" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008842857142857145"/></g><g><rect data-type="rect" data-label="netId: RESET
|
|
@@ -30,7 +32,7 @@ orientation: y-" data-x="13.211" data-y="4.9990000000000006" cx="572.85945072697
|
|
|
30
32
|
const h = svg.getElementById('crosshair-h');
|
|
31
33
|
const v = svg.getElementById('crosshair-v');
|
|
32
34
|
const coords = svg.getElementById('coordinates');
|
|
33
|
-
|
|
35
|
+
|
|
34
36
|
crosshair.style.display = 'block';
|
|
35
37
|
h.setAttribute('x1', '0');
|
|
36
38
|
h.setAttribute('x2', '640');
|
|
@@ -49,13 +51,13 @@ orientation: y-" data-x="13.211" data-y="4.9990000000000006" cx="572.85945072697
|
|
|
49
51
|
// y' = (y - ty) / sy
|
|
50
52
|
const sx = matrix.a;
|
|
51
53
|
const sy = matrix.d;
|
|
52
|
-
const tx = matrix.e;
|
|
54
|
+
const tx = matrix.e;
|
|
53
55
|
const ty = matrix.f;
|
|
54
56
|
const realPoint = {
|
|
55
57
|
x: (x - tx) / sx,
|
|
56
58
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
57
59
|
}
|
|
58
|
-
|
|
60
|
+
|
|
59
61
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
60
62
|
coords.setAttribute('x', (x + 5).toString());
|
|
61
63
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -63,4 +65,69 @@ orientation: y-" data-x="13.211" data-y="4.9990000000000006" cx="572.85945072697
|
|
|
63
65
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
64
66
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
65
67
|
});
|
|
66
|
-
]]></script
|
|
68
|
+
]]></script>
|
|
69
|
+
</g>
|
|
70
|
+
<g transform="translate(1216, 200)">
|
|
71
|
+
<style>
|
|
72
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
73
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
74
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
75
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
76
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
77
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
78
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
79
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
80
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
81
|
+
|
|
82
|
+
</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 414.89331301195034 414.50752524300003 L 443.4701847970505 414.50752524300003 L 443.4701847970505 518.0986854639875 L 276.29548485421515 518.0986854639875 L 276.29548485421515 621.6898456849749 L 304.87235663931506 621.6898456849749" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.861497428080003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 414.89331301195034 414.50752524300003 L 443.4701847970505 414.50752524300003 L 443.4701847970505 518.0986854639875 L 276.29548485421515 518.0986854639875 L 276.29548485421515 621.6898456849749 L 304.87235663931506 621.6898456849749" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 600.6429796151001 185.89255096220018 L 600.6429796151001 193.03676890847532 L 486.3354924747 193.03676890847532 L 486.3354924747 178.60544865699967" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.861497428080003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 600.6429796151001 185.89255096220018 L 600.6429796151001 193.03676890847532 L 486.3354924747 193.03676890847532 L 486.3354924747 178.60544865699967" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 329.1626976566499 414.50752524300003 L 286.1545056200746 414.50752524300003 L 286.1545056200746 364.35511526014955" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.861497428080003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 329.1626976566499 414.50752524300003 L 286.1545056200746 414.50752524300003 L 286.1545056200746 364.35511526014955" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 600.6429796151001 100.16193560689999 L 600.6429796151001 85.73061535542456 L 536.2021337396998 85.73061535542456" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.861497428080003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 600.6429796151001 100.16193560689999 L 600.6429796151001 85.73061535542456 L 536.2021337396998 85.73061535542456" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 439.1836540292852 621.6898456849749 L 473.6187845303307 621.6898456849749 L 473.6187845303307 671.8422556678255" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.861497428080003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 439.1836540292852 621.6898456849749 L 473.6187845303307 621.6898456849749 L 473.6187845303307 671.8422556678255" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"><path d="M 882.1251666983353 621.6898456849749 L 916.5602971993806 621.6898456849749 L 916.5602971993806 671.8422556678255" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.861497428080003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 882.1251666983353 621.6898456849749 L 916.5602971993806 621.6898456849749 L 916.5602971993806 671.8422556678255" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.8576871785100004px" 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="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component-overlay sch-component-overlay" x="589.2150885882386" y="100.1619356069001" width="22.855782053723033" height="85.73061535530019" fill="transparent"/><path class="sch-component-symbol-path" d="M 600.6429796151001 185.8925509622003 L 600.6429796151001 171.60125738247174" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 600.6429796151001 114.45322918662863 L 600.6429796151001 100.1619356069001" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 589.2150885882386 171.60125738247174 L 589.2150885882386 114.45322918662863 L 612.0708706419616 114.45322918662863 L 612.0708706419616 171.60125738247174 L 589.2150885882386 171.60125738247174" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="623.5044770431801" y="120.16574585647014" stroke="rgb(245, 241, 237)" stroke-width="2.8576871785100004px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="25.71918460659px">R3</text><text class="sch-component-text" x="623.5044770431801" y="165.88874071263024" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="25.71918460659px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component-overlay sch-component-overlay" x="329.16269765665004" y="403.0796342161385" width="85.73061535530019" height="22.855782053723033" fill="transparent"/><path class="sch-component-symbol-path" d="M 329.16269765665004 414.50752524300003 L 343.45399123637856 414.50752524300003" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 400.6020194322217 414.50752524300003 L 414.8933130119502 414.50752524300003" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 343.45399123637856 403.0796342161385 L 400.6020194322217 403.0796342161385 L 400.6020194322217 425.93541626986155 L 343.45399123637856 425.93541626986155 L 343.45399123637856 403.0796342161385" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="372.02800533430013" y="391.64602781492" stroke="rgb(245, 241, 237)" stroke-width="2.8576871785100004px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="25.71918460659px">R2</text><text class="sch-component-text" x="372.02800533430013" y="437.3690226710801" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="25.71918460659px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component-overlay sch-component-overlay" x="304.87235663931506" y="596.9482909026119" width="134.31129738997015" height="26.508808695388893" fill="transparent"/><path class="sch-component-symbol-path" d="M 304.87235663931506 621.6898456849749 L 350.82095837798903 623.4570995980008" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 359.65722794311864 619.922591771949 L 389.70054446455936 596.9482909026119" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 393.23505229061124 623.4570995980008 L 439.1836540292852 621.6898456849749" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="372.02800533430013" y="577.5084978593268" stroke="rgb(245, 241, 237)" stroke-width="2.8576871785100004px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="25.71918460659px">SW3</text><text class="sch-component-text" x="372.02800533430013" y="665.871193510623" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="25.71918460659px"></text><circle class="sch-component-symbol-circle" cx="389.70054446455936" cy="621.6898456849749" r="2.8576871785100004px" stroke-width="2.8576871785100004px" fill="none" stroke="rgb(132, 0, 0)"/><circle class="sch-component-symbol-circle" cx="354.3554662040409" cy="621.6898456849749" r="2.8576871785100004px" stroke-width="2.8576871785100004px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component-overlay sch-component-overlay" x="747.8138693083652" y="596.9482909026119" width="134.31129738997015" height="26.508808695388893" fill="transparent"/><path class="sch-component-symbol-path" d="M 747.8138693083652 621.6898456849749 L 793.7624710470392 623.4570995980008" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 802.5987406121687 619.922591771949 L 832.6420571336095 596.9482909026119" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 836.1765649596613 623.4570995980008 L 882.1251666983353 621.6898456849749" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.8576871785100004px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="814.9695180033502" y="577.5084978593268" stroke="rgb(245, 241, 237)" stroke-width="2.8576871785100004px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="25.71918460659px">SW2</text><text class="sch-component-text" x="814.9695180033502" y="665.871193510623" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="25.71918460659px"></text><circle class="component-pin sch-component-pin" cx="747.8138693083652" cy="621.6898456849749" r="2.8576871785100004px" stroke-width="2.8576871785100004px" fill="none" stroke="rgb(132, 0, 0)"/><circle class="sch-component-symbol-circle" cx="832.6420571336095" cy="621.6898456849749" r="2.8576871785100004px" stroke-width="2.8576871785100004px" fill="none" stroke="rgb(132, 0, 0)"/><circle class="sch-component-symbol-circle" cx="797.296978873091" cy="621.6898456849749" r="2.8576871785100004px" stroke-width="2.8576871785100004px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="600.6429796151001" cy="185.89255096220018" r="5.715374357020001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="600.6429796151001" cy="100.16193560689999" r="5.715374357020001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="329.1626976566499" cy="414.50752524300003" r="5.715374357020001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="414.89331301195034" cy="414.50752524300003" r="5.715374357020001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="317.73194894260996" cy="621.6898456849749" r="5.715374357020001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="452.0432463325801" cy="621.6898456849749" r="5.715374357020001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="760.6734616116601" cy="621.6898456849749" r="5.715374357020001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="894.9847590016302" cy="621.6898456849749" r="5.715374357020001" 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="
|
|
83
|
+
M 486.3354924747,178.60544865699967
|
|
84
|
+
L 472.04705658215,170.88969327502267
|
|
85
|
+
L 472.04705658215,121.88988378750454
|
|
86
|
+
L 500.62392836725,121.88988378750454
|
|
87
|
+
L 500.62392836725,170.88969327502267
|
|
88
|
+
Z
|
|
89
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.8576871785100004px"/><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="486.3354924747" y="165.74585635370468" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.71918460659px" transform="rotate(-90 486.3354924747 165.74585635370468)">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="
|
|
90
|
+
M 286.1545056200746,364.35511526014955
|
|
91
|
+
L 271.8660697275246,356.63935987817257
|
|
92
|
+
L 271.8660697275246,307.6395503906544
|
|
93
|
+
L 300.4429415126246,307.6395503906544
|
|
94
|
+
L 300.4429415126246,356.63935987817257
|
|
95
|
+
Z
|
|
96
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.8576871785100004px"/><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="286.1545056200746" y="351.49552295685453" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.71918460659px" transform="rotate(-90 286.1545056200746 351.49552295685453)">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="
|
|
97
|
+
M 536.2021337396998,85.73061535542456
|
|
98
|
+
L 528.4863783577227,100.01905124797456
|
|
99
|
+
L 429.13412078485845,100.01905124797455
|
|
100
|
+
L 429.13412078485845,71.44217946287455
|
|
101
|
+
L 528.4863783577227,71.44217946287456
|
|
102
|
+
Z
|
|
103
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.8576871785100004px"/><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="523.3425414364048" y="85.73061535542456" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.71918460659px" transform="">XXXXX</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="
|
|
104
|
+
M 747.8138693083649,621.6898456849749
|
|
105
|
+
L 740.0981139263879,635.9782815775249
|
|
106
|
+
L 640.7458563535235,635.9782815775249
|
|
107
|
+
L 640.7458563535235,607.4014097924248
|
|
108
|
+
L 740.0981139263879,607.4014097924249
|
|
109
|
+
Z
|
|
110
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.8576871785100004px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="734.9542770050699" y="621.6898456849749" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.71918460659px" transform="">XXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
|
|
111
|
+
M 443.4701847970505,414.50752524300003
|
|
112
|
+
L 451.18594017902745,400.21908935045
|
|
113
|
+
L 567.3223471136739,400.21908935045
|
|
114
|
+
L 567.3223471136739,428.79596113555004
|
|
115
|
+
L 451.18594017902745,428.79596113555004
|
|
116
|
+
Z
|
|
117
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.8576871785100004px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="456.3297771003455" y="414.50752524300003" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.71918460659px" transform="">XXXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
|
|
118
|
+
M 473.6187845303307,671.8422556678255
|
|
119
|
+
L 487.9072204228807,679.5580110498025
|
|
120
|
+
L 487.9072204228807,728.5578205373206
|
|
121
|
+
L 459.3303486377807,728.5578205373206
|
|
122
|
+
L 459.3303486377807,679.5580110498025
|
|
123
|
+
Z
|
|
124
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.8576871785100004px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="473.6187845303307" y="684.7018479711205" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.71918460659px" transform="rotate(90 473.6187845303307 684.7018479711205)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" d="
|
|
125
|
+
M 916.5602971993806,671.8422556678255
|
|
126
|
+
L 930.8487330919305,679.5580110498025
|
|
127
|
+
L 930.8487330919305,728.5578205373206
|
|
128
|
+
L 902.2718613068306,728.5578205373206
|
|
129
|
+
L 902.2718613068306,679.5580110498025
|
|
130
|
+
Z
|
|
131
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.8576871785100004px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" x="916.5602971993806" y="684.7018479711205" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.71918460659px" transform="rotate(90 916.5602971993806 684.7018479711205)">XX</text>
|
|
132
|
+
</g>
|
|
133
|
+
</svg>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
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.5,0.4 5.5,0.4" data-type="line" data-label="" points="120,288 520,288" fill="none" stroke="hsl(77, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5,0.2 5.5,0.2" data-type="line" data-label="" points="120,304 520,304" fill="none" stroke="hsl(78, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5,0 5.5,0" data-type="line" data-label="" points="120,320 520,320" fill="none" stroke="hsl(79, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5,-0.2 5.5,-0.2" data-type="line" data-label="" points="120,336 520,336" fill="none" stroke="hsl(80, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5,-0.4 5.5,-0.4" data-type="line" data-label="" points="120,352 520,352" fill="none" stroke="hsl(209, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5,0.6 0.5,-0.6" data-type="line" data-label="" points="120,272 120,368" fill="none" stroke="hsl(30, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5,0.6 1.201,0.6 1.201,-0.6 0.5,-0.6" data-type="line" data-label="" points="120,272 176.08,272 176.08,368 120,368" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="U1" data-x="0" data-y="0" x="40" y="240" width="80" height="160" fill="hsl(164, 100%, 50%, 0.8)" stroke="black" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="U2" data-x="6" data-y="0" x="520" y="240" width="80" height="160" fill="hsl(165, 100%, 50%, 0.8)" stroke="black" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="U3" data-x="1.8" data-y="0" x="204" y="200" width="40" height="240" fill="hsl(166, 100%, 50%, 0.8)" stroke="black" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="C1" data-x="0.8" data-y="1.2" x="88" y="188" width="112" height="72" fill="hsl(326, 100%, 50%, 0.8)" stroke="black" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="C2" data-x="0.8" data-y="-1.2" x="88" y="380" width="112" height="72" fill="hsl(327, 100%, 50%, 0.8)" stroke="black" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="netId: V1V1
|
|
2
4
|
globalConnNetId: connectivity_net5" data-x="0.8505" data-y="-0.39" x="124.04" y="334.4" width="48.00000000000003" height="33.60000000000002" fill="#ef444466" stroke="#ef4444" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="netId: QD0
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="0.741" data-y="0.4" x="120.07999999999998" y="280" width="38.40000000000002" height="16" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="netId: QD0
|
|
4
6
|
globalConnNetId: connectivity_net0" data-x="5.2589999999999995" data-y="0.4" x="481.52" y="280" width="38.400000000000034" height="16" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.0125"/></g><g><rect data-type="rect" data-label="netId: QD1
|
|
@@ -45,7 +47,7 @@ orientation: x-" data-x="5.5" data-y="-0.4" cx="520" cy="352" r="3" fill="hsl(40
|
|
|
45
47
|
const h = svg.getElementById('crosshair-h');
|
|
46
48
|
const v = svg.getElementById('crosshair-v');
|
|
47
49
|
const coords = svg.getElementById('coordinates');
|
|
48
|
-
|
|
50
|
+
|
|
49
51
|
crosshair.style.display = 'block';
|
|
50
52
|
h.setAttribute('x1', '0');
|
|
51
53
|
h.setAttribute('x2', '640');
|
|
@@ -64,13 +66,13 @@ orientation: x-" data-x="5.5" data-y="-0.4" cx="520" cy="352" r="3" fill="hsl(40
|
|
|
64
66
|
// y' = (y - ty) / sy
|
|
65
67
|
const sx = matrix.a;
|
|
66
68
|
const sy = matrix.d;
|
|
67
|
-
const tx = matrix.e;
|
|
69
|
+
const tx = matrix.e;
|
|
68
70
|
const ty = matrix.f;
|
|
69
71
|
const realPoint = {
|
|
70
72
|
x: (x - tx) / sx,
|
|
71
73
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
72
74
|
}
|
|
73
|
-
|
|
75
|
+
|
|
74
76
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
75
77
|
coords.setAttribute('x', (x + 5).toString());
|
|
76
78
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -78,4 +80,97 @@ orientation: x-" data-x="5.5" data-y="-0.4" cx="520" cy="352" r="3" fill="hsl(40
|
|
|
78
80
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
79
81
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
80
82
|
});
|
|
81
|
-
]]></script
|
|
83
|
+
]]></script>
|
|
84
|
+
</g>
|
|
85
|
+
<g transform="translate(1216, 200)">
|
|
86
|
+
<style>
|
|
87
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
88
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
89
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
90
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
91
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
92
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
93
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
94
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
95
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
96
|
+
|
|
97
|
+
</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 192.39130434785 327.44565217386 L 306.68478260874093 327.44565217386 L 306.68478260874093 523.09782608694 L 192.39130434785 523.09782608694" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.086956521744px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 192.39130434785 327.44565217386 L 306.68478260874093 327.44565217386 L 306.68478260874093 523.09782608694 L 192.39130434785 523.09782608694" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.260869565218px" 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="94.56521739131" y="262.2282608695" width="32.60869565217999" height="326.08695652180006" stroke-width="3.260869565218px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="94.56521739131" y="262.2282608695" width="32.60869565217999" height="326.08695652180006" fill="transparent"/><text class="sch-text" x="110.8695652174" y="425.2717391304" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.347826086961998px" transform="rotate(0, 110.8695652174, 425.2717391304)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="127.17391304348999" y1="327.44565217386" x2="192.39130434785" y2="327.44565217386" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="189.130434782632" y="324.184782608642" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="159.78260869566998" y="324.184782608642" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="127.17391304348999" y1="360.05434782604004" x2="189.130434782632" y2="360.05434782604004" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="192.39130434785" cy="360.05434782604004" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="189.130434782632" y="356.79347826082204" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="159.78260869566998" y="356.793478260822" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="127.17391304348999" y1="392.66304347822" x2="189.130434782632" y2="392.66304347822" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="192.39130434785" cy="392.66304347822" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="189.130434782632" y="389.402173913002" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="159.78260869566998" y="389.402173913002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="127.17391304348999" y1="425.2717391304" x2="189.130434782632" y2="425.2717391304" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="192.39130434785" cy="425.2717391304" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="189.130434782632" y="422.010869565182" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="159.78260869566998" y="422.010869565182" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="127.17391304348999" y1="457.88043478258004" x2="189.130434782632" y2="457.88043478258004" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="192.39130434785" cy="457.88043478258004" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="189.130434782632" y="454.61956521736204" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="159.78260869566998" y="454.61956521736204" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="127.17391304348999" y1="490.48913043476" x2="189.130434782632" y2="490.48913043476" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="192.39130434785" cy="490.48913043476" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="189.130434782632" y="487.228260869542" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="159.78260869566998" y="487.22826086954205" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="127.17391304348999" y1="523.09782608694" x2="192.39130434785" y2="523.09782608694" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><rect x="189.130434782632" y="519.8369565217221" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="159.78260869566998" y="519.836956521722" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">7</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="1072.82608695671" y="262.2282608695" width="32.608695652179904" height="326.08695652180006" stroke-width="3.260869565218px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="1072.82608695671" y="262.2282608695" width="32.608695652179904" height="326.08695652180006" fill="transparent"/><text class="sch-text" x="1089.1304347828" y="425.2717391304" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.347826086961998px" transform="rotate(0, 1089.1304347828, 425.2717391304)">U2</text><line class="component-pin sch-component-pin sch-port-line" x1="1072.82608695671" y1="360.05434782604004" x2="1010.8695652175679" y2="360.05434782604004" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1007.60869565235" cy="360.05434782604004" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="1004.347826087132" y="356.79347826082204" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="1040.2173913045299" y="356.793478260822" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="1072.82608695671" y1="392.66304347822" x2="1010.8695652175679" y2="392.66304347822" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1007.60869565235" cy="392.66304347822" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="1004.347826087132" y="389.402173913002" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="1040.2173913045299" y="389.402173913002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="1072.82608695671" y1="425.2717391304" x2="1010.8695652175679" y2="425.2717391304" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1007.60869565235" cy="425.2717391304" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="1004.347826087132" y="422.010869565182" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="1040.2173913045299" y="422.010869565182" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="1072.82608695671" y1="457.88043478258004" x2="1010.8695652175679" y2="457.88043478258004" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_1_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1007.60869565235" cy="457.88043478258004" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="1004.347826087132" y="454.61956521736204" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="1040.2173913045299" y="454.61956521736204" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="1072.82608695671" y1="490.48913043476" x2="1010.8695652175679" y2="490.48913043476" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_1_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1007.60869565235" cy="490.48913043476" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="1004.347826087132" y="487.228260869542" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="1040.2173913045299" y="487.22826086954205" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="">5</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="363.586956521795" y="245.92391304341" width="81.52173913044999" height="358.69565217397997" stroke-width="3.260869565218px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="363.586956521795" y="245.92391304341" width="81.52173913044999" height="358.69565217397997" fill="transparent"/><text class="sch-text" x="404.34782608702" y="425.2717391304" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.347826086961998px" transform="rotate(0, 404.34782608702, 425.2717391304)">U3</text><line class="component-pin sch-component-pin sch-port-line" x1="404.34782608702" y1="245.92391304341" x2="404.34782608702" y2="183.96739130426803" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="404.34782608702" cy="180.70652173905" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="401.086956521802" y="177.445652173832" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="401.086956521802" y="213.31521739123002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="rotate(-90 401.086956521802 213.31521739123002)">1</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component chip sch-component-body" x="127.17391304349002" y="221.46739130427503" width="228.26086956526" height="16.30434782609001" stroke-width="3.260869565218px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="127.17391304349002" y="221.46739130427503" width="228.26086956526" height="16.30434782609001" fill="transparent"/><text class="sch-text" x="241.30434782612002" y="229.61956521732003" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.347826086961998px" transform="rotate(0, 241.30434782612002, 229.61956521732003)">C1</text><line class="component-pin sch-component-pin sch-port-line" x1="241.30434782612002" y1="237.77173913036503" x2="241.30434782612002" y2="299.72826086950704" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_3_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="241.30434782612002" cy="302.989130434725" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="238.04347826090202" y="299.728260869507" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="238.04347826090202" y="270.380434782545" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="rotate(-90 238.04347826090202 270.380434782545)">1</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component chip sch-component-body" x="127.17391304349002" y="612.771739130435" width="228.26086956526" height="16.304347826090066" stroke-width="3.260869565218px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="127.17391304349002" y="612.771739130435" width="228.26086956526" height="16.304347826090066" fill="transparent"/><text class="sch-text" x="241.30434782612002" y="620.9239130434801" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.347826086961998px" transform="rotate(0, 241.30434782612002, 620.9239130434801)">C2</text><line class="component-pin sch-component-pin sch-port-line" x1="241.30434782612002" y1="612.771739130435" x2="241.30434782612002" y2="550.815217391293" stroke-width="3.260869565218px"/><g class="sch-port" data-schematic-port-id="source_port_4_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="241.30434782612002" cy="547.5543478260751" r="3.260869565218" stroke-width="3.260869565218px"/><rect x="238.04347826090202" y="544.2934782608571" width="6.521739130436" height="6.521739130436" opacity="0"/></g><text class="pin-number sch-pin-number" x="238.04347826090202" y="580.1630434782551" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.456521739135px" transform="rotate(-90 238.04347826090202 580.1630434782551)">1</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="192.39130434785" cy="327.44565217386" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="192.39130434785" cy="360.05434782604004" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="192.39130434785" cy="392.66304347822" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="192.39130434785" cy="425.2717391304" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="192.39130434785" cy="457.88043478258004" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="192.39130434785" cy="490.48913043476" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="192.39130434785" cy="523.09782608694" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="1007.60869565235" cy="360.05434782604004" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="1007.60869565235" cy="392.66304347822" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="1007.60869565235" cy="425.2717391304" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_3__stack1"><circle cx="1007.60869565235" cy="457.88043478258004" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_4__stack1"><circle cx="1007.60869565235" cy="490.48913043476" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="404.34782608702" cy="180.70652173905" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="241.30434782612002" cy="302.989130434725" r="6.521739130436" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="241.30434782612002" cy="547.5543478260751" r="6.521739130436" 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="
|
|
98
|
+
M 249.53804347829544,523.09782608694
|
|
99
|
+
L 233.23369565220543,514.2934782608514
|
|
100
|
+
L 233.23369565220543,458.3804347825801
|
|
101
|
+
L 265.84239130438544,458.3804347825801
|
|
102
|
+
L 265.84239130438544,514.2934782608514
|
|
103
|
+
Z
|
|
104
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><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="249.53804347829544" y="508.42391304345904" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="rotate(-90 249.53804347829544 508.42391304345904)">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="
|
|
105
|
+
M 192.39130434785,360.05434782604004
|
|
106
|
+
L 201.19565217393858,343.74999999995003
|
|
107
|
+
L 276.26086956525694,343.74999999995003
|
|
108
|
+
L 276.26086956525694,376.35869565213005
|
|
109
|
+
L 201.19565217393858,376.35869565213005
|
|
110
|
+
Z
|
|
111
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><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="207.065217391331" y="360.05434782604004" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</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="
|
|
112
|
+
M 1007.60869565235,360.05434782604004
|
|
113
|
+
L 998.8043478262614,376.35869565213005
|
|
114
|
+
L 923.739130434943,376.35869565213005
|
|
115
|
+
L 923.739130434943,343.74999999995003
|
|
116
|
+
L 998.8043478262614,343.74999999995003
|
|
117
|
+
Z
|
|
118
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><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="992.934782608869" y="360.05434782604004" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</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="
|
|
119
|
+
M 192.39130434785,392.66304347822
|
|
120
|
+
L 201.19565217393858,376.35869565213
|
|
121
|
+
L 276.26086956525694,376.35869565213
|
|
122
|
+
L 276.26086956525694,408.96739130431
|
|
123
|
+
L 201.19565217393858,408.96739130431
|
|
124
|
+
Z
|
|
125
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="207.065217391331" y="392.66304347822" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
|
|
126
|
+
M 1007.60869565235,392.66304347822
|
|
127
|
+
L 998.8043478262614,408.96739130431
|
|
128
|
+
L 923.739130434943,408.96739130431
|
|
129
|
+
L 923.739130434943,376.35869565213
|
|
130
|
+
L 998.8043478262614,376.35869565213
|
|
131
|
+
Z
|
|
132
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="992.934782608869" y="392.66304347822" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
|
|
133
|
+
M 192.39130434785,425.2717391304
|
|
134
|
+
L 201.19565217393858,408.96739130431
|
|
135
|
+
L 276.26086956525694,408.96739130431
|
|
136
|
+
L 276.26086956525694,441.57608695649003
|
|
137
|
+
L 201.19565217393858,441.57608695649003
|
|
138
|
+
Z
|
|
139
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="207.065217391331" y="425.2717391304" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" d="
|
|
140
|
+
M 1007.60869565235,425.2717391304
|
|
141
|
+
L 998.8043478262614,441.57608695649003
|
|
142
|
+
L 923.739130434943,441.57608695649003
|
|
143
|
+
L 923.739130434943,408.96739130431
|
|
144
|
+
L 998.8043478262614,408.96739130431
|
|
145
|
+
Z
|
|
146
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" x="992.934782608869" y="425.2717391304" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" d="
|
|
147
|
+
M 192.39130434785,457.88043478258004
|
|
148
|
+
L 201.19565217393858,441.57608695649003
|
|
149
|
+
L 276.26086956525694,441.57608695649003
|
|
150
|
+
L 276.26086956525694,474.18478260867005
|
|
151
|
+
L 201.19565217393858,474.18478260867005
|
|
152
|
+
Z
|
|
153
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" x="207.065217391331" y="457.88043478258004" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" d="
|
|
154
|
+
M 1007.60869565235,457.88043478258004
|
|
155
|
+
L 998.8043478262614,474.18478260867005
|
|
156
|
+
L 923.739130434943,474.18478260867005
|
|
157
|
+
L 923.739130434943,441.57608695649003
|
|
158
|
+
L 998.8043478262614,441.57608695649003
|
|
159
|
+
Z
|
|
160
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" x="992.934782608869" y="457.88043478258004" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" d="
|
|
161
|
+
M 192.39130434785,490.48913043476
|
|
162
|
+
L 201.19565217393858,474.18478260867
|
|
163
|
+
L 295.41304347830396,474.18478260867
|
|
164
|
+
L 295.41304347830396,506.79347826085
|
|
165
|
+
L 201.19565217393858,506.79347826085
|
|
166
|
+
Z
|
|
167
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" x="207.065217391331" y="490.48913043476" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_10__stack1" d="
|
|
168
|
+
M 1007.60869565235,490.48913043476
|
|
169
|
+
L 998.8043478262614,506.79347826085
|
|
170
|
+
L 904.586956521896,506.79347826085
|
|
171
|
+
L 904.586956521896,474.18478260867
|
|
172
|
+
L 998.8043478262614,474.18478260867
|
|
173
|
+
Z
|
|
174
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.260869565218px"/><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="992.934782608869" y="490.48913043476" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.347826086961998px" transform="">XXXX</text>
|
|
175
|
+
</g>
|
|
176
|
+
</svg>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
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="-4.475,2.9699999999999998 -2.38,3" data-type="line" data-label="" points="86.20462046204614,228.4378437843784 408.86688668866884,223.8173817381737" fill="none" stroke="hsl(192, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-3.5250000000000004,2.9699999999999998 -2.7,1.5" data-type="line" data-label="" points="232.5192519251924,228.4378437843784 359.5819581958195,454.8404840484048" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.62,3 -3.3,1.5" data-type="line" data-label="" points="525.9185918591859,223.8173817381737 267.17271727172715,454.8404840484048" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-3.5250000000000004,2.9699999999999998 -2.46,2.9699999999999998 -2.46,1.5 -2.7,1.5" data-type="line" data-label="" points="232.5192519251924,228.4378437843784 396.5456545654565,228.4378437843784 396.5456545654565,454.8404840484048 359.5819581958195,454.8404840484048" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-4.475,2.9699999999999998 -4.675,2.9699999999999998 -4.675,3.45 -2.58,3.45 -2.58,3 -2.38,3" data-type="line" data-label="" points="86.20462046204614,228.4378437843784 55.401540154015265,228.4378437843784 55.401540154015265,154.51045104510433 378.063806380638,154.51045104510433 378.063806380638,223.8173817381737 408.86688668866884,223.8173817381737" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.62,3 -1.3790000000000002,3 -1.3790000000000002,3.251" data-type="line" data-label="" points="525.9185918591859,223.8173817381737 563.036303630363,223.8173817381737 563.036303630363,185.1595159515951" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.3,1.5 -3.541,1.5 -3.541,1.9509999999999998" data-type="line" data-label="" points="267.17271727172715,454.8404840484048 230.05500550055,454.8404840484048 230.05500550055,385.37953795379536" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-4" data-y="3" x="86.20462046204614" y="201.48514851485137" width="146.31463146314627" height="44.66446644664467" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006492857142857141"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-2" data-y="3" x="408.86688668866884" y="185.31353135313518" width="117.05170517051704" height="77.00770077007707" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006492857142857141"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-3" data-y="1.5" x="267.17271727172715" y="390.15401540154005" width="92.40924092409233" height="129.37293729372942" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006492857142857141"/></g><g><rect data-type="rect" data-label="netId: .B1 > .pin1 to .SW1 > .pin1
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="-4.675" data-y="2.7449999999999997" x="39.99999999999994" y="228.43784378437843" width="30.803080308030644" height="69.30693069306932" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.006492857142857141"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
3
5
|
globalConnNetId: connectivity_net1" data-x="-2.46" data-y="1.29" x="359.58195819581954" y="454.84048404840473" width="73.92739273927401" height="64.68646864686474" fill="#00000066" stroke="#000000" stroke-width="0.006492857142857141"/></g><g><rect data-type="rect" data-label="netId: VCC
|
|
4
6
|
globalConnNetId: connectivity_net2" data-x="-1.3790000000000002" data-y="3.461" x="526.072607260726" y="120.47304730473039" width="73.92739273927396" height="64.68646864686474" fill="#ef444466" stroke="#ef4444" stroke-width="0.006492857142857141"/></g><g><rect data-type="rect" data-label="netId: VCC
|
|
@@ -22,7 +24,7 @@ orientation: y+" data-x="-3.541" data-y="1.9509999999999998" cx="230.05500550055
|
|
|
22
24
|
const h = svg.getElementById('crosshair-h');
|
|
23
25
|
const v = svg.getElementById('crosshair-v');
|
|
24
26
|
const coords = svg.getElementById('coordinates');
|
|
25
|
-
|
|
27
|
+
|
|
26
28
|
crosshair.style.display = 'block';
|
|
27
29
|
h.setAttribute('x1', '0');
|
|
28
30
|
h.setAttribute('x2', '640');
|
|
@@ -41,13 +43,13 @@ orientation: y+" data-x="-3.541" data-y="1.9509999999999998" cx="230.05500550055
|
|
|
41
43
|
// y' = (y - ty) / sy
|
|
42
44
|
const sx = matrix.a;
|
|
43
45
|
const sy = matrix.d;
|
|
44
|
-
const tx = matrix.e;
|
|
46
|
+
const tx = matrix.e;
|
|
45
47
|
const ty = matrix.f;
|
|
46
48
|
const realPoint = {
|
|
47
49
|
x: (x - tx) / sx,
|
|
48
50
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
|
|
51
53
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
52
54
|
coords.setAttribute('x', (x + 5).toString());
|
|
53
55
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -55,4 +57,48 @@ orientation: y+" data-x="-3.541" data-y="1.9509999999999998" cx="230.05500550055
|
|
|
55
57
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
56
58
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
57
59
|
});
|
|
58
|
-
]]></script
|
|
60
|
+
]]></script>
|
|
61
|
+
</g>
|
|
62
|
+
<g transform="translate(1216, 200)">
|
|
63
|
+
<style>
|
|
64
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
65
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
66
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
67
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
68
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
69
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
70
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
71
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
72
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
73
|
+
|
|
74
|
+
</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 487.61213397770496 265.834163955334 L 727.959678784312 265.834163955334 L 727.959678784312 597.5814793222 L 673.79685178564 597.5814793222" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="36.108551332448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 487.61213397770496 265.834163955334 L 727.959678784312 265.834163955334 L 727.959678784312 597.5814793222 L 673.79685178564 597.5814793222" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 273.21761044129505 265.834163955334 L 228.0819212757351 265.834163955334 L 228.0819212757351 157.50850995798987 L 700.878265284976 157.50850995798987 L 700.878265284976 259.0638105805 L 746.0139544505361 259.0638105805" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="36.108551332448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 273.21761044129505 265.834163955334 L 228.0819212757351 265.834163955334 L 228.0819212757351 157.50850995798987 L 700.878265284976 157.50850995798987 L 700.878265284976 259.0638105805 L 746.0139544505361 259.0638105805" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 917.529573279664 259.0638105805 L 971.9180787241637 259.0638105805 L 971.9180787241637 202.4185206777222" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="36.108551332448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 917.529573279664 259.0638105805 L 971.9180787241637 259.0638105805 L 971.9180787241637 202.4185206777222" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 538.3897842889601 597.5814793222 L 484.0012788444602 597.5814793222 L 484.0012788444602 495.8005002538622" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="36.108551332448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 538.3897842889601 597.5814793222 L 484.0012788444602 597.5814793222 L 484.0012788444602 495.8005002538622" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.513568916556px" 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="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component-overlay sch-component-overlay" x="273.21761044129505" y="231.53104018950836" width="214.3945235364099" height="66.46230229628708" fill="transparent"/><path class="sch-component-symbol-path" d="M 367.5512007973154 231.53104018950836 L 367.5512007973154 297.99334248579544" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 384.7027626802282 244.39471160169296 L 384.7027626802282 285.12967107361084" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 367.5512007973154 265.83416395533396 L 273.21761044129505 265.83416395533396" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 487.61213397770496 265.83416395533396 L 386.8467079155923 265.83416395533396" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="380.4148722095" y="212.2355330712315" stroke="rgb(245, 241, 237)" stroke-width="4.513568916556px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="40.622120249004px">B1</text><text class="sch-component-text" x="380.4148722095" y="319.4327948394364" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="40.622120249004px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component-overlay sch-component-overlay" x="746.013954450536" y="227.468828164608" width="171.51561882912802" height="33.85176687416998" fill="transparent"/><path class="sch-component-symbol-path" d="M 746.013954450536 259.0638105805 L 804.690350365764 261.320595038778" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 815.974272657154 256.807026122222 L 854.33960844788 227.468828164608" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 858.853177364436 261.320595038778 L 917.529573279664 259.0638105805" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="831.7717638651" y="202.64419912355" stroke="rgb(245, 241, 237)" stroke-width="4.513568916556px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="40.622120249004px">SW1</text><text class="sch-component-text" x="831.7717638651" y="315.48342203744994" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="40.622120249004px"></text><circle class="sch-component-symbol-circle" cx="854.33960844788" cy="259.0638105805" r="4.513568916556px" stroke-width="4.513568916556px" fill="none" stroke="rgb(132, 0, 0)"/><circle class="sch-component-symbol-circle" cx="809.2039192823199" cy="259.0638105805" r="4.513568916556px" stroke-width="4.513568916556px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component-overlay sch-component-overlay" x="538.3897842889601" y="561.4684144208355" width="135.40706749667993" height="72.22612980272902" fill="transparent"/><path class="sch-component-symbol-path" d="M 673.79685178564 597.5814793222 L 619.634024786968 597.5814793222" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 592.5526112876321 597.5814793222 L 538.3897842889601 597.5814793222" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 619.634024786968 561.4684144208355 L 619.634024786968 633.6945442235645" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 592.5526112876321 561.4684144208355 L 592.5526112876321 633.6945442235645" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.513568916556px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="606.0933180373" y="543.418652323528" stroke="rgb(245, 241, 237)" stroke-width="4.513568916556px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="40.622120249004px">C3</text><text class="sch-component-text" x="606.0933180373" y="651.744306320872" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="40.622120249004px"></text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="267.5756492956" cy="265.4956462865923" r="9.027137833112" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="481.9701728320099" cy="265.4956462865923" r="9.027137833112" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="746.0139544505361" cy="259.0638105805" r="9.027137833112" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="917.529573279664" cy="259.0638105805" r="9.027137833112" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="538.3897842889601" cy="597.5814793222" r="9.027137833112" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="673.79685178564" cy="597.5814793222" r="9.027137833112" 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="
|
|
75
|
+
M 228.0819212757351,265.834163955334
|
|
76
|
+
L 250.6497658585151,278.0208000300352
|
|
77
|
+
L 250.6497658585151,355.41346171924874
|
|
78
|
+
L 205.51407669295511,355.41346171924874
|
|
79
|
+
L 205.51407669295511,278.0208000300352
|
|
80
|
+
Z
|
|
81
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.513568916556px"/><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="228.0819212757351" y="286.145224079836" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="40.622120249004px" transform="rotate(90 228.0819212757351 286.145224079836)">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="
|
|
82
|
+
M 727.959678784312,597.5814793222
|
|
83
|
+
L 750.527523367092,609.7681153969013
|
|
84
|
+
L 750.527523367092,687.1607770861148
|
|
85
|
+
L 705.391834201532,687.1607770861148
|
|
86
|
+
L 705.391834201532,609.7681153969013
|
|
87
|
+
Z
|
|
88
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.513568916556px"/><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="727.959678784312" y="617.892539446702" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="40.622120249004px" transform="rotate(90 727.959678784312 617.892539446702)">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="
|
|
89
|
+
M 971.9180787241637,202.4185206777222
|
|
90
|
+
L 949.3502341413837,190.231884603021
|
|
91
|
+
L 949.3502341413837,112.83922291380746
|
|
92
|
+
L 994.4859233069437,112.83922291380746
|
|
93
|
+
L 994.4859233069437,190.231884603021
|
|
94
|
+
Z
|
|
95
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.513568916556px"/><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="971.9180787241637" y="182.1074605532202" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="40.622120249004px" transform="rotate(-90 971.9180787241637 182.1074605532202)">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="
|
|
96
|
+
M 484.0012788444602,495.8005002538622
|
|
97
|
+
L 461.4334342616802,483.613864179161
|
|
98
|
+
L 461.43343426168025,406.2212024899475
|
|
99
|
+
L 506.56912342724024,406.2212024899475
|
|
100
|
+
L 506.56912342724024,483.613864179161
|
|
101
|
+
Z
|
|
102
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.513568916556px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="484.0012788444602" y="475.4894401293602" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="40.622120249004px" transform="rotate(-90 484.0012788444602 475.4894401293602)">XX</text>
|
|
103
|
+
</g>
|
|
104
|
+
</svg>
|