@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="0.325,0.8 3.5,1.2" data-type="line" data-label="" points="108.9916603487491,243.04776345716448 445.98938589840793,200.59135708870355" fill="none" stroke="hsl(0, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,0.6 3.5,0.8" data-type="line" data-label="" points="108.9916603487491,264.275966641395 445.98938589840793,243.04776345716448" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,0.4 3.5,0.4" data-type="line" data-label="" points="108.9916603487491,285.50416982562547 445.98938589840793,285.50416982562547" fill="none" stroke="hsl(40, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,0.2 3.5,0" data-type="line" data-label="" points="108.9916603487491,306.7323730098559 445.98938589840793,327.9605761940864" fill="none" stroke="hsl(240, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,0 3.5,-0.4" data-type="line" data-label="" points="108.9916603487491,327.9605761940864 445.98938589840793,370.41698256254733" fill="none" stroke="hsl(88, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,-0.2 4.5,1" data-type="line" data-label="" points="108.9916603487491,349.1887793783169 552.1304018195603,221.819560272934" fill="none" stroke="hsl(288, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,-0.4 4.5,0.6" data-type="line" data-label="" points="108.9916603487491,370.41698256254733 552.1304018195603,264.275966641395" fill="none" stroke="hsl(128, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,-0.6 4.5,0.2" data-type="line" data-label="" points="108.9916603487491,391.6451857467778 552.1304018195603,306.7323730098559" fill="none" stroke="hsl(152, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,-0.8 4.5,-0.2" data-type="line" data-label="" points="108.9916603487491,412.8733889310083 552.1304018195603,349.1887793783169" fill="none" stroke="hsl(0, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.325,0.8 1.9125,0.8 1.9125,1.2 3.5,1.2" data-type="line" data-label="" points="108.9916603487491,243.04776345716448 277.4905231235785,243.04776345716448 277.4905231235785,200.59135708870355 445.98938589840793,200.59135708870355" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.325,0.6 3.3,0.6 3.3,0.8 3.5,0.8" data-type="line" data-label="" points="108.9916603487491,264.275966641395 424.7611827141774,264.275966641395 424.7611827141774,243.04776345716448 445.98938589840793,243.04776345716448" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.325,0.4 3.5,0.4" data-type="line" data-label="" points="108.9916603487491,285.50416982562547 445.98938589840793,285.50416982562547" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.325,0.2 3.3,0.2 3.3,0 3.5,0" data-type="line" data-label="" points="108.9916603487491,306.7323730098559 424.7611827141774,306.7323730098559 424.7611827141774,327.9605761940864 445.98938589840793,327.9605761940864" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.325,-0.8 4.7,-0.8 4.7,-0.2 4.5,-0.2" data-type="line" data-label="" points="108.9916603487491,412.8733889310083 573.3586050037908,412.8733889310083 573.3586050037908,349.1887793783169 552.1304018195603,349.1887793783169" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.325,0 1.9125,0 1.9125,-0.4 3.5,-0.4" data-type="line" data-label="" points="108.9916603487491,327.9605761940864 277.4905231235785,327.9605761940864 277.4905231235785,370.41698256254733 445.98938589840793,370.41698256254733" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="J2" data-x="0" data-y="0" x="40.00000000000003" y="232.43366186504926" width="68.99166034874906" height="191.05382865807428" fill="hsl(184, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009421428571428572"/></g><g><rect data-type="rect" data-label="U1" data-x="4" data-y="0.4" x="445.9893858984079" y="179.3631539044731" width="106.14101592115242" height="212.28203184230475" fill="hsl(164, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009421428571428572"/></g><g><rect data-type="rect" data-label="netId: J2.pin1 to U1.pin1
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="1.1187500000000001" data-y="1.0250000000000001" x="182.62699014404856" y="195.2843062926459" width="21.228203184230495" height="47.7634571645186" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009421428571428572"/></g><g><rect data-type="rect" data-label="netId: J2.pin2 to U1.pin2
|
|
3
5
|
globalConnNetId: connectivity_net1" data-x="3.0749999999999997" data-y="0.8" x="376.99772554965887" y="232.43366186504926" width="47.76345716451851" height="21.228203184230466" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009421428571428572"/></g><g><rect data-type="rect" data-label="netId: J2.pin4 to U1.pin4
|
|
4
6
|
globalConnNetId: connectivity_net3" data-x="3.0749999999999997" data-y="0" x="376.99772554965887" y="317.3464746019712" width="47.76345716451851" height="21.228203184230438" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009421428571428572"/></g><g><rect data-type="rect" data-label="netId: J2.pin5 to U1.pin5
|
|
@@ -48,7 +50,7 @@ orientation: y-" data-x="2.5125" data-y="-0.8" cx="341.17513267627" cy="412.8733
|
|
|
48
50
|
const h = svg.getElementById('crosshair-h');
|
|
49
51
|
const v = svg.getElementById('crosshair-v');
|
|
50
52
|
const coords = svg.getElementById('coordinates');
|
|
51
|
-
|
|
53
|
+
|
|
52
54
|
crosshair.style.display = 'block';
|
|
53
55
|
h.setAttribute('x1', '0');
|
|
54
56
|
h.setAttribute('x2', '640');
|
|
@@ -67,13 +69,13 @@ orientation: y-" data-x="2.5125" data-y="-0.8" cx="341.17513267627" cy="412.8733
|
|
|
67
69
|
// y' = (y - ty) / sy
|
|
68
70
|
const sx = matrix.a;
|
|
69
71
|
const sy = matrix.d;
|
|
70
|
-
const tx = matrix.e;
|
|
72
|
+
const tx = matrix.e;
|
|
71
73
|
const ty = matrix.f;
|
|
72
74
|
const realPoint = {
|
|
73
75
|
x: (x - tx) / sx,
|
|
74
76
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
75
77
|
}
|
|
76
|
-
|
|
78
|
+
|
|
77
79
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
78
80
|
coords.setAttribute('x', (x + 5).toString());
|
|
79
81
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -81,4 +83,97 @@ orientation: y-" data-x="2.5125" data-y="-0.8" cx="341.17513267627" cy="412.8733
|
|
|
81
83
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
82
84
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
83
85
|
});
|
|
84
|
-
]]></script
|
|
86
|
+
]]></script>
|
|
87
|
+
</g>
|
|
88
|
+
<g transform="translate(1216, 200)">
|
|
89
|
+
<style>
|
|
90
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
91
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
92
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
93
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
94
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
95
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
96
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
97
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
98
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
99
|
+
|
|
100
|
+
</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 198.455361256775 262.07516949340004 L 511.9358448339875 262.07516949340004 L 511.9358448339875 183.08796103300003 L 825.4163284112 183.08796103300003" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="31.59488338416px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 198.455361256775 262.07516949340004 L 511.9358448339875 262.07516949340004 L 511.9358448339875 183.08796103300003 L 825.4163284112 183.08796103300003" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.94936042302px" 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 198.455361256775 301.56877372360003 L 785.9227241809999 301.56877372360003 L 785.9227241809999 262.07516949340004 L 825.4163284112 262.07516949340004" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="31.59488338416px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 198.455361256775 301.56877372360003 L 785.9227241809999 301.56877372360003 L 785.9227241809999 262.07516949340004 L 825.4163284112 262.07516949340004" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.94936042302px" 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 198.455361256775 341.0623779538 L 825.4163284112 341.0623779538" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="31.59488338416px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 198.455361256775 341.0623779538 L 825.4163284112 341.0623779538" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.94936042302px" 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 198.455361256775 380.555982184 L 785.9227241809999 380.555982184 L 785.9227241809999 420.0495864142 L 825.4163284112 420.0495864142" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="31.59488338416px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 198.455361256775 380.555982184 L 785.9227241809999 380.555982184 L 785.9227241809999 420.0495864142 L 825.4163284112 420.0495864142" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.94936042302px" 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 198.455361256775 578.024003335 L 1062.3779537924 578.024003335 L 1062.3779537924 459.5431906444 L 1022.8843495621999 459.5431906444" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="31.59488338416px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 198.455361256775 578.024003335 L 1062.3779537924 578.024003335 L 1062.3779537924 459.5431906444 L 1022.8843495621999 459.5431906444" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.94936042302px" 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 198.455361256775 420.0495864142 L 511.9358448339875 420.0495864142 L 511.9358448339875 499.0367948746 L 825.4163284112 499.0367948746" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="31.59488338416px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 198.455361256775 420.0495864142 L 511.9358448339875 420.0495864142 L 511.9358448339875 499.0367948746 L 825.4163284112 499.0367948746" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.94936042302px" 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 chip sch-component-body" x="124.40485332515" y="242.32836737830002" width="19.74680211510001" height="355.4424380717999" stroke-width="3.94936042302px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="124.40485332515" y="242.32836737830002" width="19.74680211510001" height="355.4424380717999" fill="transparent"/><text class="sch-text" x="134.2782543827" y="420.0495864142" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="35.544243807179996px" transform="rotate(0, 134.2782543827, 420.0495864142)">J2</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="262.07516949340004" x2="198.455361256775" y2="262.07516949340004" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="194.506000833755" y="258.12580907038006" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="258.12580907038" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="301.56877372360003" x2="198.455361256775" y2="301.56877372360003" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="194.506000833755" y="297.61941330058005" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="297.61941330058005" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="341.0623779538" x2="198.455361256775" y2="341.0623779538" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="194.506000833755" y="337.11301753078004" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="337.11301753078" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="380.555982184" x2="198.455361256775" y2="380.555982184" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="194.506000833755" y="376.60662176098003" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="376.60662176098003" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="420.0495864142" x2="198.455361256775" y2="420.0495864142" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="194.506000833755" y="416.10022599118" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="416.10022599118" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="459.5431906444" x2="194.506000833755" y2="459.5431906444" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="198.455361256775" cy="459.5431906444" r="3.94936042302" stroke-width="3.94936042302px"/><rect x="194.506000833755" y="455.59383022138" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="455.59383022138" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="499.0367948746" x2="194.506000833755" y2="499.0367948746" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="198.455361256775" cy="499.0367948746" r="3.94936042302" stroke-width="3.94936042302px"/><rect x="194.506000833755" y="495.08743445158" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="495.08743445158" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="538.5303991048" x2="194.506000833755" y2="538.5303991048" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="198.455361256775" cy="538.5303991048" r="3.94936042302" stroke-width="3.94936042302px"/><rect x="194.506000833755" y="534.58103868178" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="534.58103868178" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">8</text><line class="component-pin sch-component-pin sch-port-line" x1="144.15165544025" y1="578.024003335" x2="198.455361256775" y2="578.024003335" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_0_8__stack1"><rect x="194.506000833755" y="574.0746429119799" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="171.30350834851248" y="574.0746429119799" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">9</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="904.4035368716" y="143.59435680280006" width="39.493604230199935" height="394.936042302" stroke-width="3.94936042302px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="904.4035368716" y="143.59435680280006" width="39.493604230199935" height="394.936042302" fill="transparent"/><text class="sch-text" x="924.1503389866999" y="341.0623779538" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="35.544243807179996px" transform="rotate(0, 924.1503389866999, 341.0623779538)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="904.4035368716" y1="183.08796103300003" x2="825.4163284112" y2="183.08796103300003" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="821.4669679881799" y="179.13860060998002" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="864.9099326413999" y="179.13860060998002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="904.4035368716" y1="262.07516949340004" x2="825.4163284112" y2="262.07516949340004" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="821.4669679881799" y="258.12580907038006" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="864.9099326413999" y="258.12580907038" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="904.4035368716" y1="341.0623779538" x2="825.4163284112" y2="341.0623779538" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="821.4669679881799" y="337.11301753078004" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="864.9099326413999" y="337.11301753078" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="904.4035368716" y1="420.0495864142" x2="825.4163284112" y2="420.0495864142" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_3__stack1"><rect x="821.4669679881799" y="416.10022599118" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="864.9099326413999" y="416.10022599118" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="904.4035368716" y1="499.0367948746" x2="825.4163284112" y2="499.0367948746" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_4__stack1"><rect x="821.4669679881799" y="495.08743445158" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="864.9099326413999" y="495.08743445158" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="943.8971411017999" y1="222.58156526320002" x2="1018.93498913918" y2="222.58156526320002" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1022.8843495621999" cy="222.58156526320002" r="3.94936042302" stroke-width="3.94936042302px"/><rect x="1018.9349891391798" y="218.63220484018" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="983.3907453319999" y="218.63220484018" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="943.8971411017999" y1="301.56877372360003" x2="1018.93498913918" y2="301.56877372360003" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1022.8843495621999" cy="301.56877372360003" r="3.94936042302" stroke-width="3.94936042302px"/><rect x="1018.9349891391798" y="297.61941330058005" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="983.3907453319999" y="297.61941330058005" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="943.8971411017999" y1="380.555982184" x2="1018.93498913918" y2="380.555982184" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1022.8843495621999" cy="380.555982184" r="3.94936042302" stroke-width="3.94936042302px"/><rect x="1018.9349891391798" y="376.60662176098003" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="983.3907453319999" y="376.60662176098003" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">8</text><line class="component-pin sch-component-pin sch-port-line" x1="943.8971411017999" y1="459.5431906444" x2="1022.8843495621999" y2="459.5431906444" stroke-width="3.94936042302px"/><g class="sch-port" data-schematic-port-id="source_port_1_8__stack1"><rect x="1018.9349891391798" y="455.59383022138" width="7.89872084604" height="7.89872084604" opacity="0"/></g><text class="pin-number sch-pin-number" x="983.3907453319999" y="455.59383022138" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="29.620203172649997px" transform="">9</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="198.455361256775" cy="262.07516949340004" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="198.455361256775" cy="301.56877372360003" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="198.455361256775" cy="341.0623779538" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="198.455361256775" cy="380.555982184" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="198.455361256775" cy="420.0495864142" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="198.455361256775" cy="459.5431906444" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="198.455361256775" cy="499.0367948746" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="198.455361256775" cy="538.5303991048" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_8__stack1"><circle cx="198.455361256775" cy="578.024003335" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="825.4163284112" cy="183.08796103300003" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="825.4163284112" cy="262.07516949340004" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="825.4163284112" cy="341.0623779538" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_3__stack1"><circle cx="825.4163284112" cy="420.0495864142" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_4__stack1"><circle cx="825.4163284112" cy="499.0367948746" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_5__stack1"><circle cx="1022.8843495621999" cy="222.58156526320002" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_6__stack1"><circle cx="1022.8843495621999" cy="301.56877372360003" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_7__stack1"><circle cx="1022.8843495621999" cy="380.555982184" r="7.89872084604" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_8__stack1"><circle cx="1022.8843495621999" cy="459.5431906444" r="7.89872084604" 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="
|
|
101
|
+
M 355.1956030453813,262.07516949340004
|
|
102
|
+
L 335.44880093028127,251.41189635124604
|
|
103
|
+
L 335.4488009302813,183.69352963119644
|
|
104
|
+
L 374.9424051604813,183.69352963119644
|
|
105
|
+
L 374.9424051604813,251.41189635124604
|
|
106
|
+
Z
|
|
107
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="355.1956030453813" y="244.30304758981003" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="rotate(-90 355.1956030453813 244.30304758981003)">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="
|
|
108
|
+
M 785.9227241809999,262.07516949340004
|
|
109
|
+
L 775.2594510388459,281.82197160850006
|
|
110
|
+
L 707.5410843187964,281.8219716085
|
|
111
|
+
L 707.5410843187964,242.32836737830002
|
|
112
|
+
L 775.2594510388459,242.32836737830004
|
|
113
|
+
Z
|
|
114
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="768.1506022774099" y="262.07516949340004" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
115
|
+
M 785.9227241809999,420.0495864142
|
|
116
|
+
L 775.2594510388459,439.79638852930003
|
|
117
|
+
L 707.5410843187964,439.7963885293
|
|
118
|
+
L 707.5410843187964,400.3027842991
|
|
119
|
+
L 775.2594510388459,400.3027842991
|
|
120
|
+
Z
|
|
121
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="768.1506022774099" y="420.0495864142" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
|
|
122
|
+
M 355.1956030453813,420.0495864142
|
|
123
|
+
L 374.9424051604813,430.71285955635403
|
|
124
|
+
L 374.9424051604813,498.4312262764036
|
|
125
|
+
L 335.4488009302813,498.4312262764036
|
|
126
|
+
L 335.44880093028127,430.71285955635403
|
|
127
|
+
Z
|
|
128
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="355.1956030453813" y="437.82170831779" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="rotate(90 355.1956030453813 437.82170831779)">XX</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="
|
|
129
|
+
M 198.455361256775,459.5431906444
|
|
130
|
+
L 209.118634398929,439.7963885293
|
|
131
|
+
L 276.8370011189786,439.7963885293
|
|
132
|
+
L 276.8370011189786,479.2899927595
|
|
133
|
+
L 209.118634398929,479.2899927595
|
|
134
|
+
Z
|
|
135
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="216.227483160365" y="459.5431906444" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
|
|
136
|
+
M 1022.8843495621999,222.58156526320002
|
|
137
|
+
L 1033.547622704354,202.83476314810002
|
|
138
|
+
L 1101.2659894244034,202.83476314810002
|
|
139
|
+
L 1101.2659894244034,242.32836737830002
|
|
140
|
+
L 1033.547622704354,242.32836737830002
|
|
141
|
+
Z
|
|
142
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="1040.6564714657898" y="222.58156526320002" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" d="
|
|
143
|
+
M 198.455361256775,499.0367948746
|
|
144
|
+
L 209.118634398929,479.28999275949997
|
|
145
|
+
L 276.8370011189786,479.28999275949997
|
|
146
|
+
L 276.8370011189786,518.7835969897
|
|
147
|
+
L 209.118634398929,518.7835969897
|
|
148
|
+
Z
|
|
149
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="216.227483160365" y="499.0367948746" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" d="
|
|
150
|
+
M 1022.8843495621999,301.56877372360003
|
|
151
|
+
L 1033.547622704354,281.8219716085
|
|
152
|
+
L 1101.2659894244034,281.8219716085
|
|
153
|
+
L 1101.2659894244034,321.31557583870006
|
|
154
|
+
L 1033.547622704354,321.31557583870006
|
|
155
|
+
Z
|
|
156
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="1040.6564714657898" y="301.56877372360003" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" d="
|
|
157
|
+
M 198.455361256775,538.5303991048
|
|
158
|
+
L 209.118634398929,518.7835969897001
|
|
159
|
+
L 276.8370011189786,518.7835969897001
|
|
160
|
+
L 276.8370011189786,558.2772012199
|
|
161
|
+
L 209.118634398929,558.2772012199
|
|
162
|
+
Z
|
|
163
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="216.227483160365" y="538.5303991048" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" d="
|
|
164
|
+
M 1022.8843495621999,380.555982184
|
|
165
|
+
L 1033.547622704354,360.8091800689
|
|
166
|
+
L 1101.2659894244034,360.8091800689
|
|
167
|
+
L 1101.2659894244034,400.30278429910004
|
|
168
|
+
L 1033.547622704354,400.30278429910004
|
|
169
|
+
Z
|
|
170
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="1040.6564714657898" y="380.555982184" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_10__stack1" d="
|
|
171
|
+
M 630.4166575245875,578.024003335
|
|
172
|
+
L 650.1634596396875,588.687276477154
|
|
173
|
+
L 650.1634596396875,656.4056431972035
|
|
174
|
+
L 610.6698554094876,656.4056431972035
|
|
175
|
+
L 610.6698554094876,588.687276477154
|
|
176
|
+
Z
|
|
177
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.94936042302px"/><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="630.4166575245875" y="595.79612523859" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="35.544243807179996px" transform="rotate(90 630.4166575245875 595.79612523859)">XX</text>
|
|
178
|
+
</g>
|
|
179
|
+
</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="-7.65,-0.43000000000000016 -8.95,-0.4299999999999997" data-type="line" data-label="" points="325.9574468085108,331.9148936170213 171.06382978723423,331.9148936170212" fill="none" stroke="hsl(80, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-7.65,-0.43000000000000016 -8.95,-0.4299999999999997" data-type="line" data-label="" points="325.9574468085108,331.9148936170213 171.06382978723423,331.9148936170212" fill="none" stroke="hsl(88, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-7.65,-0.43000000000000016 -8.95,-0.4299999999999997" data-type="line" data-label="" points="325.9574468085108,331.9148936170213 171.06382978723423,331.9148936170212" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-6.5" data-y="-0.33" x="325.9574468085108" y="230.63829787234044" width="274.04255319148933" height="178.7234042553191" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008392857142857145"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-9.5" data-y="-0.4299999999999997" x="40.00000000000034" y="308.7457455319149" width="131.063829787234" height="46.33829617021263" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008392857142857145"/></g><g><rect data-type="rect" data-label="netId: SWCLK
|
|
2
4
|
globalConnNetId: connectivity_net1" data-x="-8.011" data-y="-0.22999999999999998" x="240.0510638297875" y="296.17021276595744" width="85.78723404255311" height="23.829787234042556" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008392857142857145"/></g><g><rect data-type="rect" data-label="netId: SWD
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="-8.65" data-y="-0.18989999999999985" x="178.2127659574469" y="274.7114893617021" width="57.191489361702224" height="57.19148936170211" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008392857142857145"/></g><g><rect data-type="rect" data-label="netId: CLK
|
|
4
6
|
globalConnNetId: connectivity_net2" data-x="-8.011" data-y="-0.6300000000000001" x="240.0510638297875" y="343.82978723404256" width="85.78723404255311" height="23.829787234042556" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008392857142857145"/></g><g><circle data-type="point" data-label="U3.24
|
|
@@ -19,7 +21,7 @@ orientation: x-" data-x="-7.65" data-y="-0.6300000000000001" cx="325.95744680851
|
|
|
19
21
|
const h = svg.getElementById('crosshair-h');
|
|
20
22
|
const v = svg.getElementById('crosshair-v');
|
|
21
23
|
const coords = svg.getElementById('coordinates');
|
|
22
|
-
|
|
24
|
+
|
|
23
25
|
crosshair.style.display = 'block';
|
|
24
26
|
h.setAttribute('x1', '0');
|
|
25
27
|
h.setAttribute('x2', '640');
|
|
@@ -38,13 +40,13 @@ orientation: x-" data-x="-7.65" data-y="-0.6300000000000001" cx="325.95744680851
|
|
|
38
40
|
// y' = (y - ty) / sy
|
|
39
41
|
const sx = matrix.a;
|
|
40
42
|
const sy = matrix.d;
|
|
41
|
-
const tx = matrix.e;
|
|
43
|
+
const tx = matrix.e;
|
|
42
44
|
const ty = matrix.f;
|
|
43
45
|
const realPoint = {
|
|
44
46
|
x: (x - tx) / sx,
|
|
45
47
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
|
|
48
50
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
49
51
|
coords.setAttribute('x', (x + 5).toString());
|
|
50
52
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -52,4 +54,41 @@ orientation: x-" data-x="-7.65" data-y="-0.6300000000000001" cx="325.95744680851
|
|
|
52
54
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
53
55
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
54
56
|
});
|
|
55
|
-
]]></script
|
|
57
|
+
]]></script>
|
|
58
|
+
</g>
|
|
59
|
+
<g transform="translate(1216, 200)">
|
|
60
|
+
<style>
|
|
61
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
62
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
63
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
64
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
65
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
66
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
67
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
68
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
69
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
70
|
+
|
|
71
|
+
</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 640.7766990288649 423.30097087379704 L 337.8640776695952 423.3009708737969" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="37.281553398064005px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 640.7766990288649 423.30097087379704 L 337.8640776695952 423.3009708737969" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.660194174758001px" 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="733.9805825240248" y="225.242718446582" width="349.5145631068501" height="349.51456310685" stroke-width="4.660194174758001px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="733.9805825240248" y="225.242718446582" width="349.5145631068501" height="349.51456310685" fill="transparent"/><text class="sch-text" x="908.73786407745" y="400.000000000007" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="41.941747572822px" transform="rotate(0, 908.73786407745, 400.000000000007)">U3</text><line class="component-pin sch-component-pin sch-port-line" x1="733.9805825240248" y1="376.699029126217" x2="645.4368932036227" y2="376.699029126217" stroke-width="4.660194174758001px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="640.7766990288649" cy="376.699029126217" r="4.660194174758001" stroke-width="4.660194174758001px"/><rect x="636.1165048541069" y="372.038834951459" width="9.320388349516001" height="9.320388349516001" opacity="0"/></g><text class="pin-number sch-pin-number" x="687.3786407764449" y="372.03883495145897" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="34.951456310685px" transform="">24</text><line class="component-pin sch-component-pin sch-port-line" x1="733.9805825240248" y1="423.30097087379704" x2="640.7766990288649" y2="423.30097087379704" stroke-width="4.660194174758001px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="636.1165048541069" y="418.64077669903907" width="9.320388349516001" height="9.320388349516001" opacity="0"/></g><text class="pin-number sch-pin-number" x="687.3786407764449" y="418.64077669903907" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="34.951456310685px" transform="">25</text><line class="component-pin sch-component-pin sch-port-line" x1="733.9805825240248" y1="469.902912621377" x2="645.4368932036227" y2="469.902912621377" stroke-width="4.660194174758001px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="640.7766990288649" cy="469.902912621377" r="4.660194174758001" stroke-width="4.660194174758001px"/><rect x="636.1165048541069" y="465.24271844661905" width="9.320388349516001" height="9.320388349516001" opacity="0"/></g><text class="pin-number sch-pin-number" x="687.3786407764449" y="465.24271844661905" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="34.951456310685px" transform="">26</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="81.55339805790462" y="389.1347572815586" width="256.3106796116904" height="68.33242718447661" fill="transparent"/><path class="sch-component-symbol-path" d="M 81.55339805790462 423.3009708737969 L 124.28038834917338 423.3009708737969" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.660194174758001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 295.13708737832616 423.3009708737969 L 337.86407766959496 423.3009708737969" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.660194174758001px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 124.28038834917338 389.1347572815586 L 295.13708737832616 389.1347572815586 L 295.13708737832616 457.46718446603523 L 124.28038834917338 457.46718446603523 L 124.28038834917338 389.1347572815586" stroke="rgb(132, 0, 0)" fill="none" stroke-width="4.660194174758001px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="209.70873786374977" y="354.95145631067953" stroke="rgb(245, 241, 237)" stroke-width="4.660194174758001px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="41.941747572822px">R5</text><text class="sch-component-text" x="209.70873786374977" y="491.6504854369143" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="41.941747572822px"></text><circle class="component-pin sch-component-pin" cx="81.55339805790462" cy="423.3009708737969" r="4.660194174758001px" stroke-width="4.660194174758001px" 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="640.7766990288649" cy="376.699029126217" r="9.320388349516001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="640.7766990288649" cy="423.30097087379704" r="9.320388349516001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="640.7766990288649" cy="469.902912621377" r="9.320388349516001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="139.8058252423798" cy="423.3009708737969" r="9.320388349516001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="396.11650485406994" cy="423.3009708737969" r="9.320388349516001" 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="
|
|
72
|
+
M 640.7766990288649,376.699029126217
|
|
73
|
+
L 628.1941747570182,400.000000000007
|
|
74
|
+
L 466.1747572812651,400.000000000007
|
|
75
|
+
L 466.1747572812651,353.39805825242695
|
|
76
|
+
L 628.1941747570182,353.398058252427
|
|
77
|
+
Z
|
|
78
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.660194174758001px"/><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="619.8058252424539" y="376.699029126217" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="41.941747572822px" 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_1__stack1" d="
|
|
79
|
+
M 407.7669902909647,423.3009708737969
|
|
80
|
+
L 384.4660194171747,410.71844660195035
|
|
81
|
+
L 384.4660194171747,303.44077669902117
|
|
82
|
+
L 431.0679611647547,303.44077669902117
|
|
83
|
+
L 431.0679611647547,410.71844660195035
|
|
84
|
+
Z
|
|
85
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.660194174758001px"/><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="407.7669902909647" y="402.3300970873859" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="41.941747572822px" transform="rotate(-90 407.7669902909647 402.3300970873859)">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="
|
|
86
|
+
M 640.7766990288649,469.902912621377
|
|
87
|
+
L 628.1941747570182,493.203883495167
|
|
88
|
+
L 466.1747572812651,493.203883495167
|
|
89
|
+
L 466.1747572812651,446.601941747587
|
|
90
|
+
L 628.1941747570182,446.60194174758703
|
|
91
|
+
Z
|
|
92
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.660194174758001px"/><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="619.8058252424539" y="469.902912621377" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="41.941747572822px" transform="">XXXXX</text>
|
|
93
|
+
</g>
|
|
94
|
+
</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="2.6,-0.8499999999999999 3.75,-1.4" data-type="line" data-label="" points="477.8947368421052,337.7263157894737 574.7368421052631,384.0421052631579" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.6,-0.8499999999999999 3.75,-2.4" data-type="line" data-label="" points="477.8947368421052,337.7263157894737 574.7368421052631,468.25263157894733" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.75,-1.4 3.75,-2.4" data-type="line" data-label="" points="574.7368421052631,384.0421052631579 574.7368421052631,468.25263157894733" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.6,0.10000000000000009 2.6500000000000004,-1.4" data-type="line" data-label="" points="477.8947368421052,257.7263157894737 482.1052631578947,384.0421052631579" fill="none" stroke="hsl(273, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.6,-0.09999999999999987 2.6500000000000004,-2.4" data-type="line" data-label="" points="477.8947368421052,274.5684210526316 482.1052631578947,468.25263157894733" fill="none" stroke="hsl(274, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.75,-2.4 3.95,-2.4 3.95,-1.4 3.75,-1.4" data-type="line" data-label="" points="574.7368421052631,468.25263157894733 591.578947368421,468.25263157894733 591.578947368421,384.0421052631579 574.7368421052631,384.0421052631579" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.6,-0.8499999999999999 3.95,-0.8499999999999999 3.95,-1.4 3.75,-1.4" data-type="line" data-label="" points="477.8947368421052,337.7263157894737 591.578947368421,337.7263157894737 591.578947368421,384.0421052631579 574.7368421052631,384.0421052631579" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.6,0.10000000000000009 2.61,0.10000000000000009 2.61,-1.2 2.435,-1.2 2.435,-1.4 2.6500000000000004,-1.4" data-type="line" data-label="" points="477.8947368421052,257.7263157894737 478.7368421052631,257.7263157894737 478.7368421052631,367.2 463.99999999999994,367.2 463.99999999999994,384.0421052631579 482.1052631578947,384.0421052631579" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.6,-0.09999999999999987 2.6400000000000006,-0.09999999999999987 2.6400000000000006,-1.25 2.4650000000000007,-1.25 2.4650000000000007,-2.4 2.6500000000000004,-2.4" data-type="line" data-label="" points="477.8947368421052,274.5684210526316 481.2631578947369,274.5684210526316 481.2631578947369,371.41052631578947 466.5263157894737,371.41052631578947 466.5263157894737,468.25263157894733 482.1052631578947,468.25263157894733" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.6,0.8499999999999999 2.701,0.8499999999999999 2.701,1.001" data-type="line" data-label="" points="477.8947368421052,194.5684210526316 486.4,194.5684210526316 486.4,181.8526315789474" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_16" data-x="0" data-y="0" x="40" y="181.93684210526317" width="437.8947368421052" height="168.42105263157896" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011875000000000002"/></g><g><rect data-type="rect" data-label="schematic_component_17" data-x="3.2" data-y="-1.4" x="482.10526315789474" y="351.24586526315795" width="92.63157894736844" height="65.59247999999991" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011875000000000002"/></g><g><rect data-type="rect" data-label="schematic_component_18" data-x="3.2" data-y="-2.4" x="482.10526315789474" y="435.45639157894743" width="92.63157894736844" height="65.59247999999985" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011875000000000002"/></g><g><rect data-type="rect" data-label="netId: VBUS
|
|
2
4
|
globalConnNetId: connectivity_net3" data-x="2.701" data-y="1.301" x="477.978947368421" y="131.3263157894737" width="16.84210526315792" height="50.5263157894737" fill="#ef444466" stroke="#ef4444" stroke-width="0.011875000000000002"/></g><g><rect data-type="rect" data-label="netId: D_PLUS
|
|
3
5
|
globalConnNetId: connectivity_net2" data-x="3.021" data-y="0.6499999999999999" x="477.978947368421" y="202.98947368421057" width="70.73684210526312" height="16.84210526315789" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011875000000000002"/></g><g><rect data-type="rect" data-label="netId: D_MINUS
|
|
4
6
|
globalConnNetId: connectivity_net1" data-x="3.081" data-y="0.44999999999999996" x="477.97894736842096" y="219.83157894736843" width="80.8421052631578" height="16.84210526315789" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011875000000000002"/></g><g><rect data-type="rect" data-label="netId: CC1
|
|
@@ -32,7 +34,7 @@ orientation: y-" data-x="3.95" data-y="-2.4" cx="591.578947368421" cy="468.25263
|
|
|
32
34
|
const h = svg.getElementById('crosshair-h');
|
|
33
35
|
const v = svg.getElementById('crosshair-v');
|
|
34
36
|
const coords = svg.getElementById('coordinates');
|
|
35
|
-
|
|
37
|
+
|
|
36
38
|
crosshair.style.display = 'block';
|
|
37
39
|
h.setAttribute('x1', '0');
|
|
38
40
|
h.setAttribute('x2', '640');
|
|
@@ -51,13 +53,13 @@ orientation: y-" data-x="3.95" data-y="-2.4" cx="591.578947368421" cy="468.25263
|
|
|
51
53
|
// y' = (y - ty) / sy
|
|
52
54
|
const sx = matrix.a;
|
|
53
55
|
const sy = matrix.d;
|
|
54
|
-
const tx = matrix.e;
|
|
56
|
+
const tx = matrix.e;
|
|
55
57
|
const ty = matrix.f;
|
|
56
58
|
const realPoint = {
|
|
57
59
|
x: (x - tx) / sx,
|
|
58
60
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
59
61
|
}
|
|
60
|
-
|
|
62
|
+
|
|
61
63
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
62
64
|
coords.setAttribute('x', (x + 5).toString());
|
|
63
65
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -65,4 +67,62 @@ orientation: y-" data-x="3.95" data-y="-2.4" cx="591.578947368421" cy="468.25263
|
|
|
65
67
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
66
68
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
67
69
|
});
|
|
68
|
-
]]></script
|
|
70
|
+
]]></script>
|
|
71
|
+
</g>
|
|
72
|
+
<g transform="translate(1216, 200)">
|
|
73
|
+
<style>
|
|
74
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
75
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
76
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
77
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
78
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
79
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
80
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
81
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
82
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
83
|
+
|
|
84
|
+
</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 997.9604526800001 644.2505966445999 L 1026.3861993 644.2505966445999 L 1026.3861993 502.1218635446 L 997.9604526800001 502.1218635446" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.740597296px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 997.9604526800001 644.2505966445999 L 1026.3861993 644.2505966445999 L 1026.3861993 502.1218635446 L 997.9604526800001 502.1218635446" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.842574662px" 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 834.512409615 423.95106033959996 L 1026.3861993 423.95106033959996 L 1026.3861993 502.1218635446 L 997.9604526800001 502.1218635446" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.740597296px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 834.512409615 423.95106033959996 L 1026.3861993 423.95106033959996 L 1026.3861993 502.1218635446 L 997.9604526800001 502.1218635446" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.842574662px" 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 834.512409615 288.92876389459997 L 835.933696946 288.92876389459997 L 835.933696946 473.6961169246 L 811.0611686535001 473.6961169246 L 811.0611686535001 502.1218635446 L 841.6188462700001 502.1218635446" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.740597296px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 834.512409615 288.92876389459997 L 835.933696946 288.92876389459997 L 835.933696946 473.6961169246 L 811.0611686535001 473.6961169246 L 811.0611686535001 502.1218635446 L 841.6188462700001 502.1218635446" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.842574662px" 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 834.512409615 317.35451051459995 L 840.1975589390001 317.35451051459995 L 840.1975589390001 480.8025535796 L 815.3250306465002 480.8025535796 L 815.3250306465002 644.2505966445999 L 841.6188462700001 644.2505966445999" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.740597296px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 834.512409615 317.35451051459995 L 840.1975589390001 317.35451051459995 L 840.1975589390001 480.8025535796 L 815.3250306465002 480.8025535796 L 815.3250306465002 644.2505966445999 L 841.6188462700001 644.2505966445999" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.842574662px" 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 834.512409615 182.3322140696 L 848.8674116581001 182.3322140696 L 848.8674116581001 160.8707753715" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="22.740597296px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 834.512409615 182.3322140696 L 848.8674116581001 182.3322140696 L 848.8674116581001 160.8707753715" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.842574662px" 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"><circle cx="1026.3861993" cy="502.1218635446" r="4.263861993" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/><circle cx="997.9604526800001" cy="502.1218635446" r="4.263861993" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/></g><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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="152.29449073499995" y="161.01290410459998" width="625.3664256400001" height="284.25746619999995" stroke-width="2.842574662px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="152.29449073499995" y="161.01290410459998" width="625.3664256400001" height="284.25746619999995" fill="transparent"/><text class="sch-text" x="464.977703555" y="303.1416372046" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="25.583171958px" transform="rotate(0, 464.977703555, 303.1416372046)">U3</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="182.3322140696" x2="834.512409615" y2="182.3322140696" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="831.6698349530001" y="179.4896394076" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="179.4896394076" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="210.7579606896" x2="831.669834953" y2="210.7579606896" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="834.512409615" cy="210.7579606896" r="2.842574662" stroke-width="2.842574662px"/><rect x="831.6698349530001" y="207.9153860276" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="207.9153860276" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="239.18370730959998" x2="831.669834953" y2="239.18370730959998" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="834.512409615" cy="239.18370730959998" r="2.842574662" stroke-width="2.842574662px"/><rect x="831.6698349530001" y="236.34113264759998" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="236.34113264759998" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="288.92876389459997" x2="834.512409615" y2="288.92876389459997" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="831.6698349530001" y="286.08618923259996" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="286.08618923259996" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="317.35451051459995" x2="834.512409615" y2="317.35451051459995" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="831.6698349530001" y="314.51193585259995" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="314.51193585259995" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="367.0995670996" x2="831.669834953" y2="367.0995670996" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="834.512409615" cy="367.0995670996" r="2.842574662" stroke-width="2.842574662px"/><rect x="831.6698349530001" y="364.2569924376" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="364.25699243759993" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="395.5253137196" x2="831.669834953" y2="395.5253137196" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="834.512409615" cy="395.5253137196" r="2.842574662" stroke-width="2.842574662px"/><rect x="831.6698349530001" y="392.6827390576" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="392.6827390576" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="777.660916375" y1="423.95106033959996" x2="834.512409615" y2="423.95106033959996" stroke-width="2.842574662px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="831.6698349530001" y="421.10848567759996" width="5.685149324" height="5.685149324" opacity="0"/></g><text class="pin-number sch-pin-number" x="806.0866629950001" y="421.10848567759996" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="21.319309965px" transform="">8</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="841.6188462700001" y="481.281527410147" width="156.34160640999994" height="41.680672268905994" fill="transparent"/><path class="sch-component-symbol-path" d="M 841.6188462700001 502.1218635446 L 867.6809920585471 502.1218635446" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.842574662px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 971.898306891453 502.1218635446 L 997.96045268 502.1218635446" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.842574662px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 867.6809920585471 481.281527410147 L 971.898306891453 481.281527410147 L 971.898306891453 522.962199679053 L 867.6809920585471 522.962199679053 L 867.6809920585471 481.281527410147" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.842574662px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="919.789649475" y="460.43076850193336" stroke="rgb(245, 241, 237)" stroke-width="2.842574662px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="25.583171958px">R8</text><text class="sch-component-text" x="919.789649475" y="543.8129585872666" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="25.583171958px"></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="841.6188462700001" y="623.4102605101469" width="156.34160640999994" height="41.68067226890594" fill="transparent"/><path class="sch-component-symbol-path" d="M 841.6188462700001 644.2505966445999 L 867.6809920585471 644.2505966445999" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.842574662px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 971.898306891453 644.2505966445999 L 997.96045268 644.2505966445999" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.842574662px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 867.6809920585471 623.4102605101469 L 971.898306891453 623.4102605101469 L 971.898306891453 665.0909327790529 L 867.6809920585471 665.0909327790529 L 867.6809920585471 623.4102605101469" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.842574662px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="919.789649475" y="602.5595016019332" stroke="rgb(245, 241, 237)" stroke-width="2.842574662px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="25.583171958px">R9</text><text class="sch-component-text" x="919.789649475" y="685.9416916872666" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="25.583171958px"></text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="834.512409615" cy="182.3322140696" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="834.512409615" cy="210.7579606896" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="834.512409615" cy="239.18370730959998" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="834.512409615" cy="288.92876389459997" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="834.512409615" cy="317.35451051459995" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="834.512409615" cy="367.0995670996" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="834.512409615" cy="395.5253137196" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="834.512409615" cy="423.95106033959996" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="877.151029545" cy="502.1218635446" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="1033.492635955" cy="502.1218635446" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="877.151029545" cy="644.2505966445999" r="5.685149324" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="1033.492635955" cy="644.2505966445999" r="5.685149324" 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="
|
|
85
|
+
M 848.8674116581001,160.8707753715
|
|
86
|
+
L 834.6545383481001,153.1958237841
|
|
87
|
+
L 834.6545383481001,71.06436655004667
|
|
88
|
+
L 863.0802849681,71.06436655004667
|
|
89
|
+
L 863.0802849681,153.1958237841
|
|
90
|
+
Z
|
|
91
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.842574662px"/><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="848.8674116581001" y="148.0791893925" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.583171958px" transform="rotate(-90 848.8674116581001 148.0791893925)">XXXX</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="
|
|
92
|
+
M 834.512409615,210.7579606896
|
|
93
|
+
L 842.1873612024,196.5450873796
|
|
94
|
+
L 957.70959546608,196.5450873796
|
|
95
|
+
L 957.70959546608,224.9708339996
|
|
96
|
+
L 842.1873612024,224.9708339996
|
|
97
|
+
Z
|
|
98
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.842574662px"/><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="847.3039955940001" y="210.7579606896" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.583171958px" 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_2__stack1" d="
|
|
99
|
+
M 834.512409615,239.18370730959998
|
|
100
|
+
L 842.1873612024,224.9708339996
|
|
101
|
+
L 974.4049839808933,224.9708339996
|
|
102
|
+
L 974.4049839808933,253.39658061959997
|
|
103
|
+
L 842.1873612024,253.39658061959997
|
|
104
|
+
Z
|
|
105
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.842574662px"/><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="847.3039955940001" y="239.18370730959998" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.583171958px" transform="">XXXXXXX</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="
|
|
106
|
+
M 835.933696946,288.92876389459997
|
|
107
|
+
L 843.6086485334,274.71589058459995
|
|
108
|
+
L 909.0447172526401,274.71589058459995
|
|
109
|
+
L 909.0447172526401,303.1416372046
|
|
110
|
+
L 843.6086485334,303.1416372046
|
|
111
|
+
Z
|
|
112
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.842574662px"/><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="848.7252829250001" y="288.92876389459997" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.583171958px" 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="
|
|
113
|
+
M 840.1975589390001,317.35451051459995
|
|
114
|
+
L 847.8725105264001,303.14163720459993
|
|
115
|
+
L 913.3085792456402,303.14163720459993
|
|
116
|
+
L 913.3085792456402,331.5673838246
|
|
117
|
+
L 847.8725105264001,331.5673838246
|
|
118
|
+
Z
|
|
119
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.842574662px"/><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="852.9891449180002" y="317.35451051459995" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.583171958px" 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="
|
|
120
|
+
M 1026.3861993,644.2505966445999
|
|
121
|
+
L 1040.5990726100001,651.9255482319999
|
|
122
|
+
L 1040.5990726100001,717.36161695124
|
|
123
|
+
L 1012.1733259900001,717.36161695124
|
|
124
|
+
L 1012.1733259900001,651.9255482319999
|
|
125
|
+
Z
|
|
126
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.842574662px"/><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="1026.3861993" y="657.0421826236" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="25.583171958px" transform="rotate(90 1026.3861993 657.0421826236)">XXX</text>
|
|
127
|
+
</g>
|
|
128
|
+
</svg>
|