@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="-3.5005768910000006,1.4489565000000004 -0.5005768910000006,1.4489565000000004" data-type="line" data-label="" points="78.07900088054879,225.88837130377448 285.40568444070533,225.88837130377448" fill="none" stroke="hsl(340, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-3.5005768910000006,1.4489565000000004 2.4994231089999994,1.4489565000000004" data-type="line" data-label="" points="78.07900088054879,225.88837130377448 492.7323680008618,225.88837130377448" fill="none" stroke="hsl(340, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-0.5005768910000006,1.4489565000000004 2.4994231089999994,1.4489565000000004" data-type="line" data-label="" points="285.40568444070533,225.88837130377448 492.7323680008618,225.88837130377448" fill="none" stroke="hsl(340, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-3.5005768910000006,1.4489565000000004 -3.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="78.07900088054879,225.88837130377448 78.07900088054879,433.215054863931" fill="none" stroke="hsl(341, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-3.5005768910000006,1.4489565000000004 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="78.07900088054879,225.88837130377448 285.40568444070533,433.215054863931" fill="none" stroke="hsl(341, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-3.5005768910000006,-1.5510434999999996 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="78.07900088054879,433.215054863931 285.40568444070533,433.215054863931" fill="none" stroke="hsl(341, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5005768910000006,1.4485175000000003 -2.4994231089999994,-1.5514824999999997" data-type="line" data-label="" points="354.59431555929467,225.9187101084688 147.26763199913816,433.2453936686253" fill="none" stroke="hsl(342, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5005768910000006,1.4485175000000003 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="354.59431555929467,225.9187101084688 561.9209991194512,433.2453936686253" fill="none" stroke="hsl(342, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.4994231089999994,-1.5514824999999997 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="147.26763199913816,433.2453936686253 561.9209991194512,433.2453936686253" fill="none" stroke="hsl(342, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.5005768910000006,1.4485175000000003 0.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="561.9209991194512,225.9187101084688 354.59431555929467,433.2453936686253" fill="none" stroke="hsl(343, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.5005768910000006,1.4485175000000003 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="561.9209991194512,225.9187101084688 561.9209991194512,433.2453936686253" fill="none" stroke="hsl(343, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.5005768910000006,-1.5514824999999997 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="354.59431555929467,433.2453936686253 561.9209991194512,433.2453936686253" fill="none" stroke="hsl(343, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-3.5005768910000006,-1.5510434999999996 -3.7005768910000008,-1.5510434999999996 -3.7005768910000008,-1.9246184999999991 -0.7005768910000008,-1.9246184999999991 -0.7005768910000008,-1.5510434999999996 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="78.07900088054879,433.215054863931 64.25722197653835,433.215054863931 64.25722197653835,459.03241013425946 271.58390553669483,459.03241013425946 271.58390553669483,433.215054863931 285.40568444070533,433.215054863931" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-3.5005768910000006,1.4489565000000004 -3.5005768910000006,1.6489565000000006 -4.051576891000001,1.6489565000000006 -4.051576891000001,1.0753815000000009 -0.7005768910000008,1.0753815000000009 -0.7005768910000008,1.4489565000000004 -0.5005768910000006,1.4489565000000004" data-type="line" data-label="" points="78.07900088054879,225.88837130377448 78.07900088054879,212.06659239976403 40,212.06659239976403 40,251.70572657410293 271.58390553669483,251.70572657410293 271.58390553669483,225.88837130377448 285.40568444070533,225.88837130377448" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.5005768910000006,1.4485175000000003 4.051576891000001,1.4485175000000003 4.051576891000001,-1.3514824999999995 3.5005768910000006,-1.3514824999999995 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="561.9209991194512,225.9187101084688 600,225.9187101084688 600,419.42361476461485 561.9209991194512,419.42361476461485 561.9209991194512,433.2453936686253" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="1.5" x="78.07900088054878" y="206.83767522258796" width="69.18863111858937" height="31.04627244750455" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="1.5" x="285.40568444070533" y="206.83767522258796" width="69.18863111858934" height="31.04627244750455" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="3" data-y="1.5" x="492.73236800086187" y="206.83767522258796" width="69.18863111858934" height="31.04627244750455" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-3" data-y="-1.5" x="78.07900088054878" y="414.16435878274444" width="69.18863111858937" height="31.046272447504577" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="0" data-y="-1.5" x="285.40568444070533" y="414.16435878274444" width="69.18863111858934" height="31.046272447504577" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="3" data-y="-1.5" x="492.73236800086187" y="414.16435878274444" width="69.18863111858934" height="31.046272447504577" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="netId: PIN1
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="-3.7005768910000008" data-y="1.8739565000000007" x="57.346332524533125" y="180.96758986574054" width="13.821778904010444" height="31.099002534023498" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="netId: PIN1
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="2.2734231089999994" data-y="1.4489565000000004" x="461.5642565723183" y="218.97748185176926" width="31.099002534023498" height="13.821778904010444" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="netId: PIN2
|
|
4
6
|
globalConnNetId: connectivity_net1" data-x="-3.7265768910000006" data-y="1.4489565000000004" x="46.91088945200521" y="218.97748185176926" width="31.099002534023526" height="13.821778904010444" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014469917467857146"/></g><g><rect data-type="rect" data-label="netId: PIN2
|
|
@@ -50,7 +52,7 @@ orientation: x+" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="35
|
|
|
50
52
|
const h = svg.getElementById('crosshair-h');
|
|
51
53
|
const v = svg.getElementById('crosshair-v');
|
|
52
54
|
const coords = svg.getElementById('coordinates');
|
|
53
|
-
|
|
55
|
+
|
|
54
56
|
crosshair.style.display = 'block';
|
|
55
57
|
h.setAttribute('x1', '0');
|
|
56
58
|
h.setAttribute('x2', '640');
|
|
@@ -69,13 +71,13 @@ orientation: x+" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="35
|
|
|
69
71
|
// y' = (y - ty) / sy
|
|
70
72
|
const sx = matrix.a;
|
|
71
73
|
const sy = matrix.d;
|
|
72
|
-
const tx = matrix.e;
|
|
74
|
+
const tx = matrix.e;
|
|
73
75
|
const ty = matrix.f;
|
|
74
76
|
const realPoint = {
|
|
75
77
|
x: (x - tx) / sx,
|
|
76
78
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
77
79
|
}
|
|
78
|
-
|
|
80
|
+
|
|
79
81
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
80
82
|
coords.setAttribute('x', (x + 5).toString());
|
|
81
83
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -83,4 +85,83 @@ orientation: x+" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="35
|
|
|
83
85
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
84
86
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
85
87
|
});
|
|
86
|
-
]]></script
|
|
88
|
+
]]></script>
|
|
89
|
+
</g>
|
|
90
|
+
<g transform="translate(1216, 200)">
|
|
91
|
+
<style>
|
|
92
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
93
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
94
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
95
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
96
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
97
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
98
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
99
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
100
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
101
|
+
|
|
102
|
+
</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 143.55948311806884 606.8872307365 L 117.48146620288878 606.8872307365 L 117.48146620288878 655.5977065819417 L 508.6517199305888 655.5977065819417 L 508.6517199305888 606.8872307365 L 534.7297368457688 606.8872307365" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="20.862413532144px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 143.55948311806884 606.8872307365 L 117.48146620288878 606.8872307365 L 117.48146620288878 655.5977065819417 L 508.6517199305888 655.5977065819417 L 508.6517199305888 606.8872307365 L 534.7297368457688 606.8872307365" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.607801691518px" 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 143.55948311806884 215.71697700879992 L 143.55948311806884 189.6389600936199 L 71.71454651674787 189.6389600936199 L 71.71454651674787 264.42745285424166 L 508.6517199305888 264.42745285424166 L 508.6517199305888 215.71697700879992 L 534.7297368457688 215.71697700879992" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="20.862413532144px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 143.55948311806884 215.71697700879992 L 143.55948311806884 189.6389600936199 L 71.71454651674787 189.6389600936199 L 71.71454651674787 264.42745285424166 L 508.6517199305888 264.42745285424166 L 508.6517199305888 215.71697700879992 L 534.7297368457688 215.71697700879992" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.607801691518px" 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 1056.4405168819312 215.77421825592873 L 1128.2854534832522 215.77421825592873 L 1128.2854534832522 580.8664550684487 L 1056.4405168819312 580.8664550684487 L 1056.4405168819312 606.9444719836288" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="20.862413532144px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 1056.4405168819312 215.77421825592873 L 1128.2854534832522 215.77421825592873 L 1128.2854534832522 580.8664550684487 L 1056.4405168819312 580.8664550684487 L 1056.4405168819312 606.9444719836288" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.607801691518px" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="195.71551694842884" y="179.77338551443833" width="26.228458647742286" height="58.57605042462336" stroke-width="2.607801691518px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="195.71551694842884" y="179.77338551443833" width="26.228458647742286" height="58.57605042462336" fill="transparent"/><text class="sch-text" x="208.82974627229999" y="209.06141072675" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.525350141541125px" transform="rotate(0, 208.82974627229999, 209.06141072675)">PIN1_PIN2</text><line class="component-pin sch-component-pin sch-port-line" x1="195.71551694842884" y1="215.71697700879992" x2="143.55948311806884" y2="215.71697700879992" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="140.95168142655083" y="213.1091753172819" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="169.63750003324884" y="213.1091753172819" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="195.71551694842884" y1="215.71697700879992" x2="146.16728480958682" y2="215.71697700879992" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="143.55948311806884" cy="215.71697700879992" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="140.95168142655083" y="213.1091753172819" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="169.63750003324884" y="213.1091753172819" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="221.94397559617113" y1="215.77421825592873" x2="271.49220773501315" y2="215.77421825592873" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="274.10000942653113" cy="215.77421825592873" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="271.49220773501315" y="213.16641656441072" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="248.02199251135113" y="213.16641656441072" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="221.94397559617113" y1="215.77421825592873" x2="271.49220773501315" y2="215.77421825592873" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="274.10000942653113" cy="215.77421825592873" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="271.49220773501315" y="213.16641656441072" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="248.02199251135113" y="213.16641656441072" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">4</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="586.8857706761288" y="179.77338551443833" width="26.2284586477424" height="58.57605042462336" stroke-width="2.607801691518px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="586.8857706761288" y="179.77338551443833" width="26.2284586477424" height="58.57605042462336" fill="transparent"/><text class="sch-text" x="600" y="209.06141072675" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.525350141541125px" transform="rotate(0, 600, 209.06141072675)">PIN1_PIN3</text><line class="component-pin sch-component-pin sch-port-line" x1="586.8857706761288" y1="215.71697700879992" x2="534.7297368457688" y2="215.71697700879992" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="532.1219351542508" y="213.1091753172819" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="560.8077537609488" y="213.1091753172819" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="586.8857706761288" y1="215.71697700879992" x2="537.3375385372868" y2="215.71697700879992" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="534.7297368457688" cy="215.71697700879992" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="532.1219351542508" y="213.1091753172819" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="560.8077537609488" y="213.1091753172819" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="613.1142293238712" y1="215.77421825592873" x2="662.6624614627132" y2="215.77421825592873" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="665.2702631542312" cy="215.77421825592873" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="662.6624614627132" y="213.16641656441072" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="639.1922462390512" y="213.16641656441072" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="613.1142293238712" y1="215.77421825592873" x2="662.6624614627132" y2="215.77421825592873" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_1_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="665.2702631542312" cy="215.77421825592873" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="662.6624614627132" y="213.16641656441072" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="639.1922462390512" y="213.16641656441072" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">4</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="978.0560244038288" y="179.77338551443833" width="26.2284586477424" height="58.57605042462336" stroke-width="2.607801691518px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="978.0560244038288" y="179.77338551443833" width="26.2284586477424" height="58.57605042462336" fill="transparent"/><text class="sch-text" x="991.1702537277" y="209.06141072675" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.525350141541125px" transform="rotate(0, 991.1702537277, 209.06141072675)">PIN1_PIN4</text><line class="component-pin sch-component-pin sch-port-line" x1="978.0560244038288" y1="215.71697700879992" x2="928.5077922649868" y2="215.71697700879992" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="925.8999905734688" cy="215.71697700879992" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="923.2921888819508" y="213.1091753172819" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="951.9780074886489" y="213.1091753172819" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="978.0560244038288" y1="215.71697700879992" x2="928.5077922649868" y2="215.71697700879992" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="925.8999905734688" cy="215.71697700879992" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="923.2921888819508" y="213.1091753172819" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="951.9780074886489" y="213.1091753172819" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="1004.2844830515712" y1="215.77421825592873" x2="1053.8327151904132" y2="215.77421825592873" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_2_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1056.4405168819312" cy="215.77421825592873" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="1053.8327151904132" y="213.16641656441072" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="1030.362499966751" y="213.16641656441072" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="1004.2844830515712" y1="215.77421825592873" x2="1056.4405168819312" y2="215.77421825592873" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_2_3__stack1"><rect x="1053.8327151904132" y="213.16641656441072" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="1030.362499966751" y="213.16641656441072" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">4</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component chip sch-component-body" x="195.71551694842884" y="570.9436392421384" width="26.228458647742286" height="58.576050424623304" stroke-width="2.607801691518px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="195.71551694842884" y="570.9436392421384" width="26.228458647742286" height="58.576050424623304" fill="transparent"/><text class="sch-text" x="208.82974627229999" y="600.2316644544501" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.525350141541125px" transform="rotate(0, 208.82974627229999, 600.2316644544501)">PIN2_PIN3</text><line class="component-pin sch-component-pin sch-port-line" x1="195.71551694842884" y1="606.8872307365" x2="146.16728480958682" y2="606.8872307365" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_3_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="143.55948311806884" cy="606.8872307365" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="140.95168142655083" y="604.279429044982" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="169.63750003324884" y="604.279429044982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="195.71551694842884" y1="606.8872307365" x2="143.55948311806884" y2="606.8872307365" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_3_1__stack1"><rect x="140.95168142655083" y="604.279429044982" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="169.63750003324884" y="604.279429044982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="221.94397559617113" y1="606.9444719836288" x2="271.49220773501315" y2="606.9444719836288" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_3_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="274.10000942653113" cy="606.9444719836288" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="271.49220773501315" y="604.3366702921107" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="248.02199251135113" y="604.3366702921107" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="221.94397559617113" y1="606.9444719836288" x2="271.49220773501315" y2="606.9444719836288" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_3_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="274.10000942653113" cy="606.9444719836288" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="271.49220773501315" y="604.3366702921107" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="248.02199251135113" y="604.3366702921107" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">4</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component chip sch-component-body" x="586.8857706761288" y="570.9436392421384" width="26.2284586477424" height="58.576050424623304" stroke-width="2.607801691518px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="586.8857706761288" y="570.9436392421384" width="26.2284586477424" height="58.576050424623304" fill="transparent"/><text class="sch-text" x="600" y="600.2316644544501" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.525350141541125px" transform="rotate(0, 600, 600.2316644544501)">PIN2_PIN4</text><line class="component-pin sch-component-pin sch-port-line" x1="586.8857706761288" y1="606.8872307365" x2="537.3375385372868" y2="606.8872307365" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_4_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="534.7297368457688" cy="606.8872307365" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="532.1219351542508" y="604.279429044982" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="560.8077537609488" y="604.279429044982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="586.8857706761288" y1="606.8872307365" x2="534.7297368457688" y2="606.8872307365" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_4_1__stack1"><rect x="532.1219351542508" y="604.279429044982" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="560.8077537609488" y="604.279429044982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="613.1142293238712" y1="606.9444719836288" x2="662.6624614627132" y2="606.9444719836288" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_4_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="665.2702631542312" cy="606.9444719836288" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="662.6624614627132" y="604.3366702921107" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="639.1922462390512" y="604.3366702921107" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="613.1142293238712" y1="606.9444719836288" x2="662.6624614627132" y2="606.9444719836288" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_4_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="665.2702631542312" cy="606.9444719836288" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="662.6624614627132" y="604.3366702921107" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="639.1922462390512" y="604.3366702921107" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">4</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_5__stack1"><rect class="component chip sch-component-body" x="978.0560244038288" y="570.9436392421384" width="26.2284586477424" height="58.576050424623304" stroke-width="2.607801691518px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="978.0560244038288" y="570.9436392421384" width="26.2284586477424" height="58.576050424623304" fill="transparent"/><text class="sch-text" x="991.1702537277" y="600.2316644544501" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.525350141541125px" transform="rotate(0, 991.1702537277, 600.2316644544501)">PIN3_PIN4</text><line class="component-pin sch-component-pin sch-port-line" x1="978.0560244038288" y1="606.8872307365" x2="928.5077922649868" y2="606.8872307365" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_5_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="925.8999905734688" cy="606.8872307365" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="923.2921888819508" y="604.279429044982" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="951.9780074886489" y="604.279429044982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="978.0560244038288" y1="606.8872307365" x2="928.5077922649868" y2="606.8872307365" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_5_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="925.8999905734688" cy="606.8872307365" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="923.2921888819508" y="604.279429044982" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="951.9780074886489" y="604.279429044982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="1004.2844830515712" y1="606.9444719836288" x2="1053.8327151904132" y2="606.9444719836288" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_5_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="1056.4405168819312" cy="606.9444719836288" r="2.607801691518" stroke-width="2.607801691518px"/><rect x="1053.8327151904132" y="604.3366702921107" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="1030.362499966751" y="604.3366702921107" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="1004.2844830515712" y1="606.9444719836288" x2="1056.4405168819312" y2="606.9444719836288" stroke-width="2.607801691518px"/><g class="sch-port" data-schematic-port-id="source_port_5_3__stack1"><rect x="1053.8327151904132" y="604.3366702921107" width="5.215603383036" height="5.215603383036" opacity="0"/></g><text class="pin-number sch-pin-number" x="1030.362499966751" y="604.3366702921107" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.558512686385px" transform="">4</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="143.55948311806884" cy="215.71697700879992" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="143.55948311806884" cy="215.71697700879992" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="274.10000942653113" cy="215.77421825592873" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="274.10000942653113" cy="215.77421825592873" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="534.7297368457688" cy="215.71697700879992" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="534.7297368457688" cy="215.71697700879992" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="665.2702631542312" cy="215.77421825592873" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_3__stack1"><circle cx="665.2702631542312" cy="215.77421825592873" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="925.8999905734688" cy="215.71697700879992" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="925.8999905734688" cy="215.71697700879992" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_2__stack1"><circle cx="1056.4405168819312" cy="215.77421825592873" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_3__stack1"><circle cx="1056.4405168819312" cy="215.77421825592873" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="143.55948311806884" cy="606.8872307365" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="143.55948311806884" cy="606.8872307365" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_2__stack1"><circle cx="274.10000942653113" cy="606.9444719836288" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_3__stack1"><circle cx="274.10000942653113" cy="606.9444719836288" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="534.7297368457688" cy="606.8872307365" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="534.7297368457688" cy="606.8872307365" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_2__stack1"><circle cx="665.2702631542312" cy="606.9444719836288" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_3__stack1"><circle cx="665.2702631542312" cy="606.9444719836288" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_0__stack1"><circle cx="925.8999905734688" cy="606.8872307365" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_1__stack1"><circle cx="925.8999905734688" cy="606.8872307365" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_2__stack1"><circle cx="1056.4405168819312" cy="606.9444719836288" r="5.215603383036" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_3__stack1"><circle cx="1056.4405168819312" cy="606.9444719836288" r="5.215603383036" 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="
|
|
103
|
+
M 117.48146620288878,189.6389600936199
|
|
104
|
+
L 104.44245774529878,182.59789552652128
|
|
105
|
+
L 104.44245774529878,137.88278918929265
|
|
106
|
+
L 130.52047466047878,137.88278918929265
|
|
107
|
+
L 130.52047466047878,182.59789552652128
|
|
108
|
+
Z
|
|
109
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="117.48146620288878" y="177.90385248178887" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" transform="rotate(-90 117.48146620288878 177.90385248178887)">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="
|
|
110
|
+
M 925.8999905734688,215.71697700879992
|
|
111
|
+
L 918.8589260063702,228.75598546638992
|
|
112
|
+
L 874.1438196691415,228.75598546638992
|
|
113
|
+
L 874.1438196691415,202.67796855120991
|
|
114
|
+
L 918.8589260063702,202.67796855120991
|
|
115
|
+
Z
|
|
116
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="914.1648829616378" y="215.71697700879992" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" 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="
|
|
117
|
+
M 143.55948311806884,215.71697700879992
|
|
118
|
+
L 136.51841855097024,228.75598546638992
|
|
119
|
+
L 91.8033122137416,228.75598546638992
|
|
120
|
+
L 91.8033122137416,202.67796855120991
|
|
121
|
+
L 136.51841855097024,202.67796855120991
|
|
122
|
+
Z
|
|
123
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="131.82437550623783" y="215.71697700879992" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" 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="
|
|
124
|
+
M 117.48146620288878,606.8872307365
|
|
125
|
+
L 104.44245774529878,599.8461661694014
|
|
126
|
+
L 104.44245774529878,555.1310598321727
|
|
127
|
+
L 130.52047466047878,555.1310598321727
|
|
128
|
+
L 130.52047466047878,599.8461661694014
|
|
129
|
+
Z
|
|
130
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="117.48146620288878" y="595.152123124669" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" transform="rotate(-90 117.48146620288878 595.152123124669)">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="
|
|
131
|
+
M 665.2702631542312,215.77421825592873
|
|
132
|
+
L 672.3113277213298,202.73520979833873
|
|
133
|
+
L 717.0264340585584,202.73520979833873
|
|
134
|
+
L 717.0264340585584,228.81322671351873
|
|
135
|
+
L 672.3113277213298,228.81322671351873
|
|
136
|
+
Z
|
|
137
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="677.0053707660622" y="215.77421825592873" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" 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="
|
|
138
|
+
M 274.10000942653113,606.9444719836288
|
|
139
|
+
L 281.14107399362973,593.9054635260388
|
|
140
|
+
L 325.85618033085836,593.9054635260388
|
|
141
|
+
L 325.85618033085836,619.9834804412187
|
|
142
|
+
L 281.14107399362973,619.9834804412187
|
|
143
|
+
Z
|
|
144
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="285.8351170383621" y="606.9444719836288" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" 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="
|
|
145
|
+
M 1056.4405168819312,606.9444719836288
|
|
146
|
+
L 1063.4815814490298,593.9054635260388
|
|
147
|
+
L 1108.1966877862585,593.9054635260388
|
|
148
|
+
L 1108.1966877862585,619.9834804412187
|
|
149
|
+
L 1063.4815814490298,619.9834804412187
|
|
150
|
+
Z
|
|
151
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="1068.1756244937621" y="606.9444719836288" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" 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="
|
|
152
|
+
M 1082.518533797111,215.77421825592873
|
|
153
|
+
L 1069.4795253395212,208.73315368883013
|
|
154
|
+
L 1069.4795253395212,164.0180473516015
|
|
155
|
+
L 1095.557542254701,164.0180473516015
|
|
156
|
+
L 1095.557542254701,208.73315368883013
|
|
157
|
+
Z
|
|
158
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="1082.518533797111" y="204.03911064409772" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" transform="rotate(-90 1082.518533797111 204.03911064409772)">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="
|
|
159
|
+
M 665.2702631542312,606.9444719836288
|
|
160
|
+
L 672.3113277213298,593.9054635260388
|
|
161
|
+
L 717.0264340585584,593.9054635260388
|
|
162
|
+
L 717.0264340585584,619.9834804412187
|
|
163
|
+
L 672.3113277213298,619.9834804412187
|
|
164
|
+
Z
|
|
165
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.607801691518px"/><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="677.0053707660622" y="606.9444719836288" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.470215223662px" transform="">XX</text>
|
|
166
|
+
</g>
|
|
167
|
+
</svg>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="0.30397715550000004,0.5800832909999993 0.31067575550000137,-0.5800832909999993" data-type="line" data-label="" points="376.82474681593334,221.07952010516527 378.69086877497443,544.2832245830261" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.30397715550000004,0.5800832909999993 0.30397715550000004,0.7800832909999993 0.6467558855000002,0.7800832909999993 0.6467558855000002,-0.7800832909999993 0.31067575550000137,-0.7800832909999993 0.31067575550000137,-0.5800832909999993" data-type="line" data-label="" points="376.82474681593334,221.07952010516527 376.82474681593334,165.36274468819136 472.3173744015611,165.36274468819136 472.3173744015611,600 378.69086877497443,600 378.69086877497443,544.2832245830261" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="167.68262559843902" y="221.07952010516524" width="248.91797338614813" height="323.20370447786087" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.0035895831821428554"/></g><g><rect data-type="rect" data-label="netId: V3_3
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="0.30397715550000004" data-y="1.0050832909999994" x="348.96635910744635" y="40.00000000000004" width="55.71677541697392" height="125.36274468819127" fill="#ef444466" stroke="#ef4444" stroke-width="0.0035895831821428554"/></g><g><circle data-type="point" data-label="Q1.1
|
|
3
5
|
y+" data-x="0.30397715550000004" data-y="0.5800832909999993" cx="376.82474681593334" cy="221.07952010516527" r="3" fill="hsl(315, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="Q1.2
|
|
4
6
|
y-" data-x="0.31067575550000137" data-y="-0.5800832909999993" cx="378.69086877497443" cy="544.2832245830261" r="3" fill="hsl(316, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="Q1.3
|
|
@@ -13,7 +15,7 @@ orientation: y+" data-x="0.30397715550000004" data-y="0.7800832909999993" cx="37
|
|
|
13
15
|
const h = svg.getElementById('crosshair-h');
|
|
14
16
|
const v = svg.getElementById('crosshair-v');
|
|
15
17
|
const coords = svg.getElementById('coordinates');
|
|
16
|
-
|
|
18
|
+
|
|
17
19
|
crosshair.style.display = 'block';
|
|
18
20
|
h.setAttribute('x1', '0');
|
|
19
21
|
h.setAttribute('x2', '640');
|
|
@@ -32,13 +34,13 @@ orientation: y+" data-x="0.30397715550000004" data-y="0.7800832909999993" cx="37
|
|
|
32
34
|
// y' = (y - ty) / sy
|
|
33
35
|
const sx = matrix.a;
|
|
34
36
|
const sy = matrix.d;
|
|
35
|
-
const tx = matrix.e;
|
|
37
|
+
const tx = matrix.e;
|
|
36
38
|
const ty = matrix.f;
|
|
37
39
|
const realPoint = {
|
|
38
40
|
x: (x - tx) / sx,
|
|
39
41
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
40
42
|
}
|
|
41
|
-
|
|
43
|
+
|
|
42
44
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
43
45
|
coords.setAttribute('x', (x + 5).toString());
|
|
44
46
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -46,4 +48,27 @@ orientation: y+" data-x="0.30397715550000004" data-y="0.7800832909999993" cx="37
|
|
|
46
48
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
47
49
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
48
50
|
});
|
|
49
|
-
]]></script
|
|
51
|
+
]]></script>
|
|
52
|
+
</g>
|
|
53
|
+
<g transform="translate(1216, 200)">
|
|
54
|
+
<style>
|
|
55
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
56
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
57
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
58
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
59
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
60
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
61
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
62
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
63
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
64
|
+
|
|
65
|
+
</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 660.9164076876353 291.82491150098633 L 660.9164076876353 238.61750087118637 L 752.1082508989921 238.61750087118637 L 752.1082508989921 653.6796207680136 L 662.6984834918596 653.6796207680136 L 662.6984834918596 600.4722101382137" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="42.56592850384px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 660.9164076876353 291.82491150098633 L 660.9164076876353 238.61750087118637 L 752.1082508989921 238.61750087118637 L 752.1082508989921 653.6796207680136 L 662.6984834918596 653.6796207680136 L 662.6984834918596 600.4722101382137" stroke="rgb(0, 150, 0)" fill="none" stroke-width="5.32074106298px" 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="566.74536835635" y="398.2397327605863" width="26.603705314900026" height="95.81765611802734" stroke-width="5.32074106298px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="566.74536835635" y="398.2397327605863" width="26.603705314900026" height="95.81765611802734" fill="transparent"/><text class="sch-text" x="580.0472210138" y="446.1485608196" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="47.88666956682px" transform="rotate(0, 580.0472210138, 446.1485608196)">Q1</text><line class="component-pin sch-component-pin sch-port-line" x1="660.9164076876353" y1="398.2397327605863" x2="660.9164076876353" y2="291.82491150098633" stroke-width="5.32074106298px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="655.5956666246553" y="286.5041704380063" width="10.64148212596" height="10.64148212596" opacity="0"/></g><text class="pin-number sch-pin-number" x="655.5956666246553" y="345.0323221307864" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="39.905557972349996px" transform="rotate(-90 655.5956666246553 345.0323221307864)">1</text><line class="component-pin sch-component-pin sch-port-line" x1="662.6984834918596" y1="494.05738887861366" x2="662.6984834918596" y2="600.4722101382137" stroke-width="5.32074106298px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="657.3777424288796" y="595.1514690752336" width="10.64148212596" height="10.64148212596" opacity="0"/></g><text class="pin-number sch-pin-number" x="657.3777424288796" y="547.2647995084136" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="39.905557972349996px" transform="rotate(-90 657.3777424288796 547.2647995084136)">2</text><line class="component-pin sch-component-pin sch-port-line" x1="566.74536835635" y1="473.41902149895475" x2="466.51434282138797" y2="473.41902149895475" stroke-width="5.32074106298px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="461.19360175840797" cy="473.41902149895475" r="5.32074106298" stroke-width="5.32074106298px"/><rect x="455.87286069542796" y="468.09828043597474" width="10.64148212596" height="10.64148212596" opacity="0"/></g><text class="pin-number sch-pin-number" x="513.969485057379" y="468.09828043597474" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="39.905557972349996px" transform="">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="660.9164076876353" cy="291.82491150098633" r="10.64148212596" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="662.6984834918596" cy="600.4722101382137" r="10.64148212596" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="461.19360175840797" cy="473.41902149895475" r="10.64148212596" 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="
|
|
66
|
+
M 660.9164076876353,238.61750087118637
|
|
67
|
+
L 634.3127023727353,224.25150000114036
|
|
68
|
+
L 634.3127023727353,133.01852657457664
|
|
69
|
+
L 687.5201130025354,133.01852657457664
|
|
70
|
+
L 687.5201130025354,224.25150000114036
|
|
71
|
+
Z
|
|
72
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="5.32074106298px"/><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="660.9164076876353" y="214.67416608777637" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="47.88666956682px" transform="rotate(-90 660.9164076876353 214.67416608777637)">XX</text>
|
|
73
|
+
</g>
|
|
74
|
+
</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.52012455,0.9994877000000013 -0.9,0.7999999999999999" data-type="line" data-label="" points="504.16055269230765,223.1320938461537 135.8394473076923,244.61538461538464" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="2.5201245500000002,0.9994877000000013 2.7201245500000004,0.9994877000000013 2.7201245500000004,2.7 -1.1,2.7 -1.1,0.7999999999999999 -0.9,0.7999999999999999" data-type="line" data-label="" points="504.1605526923077,223.1320938461537 525.6990142307693,223.1320938461537 525.6990142307693,40 114.30098576923073,40 114.30098576923073,244.61538461538464 135.8394473076923,244.61538461538464" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="135.8394473076923" y="61.53846153846155" width="193.8461538461538" height="538.4615384615385" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009285714285714286"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2" data-y="1" x="392.1337265384616" y="193.58589076923084" width="112.02682615384612" height="58.98206461538453" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009285714285714286"/></g><g><rect data-type="rect" data-label="netId: .LED1 > port.right to .U1 > .pin20
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="2.6201245500000003" data-y="0.7744877000000013" x="504.16055269230765" y="223.13209384615368" width="21.538461538461604" height="48.46153846153848" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009285714285714286"/></g><g><circle data-type="point" data-label="U1.1
|
|
3
5
|
x+" data-x="0.9" data-y="1.2" cx="329.6856011538461" cy="201.53846153846155" r="3" fill="hsl(319, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.2
|
|
4
6
|
x+" data-x="0.9" data-y="0.3999999999999999" cx="329.6856011538461" cy="287.69230769230774" r="3" fill="hsl(320, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.3
|
|
@@ -38,7 +40,7 @@ orientation: y-" data-x="2.6201245500000003" data-y="0.9994877000000013" cx="514
|
|
|
38
40
|
const h = svg.getElementById('crosshair-h');
|
|
39
41
|
const v = svg.getElementById('crosshair-v');
|
|
40
42
|
const coords = svg.getElementById('coordinates');
|
|
41
|
-
|
|
43
|
+
|
|
42
44
|
crosshair.style.display = 'block';
|
|
43
45
|
h.setAttribute('x1', '0');
|
|
44
46
|
h.setAttribute('x2', '640');
|
|
@@ -57,13 +59,13 @@ orientation: y-" data-x="2.6201245500000003" data-y="0.9994877000000013" cx="514
|
|
|
57
59
|
// y' = (y - ty) / sy
|
|
58
60
|
const sx = matrix.a;
|
|
59
61
|
const sy = matrix.d;
|
|
60
|
-
const tx = matrix.e;
|
|
62
|
+
const tx = matrix.e;
|
|
61
63
|
const ty = matrix.f;
|
|
62
64
|
const realPoint = {
|
|
63
65
|
x: (x - tx) / sx,
|
|
64
66
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
65
67
|
}
|
|
66
|
-
|
|
68
|
+
|
|
67
69
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
68
70
|
coords.setAttribute('x', (x + 5).toString());
|
|
69
71
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -71,4 +73,27 @@ orientation: y-" data-x="2.6201245500000003" data-y="0.9994877000000013" cx="514
|
|
|
71
73
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
72
74
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
73
75
|
});
|
|
74
|
-
]]></script
|
|
76
|
+
]]></script>
|
|
77
|
+
</g>
|
|
78
|
+
<g transform="translate(1216, 200)">
|
|
79
|
+
<style>
|
|
80
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
81
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
82
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
83
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
84
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
85
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
86
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
87
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
88
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
89
|
+
|
|
90
|
+
</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 818.8879712 288.06557439999983 L 844.4879712000001 288.06557439999983 L 844.4879712000001 70.39999999999998 L 355.5120288 70.39999999999998 L 355.5120288 313.6 L 381.1120288 313.6" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="20.48px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 818.8879712 288.06557439999983 L 844.4879712000001 288.06557439999983 L 844.4879712000001 70.39999999999998 L 355.5120288 70.39999999999998 L 355.5120288 313.6 L 381.1120288 313.6" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.56px" 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="432.3120288" y="96" width="128" height="640" stroke-width="2.56px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="432.3120288" y="96" width="128" height="640" fill="transparent"/><text class="sch-text" x="496.3120288" y="416" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.04px" transform="rotate(0, 496.3120288, 416)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="262.4" x2="608.9520288" y2="262.4" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="262.4" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="259.84" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="259.84000000000003" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="364.8" x2="608.9520288" y2="364.8" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="364.8" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="362.24" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="362.24" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="339.20000000000005" x2="608.9520288" y2="339.20000000000005" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="339.20000000000005" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="336.64000000000004" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="336.64" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="364.8" x2="383.6720288" y2="364.8" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="364.8" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="362.24" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="362.24" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="288" x2="608.9520288" y2="288" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="288" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="285.44" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="285.44000000000005" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="441.6" x2="608.9520288" y2="441.6" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="441.6" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="439.04" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="439.04" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="518.4" x2="383.6720288" y2="518.4" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="518.4" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="515.84" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="515.8399999999999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="390.4" x2="608.9520288" y2="390.4" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="390.4" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="387.84" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="387.84000000000003" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">9</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="416" x2="608.9520288" y2="416" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_8__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="416" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="413.44" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="413.44" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">10</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="313.6" x2="608.9520288" y2="313.6" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_9__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="313.6" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="311.04" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="311.04" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">11</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="569.6" x2="608.9520288" y2="569.6" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_10__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="569.6" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="567.0400000000001" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="567.04" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">12</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="544" x2="608.9520288" y2="544" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_11__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="544" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="541.44" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="541.44" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">13</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="518.4" x2="608.9520288" y2="518.4" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_12__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="518.4" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="515.84" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="515.84" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">14</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="288" x2="383.6720288" y2="288" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_13__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="288" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="285.44" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="285.44" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">15</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="262.4" x2="383.6720288" y2="262.4" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_14__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="262.4" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="259.84" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="259.84000000000003" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">16</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="339.20000000000005" x2="383.6720288" y2="339.20000000000005" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_15__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="339.20000000000005" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="336.64000000000004" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="336.64" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">17</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="544" x2="383.6720288" y2="544" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_16__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="544" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="541.44" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="541.4399999999999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">18</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="441.6" x2="383.6720288" y2="441.6" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_17__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="441.6" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="439.04" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="439.04" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">19</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="313.6" x2="381.1120288" y2="313.6" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_18__stack1"><rect x="378.5520288" y="311.04" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="311.04" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">20</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="569.6" x2="383.6720288" y2="569.6" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_19__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="569.6" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="567.0400000000001" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="567.04" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">21</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="492.79999999999995" x2="608.9520288" y2="492.79999999999995" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_20__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="492.79999999999995" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="490.23999999999995" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="490.24" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">22</text><line class="component-pin sch-component-pin sch-port-line" x1="560.3120288" y1="467.2" x2="608.9520288" y2="467.2" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_21__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="611.5120288" cy="467.2" r="2.56" stroke-width="2.56px"/><rect x="608.9520288000001" y="464.64" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="585.9120288" y="464.64" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">23</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="492.79999999999995" x2="383.6720288" y2="492.79999999999995" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_22__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="492.79999999999995" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="490.23999999999995" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="490.24" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">25</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="467.2" x2="383.6720288" y2="467.2" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_23__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="467.2" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="464.64" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="464.64" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">26</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="390.4" x2="383.6720288" y2="390.4" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_24__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="390.4" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="387.84" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="387.84000000000003" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">27</text><line class="component-pin sch-component-pin sch-port-line" x1="432.3120288" y1="416" x2="383.6720288" y2="416" stroke-width="2.56px"/><g class="sch-port" data-schematic-port-id="source_port_0_25__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="381.1120288" cy="416" r="2.56" stroke-width="2.56px"/><rect x="378.5520288" y="413.44" width="5.12" height="5.12" opacity="0"/></g><text class="pin-number sch-pin-number" x="406.7120288" y="413.44" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.2px" transform="">28</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="685.7360864000001" y="248.48199615173093" width="133.15194938790864" height="56.712867331887026" fill="transparent"/><path class="sch-component-symbol-path" d="M 769.5724989775722 287.93442560000017 L 736.284511630595 305.19486348361795" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 768.3396105573138 287.93442560000017 L 818.8880357879087 287.93442560000017" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 736.284511630595 271.9068761366408 L 769.5724989775722 287.93442560000017" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 736.284511630595 305.19486348361795 L 736.284511630595 271.9068761366408" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 769.5724989775722 271.9068761366408 L 769.5724989775722 305.19486348361795" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 736.284511630595 287.93442560000017 L 685.7360864000001 287.93442560000017" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 772.038275818089 252.18066141250617 L 783.1342716004148 250.94777299224776 L 779.4356063396395 262.0437687745735" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 762.1751684560218 266.9753224556071 L 763.4080568762802 266.9753224556071 L 778.2027179193811 254.646438253023 L 778.2027179193811 254.646438253023" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 749.8462842534376 249.71488457198933 L 762.1751684560218 248.48199615173093 L 757.243614774988 259.5779919340566" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 739.9831768913702 264.5095456150903 L 741.2160653116287 263.2766571948319 L 757.243614774988 252.18066141250617 L 757.243614774988 252.18066141250617" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.56px" stroke-linecap="round"/><text class="sch-component-text" x="752.3120610939544" y="313.82508242542684" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="23.04px"></text><text class="sch-component-name sch-component-text" x="752.3120610939544" y="237.38600036940522" stroke="rgb(245, 241, 237)" stroke-width="2.56px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="23.04px">LED1</text><circle class="component-pin sch-component-pin" cx="685.7360864000001" cy="287.93442560000017" r="2.56px" stroke-width="2.56px" 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="611.5120288" cy="262.4" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="611.5120288" cy="364.8" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="611.5120288" cy="339.20000000000005" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="381.1120288" cy="364.8" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="611.5120288" cy="288" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="611.5120288" cy="441.6" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="381.1120288" cy="518.4" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="611.5120288" cy="390.4" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_8__stack1"><circle cx="611.5120288" cy="416" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_9__stack1"><circle cx="611.5120288" cy="313.6" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_10__stack1"><circle cx="611.5120288" cy="569.6" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_11__stack1"><circle cx="611.5120288" cy="544" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_12__stack1"><circle cx="611.5120288" cy="518.4" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_13__stack1"><circle cx="381.1120288" cy="288" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_14__stack1"><circle cx="381.1120288" cy="262.4" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_15__stack1"><circle cx="381.1120288" cy="339.20000000000005" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_16__stack1"><circle cx="381.1120288" cy="544" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_17__stack1"><circle cx="381.1120288" cy="441.6" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_18__stack1"><circle cx="381.1120288" cy="313.6" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_19__stack1"><circle cx="381.1120288" cy="569.6" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_20__stack1"><circle cx="611.5120288" cy="492.79999999999995" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_21__stack1"><circle cx="611.5120288" cy="467.2" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_22__stack1"><circle cx="381.1120288" cy="492.79999999999995" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_23__stack1"><circle cx="381.1120288" cy="467.2" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_24__stack1"><circle cx="381.1120288" cy="390.4" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_25__stack1"><circle cx="381.1120288" cy="416" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="683.1920610939544" cy="287.93442560000017" r="5.12" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="816.3439458939542" cy="288.06557439999983" r="5.12" 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="
|
|
91
|
+
M 831.6879712,288.06557439999983
|
|
92
|
+
L 844.4879712,294.9775743999998
|
|
93
|
+
L 844.4879712,338.8730410666665
|
|
94
|
+
L 818.8879712,338.8730410666665
|
|
95
|
+
L 818.8879712,294.9775743999998
|
|
96
|
+
Z
|
|
97
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.56px"/><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="831.6879712" y="299.5855743999998" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.04px" transform="rotate(90 831.6879712 299.5855743999998)">XX</text>
|
|
98
|
+
</g>
|
|
99
|
+
</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="-3.5512907000000005,0.0002732499999993365 2.4487906999999995,-0.00027334999999961695" data-type="line" data-label="" points="62.695035460992926,318.8552397163121 516.6019026004727,318.89659007092195" fill="none" stroke="hsl(72, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-3.5512907000000005,0.0002732499999993365 -3.7512907000000006,0.0002732499999993365 -3.7512907000000006,0.20027324999999935 2.2487906999999994,0.20027324999999935 2.2487906999999994,-0.00027334999999961695 2.4487906999999987,-0.00027334999999961695" data-type="line" data-label="" points="62.695035460992926,318.8552397163121 47.565011820330994,318.8552397163121 47.565011820330994,303.72521607565017 501.4718789598108,303.72521607565017 501.4718789598108,318.89659007092195 516.6019026004726,318.89659007092195" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="0" x="62.69503546099291" y="304.1653408983452" width="83.41041323877076" height="29.421140425531803" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013218750000000003"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="3" data-y="0" x="516.6019026004728" y="287.10220709219846" width="83.39809739952727" height="63.547408037825335" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013218750000000003"/></g><g><rect data-type="rect" data-label="netId: .R1 > .pin1 to .C1 > .pin1
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="-3.7512907000000006" data-y="-0.22472675000000067" x="40" y="318.8552397163121" width="15.130023640661989" height="34.04255319148939" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013218750000000003"/></g><g><circle data-type="point" data-label="R1.1
|
|
3
5
|
x-" data-x="-3.5512907000000005" data-y="0.0002732499999993365" cx="62.695035460992926" cy="318.8552397163121" r="3" fill="hsl(226, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R1.2
|
|
4
6
|
x+" data-x="-2.4487092999999995" data-y="-0.0002732499999993365" cx="146.10544869976368" cy="318.89658250591015" r="3" fill="hsl(227, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="C1.1
|
|
@@ -14,7 +16,7 @@ orientation: y-" data-x="-3.7512907000000006" data-y="0.0002732499999993365" cx=
|
|
|
14
16
|
const h = svg.getElementById('crosshair-h');
|
|
15
17
|
const v = svg.getElementById('crosshair-v');
|
|
16
18
|
const coords = svg.getElementById('coordinates');
|
|
17
|
-
|
|
19
|
+
|
|
18
20
|
crosshair.style.display = 'block';
|
|
19
21
|
h.setAttribute('x1', '0');
|
|
20
22
|
h.setAttribute('x2', '640');
|
|
@@ -33,13 +35,13 @@ orientation: y-" data-x="-3.7512907000000006" data-y="0.0002732499999993365" cx=
|
|
|
33
35
|
// y' = (y - ty) / sy
|
|
34
36
|
const sx = matrix.a;
|
|
35
37
|
const sy = matrix.d;
|
|
36
|
-
const tx = matrix.e;
|
|
38
|
+
const tx = matrix.e;
|
|
37
39
|
const ty = matrix.f;
|
|
38
40
|
const realPoint = {
|
|
39
41
|
x: (x - tx) / sx,
|
|
40
42
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
41
43
|
}
|
|
42
|
-
|
|
44
|
+
|
|
43
45
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
44
46
|
coords.setAttribute('x', (x + 5).toString());
|
|
45
47
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -47,4 +49,27 @@ orientation: y-" data-x="-3.7512907000000006" data-y="0.0002732499999993365" cx=
|
|
|
47
49
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
48
50
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
49
51
|
});
|
|
50
|
-
]]></script
|
|
52
|
+
]]></script>
|
|
53
|
+
</g>
|
|
54
|
+
<g transform="translate(1216, 200)">
|
|
55
|
+
<style>
|
|
56
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
57
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
58
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
59
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
60
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
61
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
62
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
63
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
64
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
65
|
+
|
|
66
|
+
</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 116.34543525247466 399.9602607622717 L 87.25907643937467 399.9602607622717 L 87.25907643937467 370.8739019491717 L 959.8616789804115 370.8739019491717 L 959.8616789804115 400.03975378090774 L 988.9480377935114 400.03975378090774" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="23.26908705048px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 116.34543525247466 399.9602607622717 L 87.25907643937467 399.9602607622717 L 87.25907643937467 370.8739019491717 L 959.8616789804115 370.8739019491717 L 959.8616789804115 400.03975378090774 L 988.9480377935114 400.03975378090774" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.90863588131px" 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-overlay sch-component-overlay" x="116.34543525247467" y="378.58555100233815" width="160.35041080220208" height="42.74941951986705" fill="transparent"/><path class="sch-component-symbol-path" d="M 116.34543525247467 399.9602607622717 L 143.07584873320175 399.9602607622717" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.90863588131px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 249.96543257394964 399.9602607622717 L 276.69584605467674 399.9602607622717" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.90863588131px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 143.07584873320175 378.58555100233815 L 249.96543257394964 378.58555100233815 L 249.96543257394964 421.3349705222052 L 143.07584873320175 421.3349705222052 L 143.07584873320175 378.58555100233815" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.90863588131px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="196.5206406535757" y="357.2001512150178" stroke="rgb(245, 241, 237)" stroke-width="2.90863588131px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="26.177722931789997px">R1</text><text class="sch-component-text" x="196.5206406535757" y="442.72037030952555" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="26.177722931789997px"></text><circle class="component-pin sch-component-pin" cx="276.69584605467674" cy="399.9602607622717" r="2.90863588131px" stroke-width="2.90863588131px" fill="none" stroke="rgb(132, 0, 0)"/></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="988.94801807923" y="357.2011061216859" width="160.32673452345853" height="85.51828019481275" fill="transparent"/><path class="sch-component-symbol-path" d="M 1149.2747526026885 399.96024621909226 L 1085.144058793305 399.96024621909226" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.90863588131px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1053.0787118886135 399.96024621909226 L 988.94801807923 399.96024621909226" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.90863588131px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1085.144058793305 357.2011061216859 L 1085.144058793305 442.7193863164986" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.90863588131px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1053.0787118886135 357.2011061216859 L 1053.0787118886135 442.7193863164986" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.90863588131px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="1069.1113853409593" y="335.82955240970887" stroke="rgb(245, 241, 237)" stroke-width="2.90863588131px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="26.177722931789997px">C1</text><text class="sch-component-text" x="1069.1113853409593" y="464.09094002847564" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="26.177722931789997px"></text><circle class="component-pin sch-component-pin" cx="1149.2747526026885" cy="399.96024621909226" r="2.90863588131px" stroke-width="2.90863588131px" 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="152.8911024339257" cy="399.9602607622717" r="5.81727176262" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="313.24149353917653" cy="400.0397392377283" r="5.81727176262" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="952.4142087514323" cy="400.03975378090774" r="5.81727176262" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="1112.7409235606092" cy="399.96024621909226" r="5.81727176262" 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="
|
|
67
|
+
M 87.25907643937467,399.9602607622717
|
|
68
|
+
L 101.80225584592466,407.81357764180865
|
|
69
|
+
L 101.80225584592466,457.6869875533375
|
|
70
|
+
L 72.71589703282467,457.6869875533375
|
|
71
|
+
L 72.71589703282467,407.81357764180865
|
|
72
|
+
Z
|
|
73
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.90863588131px"/><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="87.25907643937467" y="413.04912222816665" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="26.177722931789997px" transform="rotate(90 87.25907643937467 413.04912222816665)">XX</text>
|
|
74
|
+
</g>
|
|
75
|
+
</svg>
|