@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="8.9,15.1 8.9,14.7" data-type="line" data-label="" points="102.04779068215191,148.06033907355481 102.04779068215191,177.9628887998931" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,15.1 11.1,13.3" data-type="line" data-label="" points="102.04779068215191,148.06033907355481 266.5118141770124,282.621812842077" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 11.1,13.3" data-type="line" data-label="" points="102.04779068215191,177.9628887998931 266.5118141770124,282.621812842077" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 8.9,14.5" data-type="line" data-label="" points="102.04779068215191,163.01161393672396 102.04779068215191,192.91416366306225" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 11.1,12.7" data-type="line" data-label="" points="102.04779068215191,163.01161393672396 266.5118141770124,327.4756374315846" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.9 13.16,10" data-type="line" data-label="" points="102.04779068215191,163.01161393672396 420.50994526765464,529.3178480843678" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 11.1,12.7" data-type="line" data-label="" points="102.04779068215191,192.91416366306225 266.5118141770124,327.4756374315846" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.5 13.16,10" data-type="line" data-label="" points="102.04779068215191,192.91416366306225 420.50994526765464,529.3178480843678" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,12.7 13.16,10" data-type="line" data-label="" points="266.5118141770124,327.4756374315846 420.50994526765464,529.3178480843678" fill="none" stroke="hsl(23, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="11.1,15.5 14.84,10" data-type="line" data-label="" points="266.5118141770124,118.15778934721652 546.1006541182754,529.3178480843678" fill="none" stroke="hsl(50, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="8.9,14.7 8.600000000000001,14.7 8.600000000000001,15.1 8.9,15.1" data-type="line" data-label="" points="102.04779068215191,177.9628887998931 79.6208783873983,177.9628887998931 79.6208783873983,148.06033907355481 102.04779068215191,148.06033907355481" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="8.9,14.5 8.8,14.5 8.8,14.9 8.9,14.9" data-type="line" data-label="" points="102.04779068215191,192.91416366306225 94.57215325056734,192.91416366306225 94.57215325056734,163.01161393672396 102.04779068215191,163.01161393672396" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="11.1,12.7 12.129999999999999,12.7 12.129999999999999,10 13.16,10" data-type="line" data-label="" points="266.5118141770124,327.4756374315846 343.51087972233347,327.4756374315846 343.51087972233347,529.3178480843678 420.50994526765464,529.3178480843678" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="8.600000000000001,14.7 8.31,14.7 8.31,14.699" data-type="line" data-label="" points="79.6208783873983,177.9628887998931 57.94152983580295,177.9628887998931 57.94152983580295,178.03764517420882" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="11.1,13.3 12.341,13.3 12.341,13.249" data-type="line" data-label="" points="266.5118141770124,282.621812842077 359.2844747029769,282.621812842077 359.2844747029769,286.43438793218513" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="10" data-y="14" x="102.04779068215197" y="103.20651448404743" width="164.4640234948605" height="254.17167267387538" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01337678571428571"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="14" data-y="10" x="420.50994526765453" y="503.90068081698024" width="125.59070885062079" height="50.83433453477517" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01337678571428571"/></g><g><rect data-type="rect" data-label="ATMEGA328P_AU" data-x="10.080000000000002" data-y="12.17" x="131.9503404084902" y="360.3684421305565" width="116.61994393271948" height="13.4561473768523" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.01337678571428571"/></g><g><rect data-type="rect" data-label="U_MCU" data-x="9.600000000000001" data-y="15.815" x="127.46495794953961" y="85.26498464824442" width="53.82458950740886" height="18.68909357896132" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.01337678571428571"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="8.31" data-y="14.488999999999999" x="40" y="178.03764517420893" width="35.883059671605906" height="31.39767721265548" fill="#00000066" stroke="#000000" stroke-width="0.01337678571428571"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="12.341" data-y="13.039" x="341.34294486717397" y="286.4343879321851" width="35.883059671605906" height="31.397677212655367" fill="#00000066" stroke="#000000" stroke-width="0.01337678571428571"/></g><g><rect data-type="rect" data-label="netId: VCC_3V3
|
|
4
6
|
globalConnNetId: connectivity_net1" data-x="11.614999999999998" data-y="12.91" x="269.1282872780669" y="296.07796021892915" width="71.76611934321193" height="31.397677212655367" fill="#ef444466" stroke="#ef4444" stroke-width="0.01337678571428571"/></g><g><rect data-type="rect" data-label="netId: FAULT
|
|
@@ -52,7 +54,7 @@ orientation: x+" data-x="14.84" data-y="10" cx="546.1006541182754" cy="529.31784
|
|
|
52
54
|
const h = svg.getElementById('crosshair-h');
|
|
53
55
|
const v = svg.getElementById('crosshair-v');
|
|
54
56
|
const coords = svg.getElementById('coordinates');
|
|
55
|
-
|
|
57
|
+
|
|
56
58
|
crosshair.style.display = 'block';
|
|
57
59
|
h.setAttribute('x1', '0');
|
|
58
60
|
h.setAttribute('x2', '640');
|
|
@@ -71,13 +73,13 @@ orientation: x+" data-x="14.84" data-y="10" cx="546.1006541182754" cy="529.31784
|
|
|
71
73
|
// y' = (y - ty) / sy
|
|
72
74
|
const sx = matrix.a;
|
|
73
75
|
const sy = matrix.d;
|
|
74
|
-
const tx = matrix.e;
|
|
76
|
+
const tx = matrix.e;
|
|
75
77
|
const ty = matrix.f;
|
|
76
78
|
const realPoint = {
|
|
77
79
|
x: (x - tx) / sx,
|
|
78
80
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
79
81
|
}
|
|
80
|
-
|
|
82
|
+
|
|
81
83
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
82
84
|
coords.setAttribute('x', (x + 5).toString());
|
|
83
85
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -85,4 +87,55 @@ orientation: x+" data-x="14.84" data-y="10" cx="546.1006541182754" cy="529.31784
|
|
|
85
87
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
86
88
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
87
89
|
});
|
|
88
|
-
]]></script
|
|
90
|
+
]]></script>
|
|
91
|
+
</g>
|
|
92
|
+
<g transform="translate(1216, 200)">
|
|
93
|
+
<style>
|
|
94
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
95
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
96
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
97
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
98
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
99
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
100
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
101
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
102
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
103
|
+
|
|
104
|
+
</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 294.30148619975 177.32484076405012 L 263.7282377921001 177.32484076405012 L 263.7282377921001 136.56050955385012 L 294.30148619975 136.56050955385012" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.30573248408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 294.30148619975 177.32484076405012 L 263.7282377921001 177.32484076405012 L 263.7282377921001 136.56050955385012 L 294.30148619975 136.56050955385012" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.03821656051px" 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 294.30148619975 197.70700636915012 L 284.1104033972001 197.70700636915012 L 284.1104033972001 156.94267515895012 L 294.30148619975 156.94267515895012" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.30573248408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 294.30148619975 197.70700636915012 L 284.1104033972001 197.70700636915012 L 284.1104033972001 156.94267515895012 L 294.30148619975 156.94267515895012" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.03821656051px" 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 518.50530785585 381.1464968150501 L 623.473460722115 381.1464968150501 L 623.473460722115 656.3057324839001 L 728.4416135883799 656.3057324839001" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.30573248408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 518.50530785585 381.1464968150501 L 623.473460722115 381.1464968150501 L 623.473460722115 656.3057324839001 L 728.4416135883799 656.3057324839001" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.03821656051px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 263.7282377921001 177.32484076405012 L 234.17409766470507 177.32484076405012 L 234.17409766470507 177.42675159207556" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.30573248408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 263.7282377921001 177.32484076405012 L 234.17409766470507 177.32484076405012 L 234.17409766470507 177.42675159207556" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.03821656051px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 518.50530785585 319.9999999997501 L 644.9766454354955 319.9999999997501 L 644.9766454354955 325.19745222905067" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="16.30573248408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 518.50530785585 319.9999999997501 L 644.9766454354955 319.9999999997501 L 644.9766454354955 325.19745222905067" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.03821656051px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><circle cx="263.7282377921001" cy="177.32484076405012" r="3.0573248407649998" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="335.0658174099501" y="75.41401273855013" width="142.67515923569988" height="346.4968152867" stroke-width="2.03821656051px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="335.0658174099501" y="75.41401273855013" width="142.67515923569988" height="346.4968152867" fill="transparent"/><text class="sch-text" x="406.4033970278" y="248.66242038190012" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="18.343949044589998px" transform="rotate(0, 406.4033970278, 248.66242038190012)">U_MCU</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="95.79617834365013" x2="296.33970276026" y2="95.79617834365013" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="95.79617834365013" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="93.75796178314013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="93.75796178314022" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="116.17834394875013" x2="296.33970276026" y2="116.17834394875013" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="116.17834394875013" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="114.14012738824013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="114.14012738823999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="136.56050955385012" x2="294.30148619975" y2="136.56050955385012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="292.26326963924" y="134.52229299334013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="134.52229299334022" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="156.94267515895012" x2="294.30148619975" y2="156.94267515895012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="292.26326963924" y="154.90445859844013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="154.90445859844021" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="177.32484076405012" x2="294.30148619975" y2="177.32484076405012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="292.26326963924" y="175.28662420354013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="175.2866242035402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="197.70700636915012" x2="294.30148619975" y2="197.70700636915012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><rect x="292.26326963924" y="195.66878980864013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="195.6687898086402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="218.08917197425012" x2="296.33970276026" y2="218.08917197425012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="218.08917197425012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="216.05095541374013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="216.05095541373998" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="238.47133757935012" x2="296.33970276026" y2="238.47133757935012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="238.47133757935012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="236.43312101884013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="236.4331210188402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">8</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="258.8535031844501" x2="296.33970276026" y2="258.8535031844501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_8__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="258.8535031844501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="256.8152866239401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="256.8152866239402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">9</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="279.2356687895501" x2="296.33970276026" y2="279.2356687895501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_9__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="279.2356687895501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="277.1974522290401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="277.19745222904" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">10</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="299.6178343946501" x2="296.33970276026" y2="299.6178343946501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_10__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="299.6178343946501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="297.5796178341401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="297.5796178341402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">11</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="319.9999999997501" x2="296.33970276026" y2="319.9999999997501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_11__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="319.9999999997501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="317.9617834392401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="317.96178343924" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">12</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="340.3821656048501" x2="296.33970276026" y2="340.3821656048501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_12__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="340.3821656048501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="338.3439490443401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="338.3439490443402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">13</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="360.7643312099501" x2="296.33970276026" y2="360.7643312099501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_13__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="360.7643312099501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="358.7261146494401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="358.7261146494402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">14</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="381.1464968150501" x2="296.33970276026" y2="381.1464968150501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_14__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="381.1464968150501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="379.1082802545401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="379.1082802545402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">15</text><line class="component-pin sch-component-pin sch-port-line" x1="335.0658174099501" y1="401.5286624201501" x2="296.33970276026" y2="401.5286624201501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_15__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="294.30148619975" cy="401.5286624201501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="292.26326963924" y="399.4904458596401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="314.68365180485" y="399.4904458596402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">16</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="401.5286624201501" x2="516.4670912953401" y2="401.5286624201501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_16__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="401.5286624201501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="399.4904458596401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="399.4904458596402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">17</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="381.1464968150501" x2="518.50530785585" y2="381.1464968150501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_17__stack1"><rect x="516.46709129534" y="379.1082802545401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="379.1082802545402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">18</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="360.7643312099501" x2="516.4670912953401" y2="360.7643312099501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_18__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="360.7643312099501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="358.7261146494401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="358.7261146494402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">19</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="340.3821656048501" x2="516.4670912953401" y2="340.3821656048501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_19__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="340.3821656048501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="338.3439490443401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="338.3439490443402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">20</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="319.9999999997501" x2="518.50530785585" y2="319.9999999997501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_20__stack1"><rect x="516.46709129534" y="317.9617834392401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="317.96178343924" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">21</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="299.6178343946501" x2="516.4670912953401" y2="299.6178343946501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_21__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="299.6178343946501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="297.5796178341401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="297.5796178341402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">22</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="279.2356687895501" x2="516.4670912953401" y2="279.2356687895501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_22__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="279.2356687895501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="277.1974522290401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="277.1974522290402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">23</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="258.8535031844501" x2="516.4670912953401" y2="258.8535031844501" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_23__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="258.8535031844501" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="256.8152866239401" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="256.8152866239402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">24</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="238.47133757935012" x2="516.4670912953401" y2="238.47133757935012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_24__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="238.47133757935012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="236.43312101884013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="236.4331210188402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">25</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="218.08917197425012" x2="516.4670912953401" y2="218.08917197425012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_25__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="218.08917197425012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="216.05095541374013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="216.0509554137402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">26</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="197.70700636915012" x2="516.4670912953401" y2="197.70700636915012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_26__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="197.70700636915012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="195.66878980864013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="195.6687898086402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">27</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="177.32484076405012" x2="516.4670912953401" y2="177.32484076405012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_27__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="177.32484076405012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="175.28662420354013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="175.2866242035402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">28</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="156.94267515895012" x2="516.4670912953401" y2="156.94267515895012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_28__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="156.94267515895012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="154.90445859844013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="154.90445859844021" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">29</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="136.56050955385012" x2="516.4670912953401" y2="136.56050955385012" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_29__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="136.56050955385012" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="134.52229299334013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="134.52229299334022" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">30</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="116.17834394875013" x2="516.4670912953401" y2="116.17834394875013" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_30__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="116.17834394875013" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="114.14012738824013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="114.14012738823999" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">31</text><line class="component-pin sch-component-pin sch-port-line" x1="477.74097664565" y1="95.79617834365013" x2="516.4670912953401" y2="95.79617834365013" stroke-width="2.03821656051px"/><g class="sch-port" data-schematic-port-id="source_port_0_31__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="518.50530785585" cy="95.79617834365013" r="2.03821656051" stroke-width="2.03821656051px"/><rect x="516.46709129534" y="93.75796178314013" width="4.07643312102" height="4.07643312102" opacity="0"/></g><text class="pin-number sch-pin-number" x="498.12314225075" y="93.75796178314022" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="15.286624203825px" transform="">32</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="728.4416135883799" y="633.4834140125575" width="171.21019108284008" height="45.64463694268511" fill="transparent"/><path class="sch-component-symbol-path" d="M 728.4416135883799 656.3057324839001 L 756.9823524418894 656.3057324839001" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.03821656051px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 871.1110658177106 656.3057324839001 L 899.65180467122 656.3057324839001" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.03821656051px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 756.9823524418894 633.4834140125575 L 871.1110658177106 633.4834140125575 L 871.1110658177106 679.1280509552427 L 756.9823524418894 679.1280509552427 L 756.9823524418894 633.4834140125575" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.03821656051px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="814.0467091298" y="610.6496815284761" stroke="rgb(245, 241, 237)" stroke-width="2.03821656051px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="18.343949044589998px">R_FAULT_PULLUP</text><text class="sch-component-text" x="814.0467091298" y="701.9617834393241" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="18.343949044589998px"></text><circle class="component-pin sch-component-pin" cx="899.65180467122" cy="656.3057324839001" r="2.03821656051px" stroke-width="2.03821656051px" 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="294.30148619975" cy="95.79617834365013" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="294.30148619975" cy="116.17834394875013" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="294.30148619975" cy="136.56050955385012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="294.30148619975" cy="156.94267515895012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="294.30148619975" cy="177.32484076405012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="294.30148619975" cy="197.70700636915012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="294.30148619975" cy="218.08917197425012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="294.30148619975" cy="238.47133757935012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_8__stack1"><circle cx="294.30148619975" cy="258.8535031844501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_9__stack1"><circle cx="294.30148619975" cy="279.2356687895501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_10__stack1"><circle cx="294.30148619975" cy="299.6178343946501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_11__stack1"><circle cx="294.30148619975" cy="319.9999999997501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_12__stack1"><circle cx="294.30148619975" cy="340.3821656048501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_13__stack1"><circle cx="294.30148619975" cy="360.7643312099501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_14__stack1"><circle cx="294.30148619975" cy="381.1464968150501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_15__stack1"><circle cx="294.30148619975" cy="401.5286624201501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_16__stack1"><circle cx="518.50530785585" cy="401.5286624201501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_17__stack1"><circle cx="518.50530785585" cy="381.1464968150501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_18__stack1"><circle cx="518.50530785585" cy="360.7643312099501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_19__stack1"><circle cx="518.50530785585" cy="340.3821656048501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_20__stack1"><circle cx="518.50530785585" cy="319.9999999997501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_21__stack1"><circle cx="518.50530785585" cy="299.6178343946501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_22__stack1"><circle cx="518.50530785585" cy="279.2356687895501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_23__stack1"><circle cx="518.50530785585" cy="258.8535031844501" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_24__stack1"><circle cx="518.50530785585" cy="238.47133757935012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_25__stack1"><circle cx="518.50530785585" cy="218.08917197425012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_26__stack1"><circle cx="518.50530785585" cy="197.70700636915012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_27__stack1"><circle cx="518.50530785585" cy="177.32484076405012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_28__stack1"><circle cx="518.50530785585" cy="156.94267515895012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_29__stack1"><circle cx="518.50530785585" cy="136.56050955385012" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_30__stack1"><circle cx="518.50530785585" cy="116.17834394875013" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_31__stack1"><circle cx="518.50530785585" cy="95.79617834365013" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="783.47346072215" cy="656.3057324839001" r="4.07643312102" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="954.6836518049898" cy="656.3057324839001" r="4.07643312102" 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="
|
|
105
|
+
M 234.17409766470507,177.42675159207556
|
|
106
|
+
L 244.36518046725507,182.92993630545257
|
|
107
|
+
L 244.36518046725507,217.87855626299736
|
|
108
|
+
L 223.98301486215507,217.87855626299736
|
|
109
|
+
L 223.98301486215507,182.92993630545257
|
|
110
|
+
Z
|
|
111
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.03821656051px"/><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="234.17409766470507" y="186.59872611437055" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="18.343949044589998px" transform="rotate(90 234.17409766470507 186.59872611437055)">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="
|
|
112
|
+
M 644.9766454354955,325.19745222905067
|
|
113
|
+
L 655.1677282380455,330.70063694242765
|
|
114
|
+
L 655.1677282380455,365.64925689997244
|
|
115
|
+
L 634.7855626329455,365.64925689997244
|
|
116
|
+
L 634.7855626329455,330.70063694242765
|
|
117
|
+
Z
|
|
118
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.03821656051px"/><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="644.9766454354955" y="334.36942675134566" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="18.343949044589998px" transform="rotate(90 644.9766454354955 334.36942675134566)">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="
|
|
119
|
+
M 570.9893842889823,381.1464968150501
|
|
120
|
+
L 560.7983014864323,375.64331210167313
|
|
121
|
+
L 560.7983014864323,340.69469214412834
|
|
122
|
+
L 581.1804670915323,340.69469214412834
|
|
123
|
+
L 581.1804670915323,375.64331210167313
|
|
124
|
+
Z
|
|
125
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.03821656051px"/><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="570.9893842889823" y="371.9745222927551" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="18.343949044589998px" transform="rotate(-90 570.9893842889823 371.9745222927551)">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="
|
|
126
|
+
M 518.50530785585,95.79617834365013
|
|
127
|
+
L 524.008492569227,85.60509554110013
|
|
128
|
+
L 594.870488322958,85.60509554110013
|
|
129
|
+
L 594.870488322958,105.98726114620013
|
|
130
|
+
L 524.008492569227,105.98726114620013
|
|
131
|
+
Z
|
|
132
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.03821656051px"/><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="527.677282378145" y="95.79617834365013" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="18.343949044589998px" transform="">XXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
|
|
133
|
+
M 899.65180467122,656.3057324839001
|
|
134
|
+
L 905.154989384597,646.1146496813501
|
|
135
|
+
L 976.016985138328,646.1146496813501
|
|
136
|
+
L 976.016985138328,666.4968152864501
|
|
137
|
+
L 905.154989384597,666.4968152864501
|
|
138
|
+
Z
|
|
139
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.03821656051px"/><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="908.8237791935151" y="656.3057324839001" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="18.343949044589998px" transform="">XXXXX</text><text class="sch-text" x="414.5562632698401" y="435.1592356685651" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="18.34394904458997px" transform="rotate(0, 414.5562632698401, 435.1592356685651)">ATMEGA328P_AU</text><text class="sch-text" x="365.6390658176001" y="63.69426751561764" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="18.343949044589998px" transform="rotate(0, 365.6390658176001, 63.69426751561764)">U_MCU</text><rect class="schematic-box sch-box" x="335.0658174099501" y="425.98726114627016" width="158.98089171978006" height="18.343949044589863" stroke-width="2.03821656051px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="16.30573248408 8.15286624204"/><rect class="schematic-box sch-box" x="328.95116772842016" y="50.95541401243008" width="73.37579617836013" height="25.477707006375113" stroke-width="2.03821656051px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="16.30573248408 8.15286624204"/>
|
|
140
|
+
</g>
|
|
141
|
+
</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="1.7999999999999998,-0.32499999999999996 2.25,-0.9" data-type="line" data-label="" points="445.37313432835816,320.9286898839137 487.16417910447757,374.3283582089552" fill="none" stroke="hsl(112, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.7999999999999998,-0.975 2.25,-2.6500000000000004" data-type="line" data-label="" points="445.37313432835816,381.2935323383084 487.16417910447757,536.849087893864" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.7999999999999998,-0.32499999999999996 1.9902723250000003,-0.32499999999999996 1.9902723250000003,-1.1 2.25,-1.1 2.25,-0.9" data-type="line" data-label="" points="445.37313432835816,320.9286898839137 463.0435326699834,320.9286898839137 463.0435326699834,392.9021558872305 487.16417910447757,392.9021558872305 487.16417910447757,374.3283582089552" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.7999999999999998,-0.975 1.9249999999999998,-0.975 1.9249999999999998,-2.8500000000000005 2.25,-2.8500000000000005 2.25,-2.6500000000000004" data-type="line" data-label="" points="445.37313432835816,381.2935323383084 456.9817578772802,381.2935323383084 456.9817578772802,555.4228855721392 487.16417910447757,555.4228855721392 487.16417910447757,536.849087893864" 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="111.04477611940302" y="40" width="334.32835820895514" height="501.49253731343276" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010767857142857145"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="2.25" data-y="-0.35" x="472.33043150912107" y="272.1724709784411" width="29.667495190712998" height="102.15588723051411" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010767857142857145"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="2.25" data-y="-2.1" x="472.33043150912107" y="434.6932006633499" width="29.667495190712998" height="102.15588723051405" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010767857142857145"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
2
4
|
globalConnNetId: connectivity_net1" data-x="2.25" data-y="-3.0900000000000007" x="477.8772802653399" y="555.4228855721393" width="18.573797678275355" height="44.577114427860806" fill="#00000066" stroke="#000000" stroke-width="0.010767857142857145"/></g><g><rect data-type="rect" data-label="netId: U1.FB to R1.pin2
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="2.475" data-y="-1.1" x="487.1641791044775" y="383.6152570480929" width="41.79104477611946" height="18.573797678275298" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010767857142857145"/></g><g><circle data-type="point" data-label="U1.3
|
|
4
6
|
x+" data-x="1.7999999999999998" data-y="-0.975" cx="445.37313432835816" cy="381.2935323383084" r="3" fill="hsl(321, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.4
|
|
@@ -16,7 +18,7 @@ orientation: x+" data-x="2.25" data-y="-1.1" cx="487.16417910447757" cy="392.902
|
|
|
16
18
|
const h = svg.getElementById('crosshair-h');
|
|
17
19
|
const v = svg.getElementById('crosshair-v');
|
|
18
20
|
const coords = svg.getElementById('coordinates');
|
|
19
|
-
|
|
21
|
+
|
|
20
22
|
crosshair.style.display = 'block';
|
|
21
23
|
h.setAttribute('x1', '0');
|
|
22
24
|
h.setAttribute('x2', '640');
|
|
@@ -35,13 +37,13 @@ orientation: x+" data-x="2.25" data-y="-1.1" cx="487.16417910447757" cy="392.902
|
|
|
35
37
|
// y' = (y - ty) / sy
|
|
36
38
|
const sx = matrix.a;
|
|
37
39
|
const sy = matrix.d;
|
|
38
|
-
const tx = matrix.e;
|
|
40
|
+
const tx = matrix.e;
|
|
39
41
|
const ty = matrix.f;
|
|
40
42
|
const realPoint = {
|
|
41
43
|
x: (x - tx) / sx,
|
|
42
44
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
43
45
|
}
|
|
44
|
-
|
|
46
|
+
|
|
45
47
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
46
48
|
coords.setAttribute('x', (x + 5).toString());
|
|
47
49
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -49,4 +51,34 @@ orientation: x+" data-x="2.25" data-y="-1.1" cx="487.16417910447757" cy="392.902
|
|
|
49
51
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
50
52
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
51
53
|
});
|
|
52
|
-
]]></script
|
|
54
|
+
]]></script>
|
|
55
|
+
</g>
|
|
56
|
+
<g transform="translate(1216, 200)">
|
|
57
|
+
<style>
|
|
58
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
59
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
60
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
61
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
62
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
63
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
64
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
65
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
66
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
67
|
+
|
|
68
|
+
</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 733.2351886454 399.1846441311375 L 754.7823632108267 399.1846441311375 L 754.7823632108267 486.94864390465 L 784.194930449375 486.94864390465 L 784.194930449375 464.29986976955" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.119019308080002px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 733.2351886454 399.1846441311375 L 754.7823632108267 399.1846441311375 L 754.7823632108267 486.94864390465 L 784.194930449375 486.94864390465 L 784.194930449375 464.29986976955" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.2648774135100003px" 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 733.2351886454 472.7931600702125 L 747.3906724798375 472.7931600702125 L 747.3906724798375 685.125417586775 L 784.194930449375 685.125417586775 L 784.194930449375 662.476643451675" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.119019308080002px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 733.2351886454 472.7931600702125 L 747.3906724798375 472.7931600702125 L 747.3906724798375 685.125417586775 L 784.194930449375 685.125417586775 L 784.194930449375 662.476643451675" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.2648774135100003px" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="370.8548024838" y="56.62193533774996" width="317.0828378914" height="611.5169016477" stroke-width="2.2648774135100003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="370.8548024838" y="56.62193533774996" width="317.0828378914" height="611.5169016477" fill="transparent"/><text class="sch-text" x="529.3962214295" y="362.3803861616" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="20.383896721590002px" transform="rotate(0, 529.3962214295, 362.3803861616)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="687.9376403752" y1="472.7931600702125" x2="733.2351886454" y2="472.7931600702125" stroke-width="2.2648774135100003px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="730.9703112318899" y="470.52828265670246" width="4.5297548270200005" height="4.5297548270200005" opacity="0"/></g><text class="pin-number sch-pin-number" x="710.5864145103" y="470.52828265670246" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.986580601325px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="687.9376403752" y1="399.1846441311375" x2="733.2351886454" y2="399.1846441311375" stroke-width="2.2648774135100003px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="730.9703112318899" y="396.91976671762745" width="4.5297548270200005" height="4.5297548270200005" opacity="0"/></g><text class="pin-number sch-pin-number" x="710.5864145103" y="396.91976671762745" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.986580601325px" 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="766.1067502783767" y="385.02916029669996" width="36.17636034199654" height="33.97316120265003" stroke-width="2.2648774135100003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="766.1067502783767" y="385.02916029669996" width="36.17636034199654" height="33.97316120265003" fill="transparent"/><text class="sch-text" x="784.194930449375" y="402.015740898025" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="20.383896721590002px" transform="rotate(0, 784.194930449375, 402.015740898025)">R1</text><line class="component-pin sch-component-pin sch-port-line" x1="784.194930449375" y1="419.00232149935" x2="784.194930449375" y2="464.29986976955" stroke-width="2.2648774135100003px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="781.930053035865" y="462.03499235604" width="4.5297548270200005" height="4.5297548270200005" opacity="0"/></g><text class="pin-number sch-pin-number" x="781.930053035865" y="441.65109563445" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.986580601325px" transform="rotate(-90 781.930053035865 441.65109563445)">2</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="766.1067502783767" y="583.205933978825" width="36.17636034199654" height="33.973161202649976" stroke-width="2.2648774135100003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="766.1067502783767" y="583.205933978825" width="36.17636034199654" height="33.973161202649976" fill="transparent"/><text class="sch-text" x="784.194930449375" y="600.19251458015" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="20.383896721590002px" transform="rotate(0, 784.194930449375, 600.19251458015)">R2</text><line class="component-pin sch-component-pin sch-port-line" x1="784.194930449375" y1="617.1790951814751" x2="784.194930449375" y2="662.476643451675" stroke-width="2.2648774135100003px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><rect x="781.930053035865" y="660.211766038165" width="4.5297548270200005" height="4.5297548270200005" opacity="0"/></g><text class="pin-number sch-pin-number" x="781.930053035865" y="639.8278693165751" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.986580601325px" transform="rotate(-90 781.930053035865 639.8278693165751)">2</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="733.2351886454" cy="472.7931600702125" r="4.5297548270200005" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="733.2351886454" cy="399.1846441311375" r="4.5297548270200005" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="784.194930449375" cy="464.29986976955" r="4.5297548270200005" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="784.194930449375" cy="662.476643451675" r="4.5297548270200005" 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="
|
|
69
|
+
M 784.194930449375,685.125417586775
|
|
70
|
+
L 795.519317516925,691.240586603252
|
|
71
|
+
L 795.519317516925,743.3780646622522
|
|
72
|
+
L 772.870543381825,743.3780646622522
|
|
73
|
+
L 772.870543381825,691.240586603252
|
|
74
|
+
Z
|
|
75
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.2648774135100003px"/><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="784.194930449375" y="695.31736594757" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.383896721590002px" transform="rotate(90 784.194930449375 695.31736594757)">XXX</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="
|
|
76
|
+
M 784.194930449375,486.94864390465
|
|
77
|
+
L 790.310099465852,475.6242568371
|
|
78
|
+
L 829.1451975161701,475.6242568371
|
|
79
|
+
L 829.1451975161701,498.2730309722
|
|
80
|
+
L 790.310099465852,498.2730309722
|
|
81
|
+
Z
|
|
82
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.2648774135100003px"/><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="794.38687881017" y="486.94864390465" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.383896721590002px" transform="">XX</text>
|
|
83
|
+
</g>
|
|
84
|
+
</svg>
|