@tscircuit/schematic-trace-solver 0.0.149 → 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 +28 -1
- package/dist/index.js +26 -4
- package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +14 -4
- 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/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 +590 -5
- 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 +30 -5
- 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/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 +23 -5
- package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
- 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="-2.3148566499999994,0.5512093000000002 -1.4,0.42500000000000004" data-type="line" data-label="" points="70.92192940766586,346.32029245159356 177.95207620854734,361.0856657006556" fill="none" stroke="hsl(256, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-2.31430995,-0.5512093000000002 -1.4,-0.42500000000000004" data-type="line" data-label="" points="70.98588847847327,475.2935306020977 177.95207620854734,460.5281573530356" fill="none" stroke="hsl(256, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,1.2 1.4,0.5" data-type="line" data-label="" points="547.3539750075635,270.4175115470151 505.5273428281519,352.31132820191624" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.4,-0.3" data-type="line" data-label="" points="177.95207620854734,361.0856657006556 505.5273428281519,445.9042615218033" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.4,-0.5" data-type="line" data-label="" points="177.95207620854734,361.0856657006556 505.5273428281519,469.302494851775" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="177.95207620854734,361.0856657006556 70.92192940766586,346.32029245159356" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="177.95207620854734,361.0856657006556 547.4179106801375,141.42522723458046" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 1.4,-0.5" data-type="line" data-label="" points="505.5273428281519,445.9042615218033 505.5273428281519,469.302494851775" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="505.5273428281519,445.9042615218033 70.92192940766586,346.32029245159356" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.3 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="505.5273428281519,445.9042615218033 547.4179106801375,141.42522723458046" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.5 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="505.5273428281519,469.302494851775 70.92192940766586,346.32029245159356" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,-0.5 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="505.5273428281519,469.302494851775 547.4179106801375,141.42522723458046" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.3148566499999994,0.5512093000000002 1.7580660749999977,2.3025814000000002" data-type="line" data-label="" points="70.92192940766586,346.32029245159356 547.4179106801375,141.42522723458046" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,-0.42500000000000004 -2.31430995,-0.5512093000000002" data-type="line" data-label="" points="177.95207620854734,460.5281573530356 70.98588847847327,475.2935306020977" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.4,0.5 1.757519574999999,1.2" data-type="line" data-label="" points="505.5273428281519,352.31132820191624 547.3539750075635,270.4175115470151" fill="none" stroke="hsl(304, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.4,0.42500000000000004 -1.8574283249999997,0.42500000000000004 -1.8574283249999997,0.7512093000000004 -2.3148566499999994,0.7512093000000004 -2.3148566499999994,0.5512093000000002" data-type="line" data-label="" points="177.95207620854734,361.0856657006556 124.4370028081066,361.0856657006556 124.4370028081066,322.9220591216218 70.92192940766586,322.9220591216218 70.92192940766586,346.32029245159356" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.4,-0.5 1.5999999999999999,-0.5 1.5999999999999999,-0.3 1.4,-0.3" data-type="line" data-label="" points="505.5273428281519,469.302494851775 528.9255761581237,469.302494851775 528.9255761581237,445.9042615218033 505.5273428281519,445.9042615218033" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.31430995,-0.5512093000000002 -2.31430995,-0.7512093000000004 -1.857154975,-0.7512093000000004 -1.857154975,-0.42500000000000004 -1.4,-0.42500000000000004" data-type="line" data-label="" points="70.98588847847327,475.2935306020977 70.98588847847327,498.6917639320694 124.4689823435103,498.6917639320694 124.4689823435103,460.5281573530356 177.95207620854734,460.5281573530356" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.757519574999999,1.2 1.757519574999999,0.5 1.4,0.5" data-type="line" data-label="" points="547.3539750075635,270.4175115470151 547.3539750075635,352.31132820191624 505.5273428281519,352.31132820191624" 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="177.95207620854734" y="328.9130948719445" width="327.5752666196046" height="163.78763330980223" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00854765388392857"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-2.3145833" data-y="0" x="39.999999999999986" y="346.32029245159356" width="61.907817886139156" height="128.97323815050413" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00854765388392857"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="1.7577928249999983" data-y="1.7512907000000002" x="528.9255761581237" y="141.42522723458043" width="36.92073337145359" height="128.99228431243466" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00854765388392857"/></g><g><rect data-type="rect" data-label="netId: V3_3
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="-2.3148566499999994" data-y="0.9762093000000004" x="59.22281274267996" y="270.2760341291854" width="23.398233329971788" height="52.64602499243642" fill="#ef444466" stroke="#ef4444" stroke-width="0.00854765388392857"/></g><g><rect data-type="rect" data-label="netId: V3_3
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="1.5999999999999999" data-y="-0.07499999999999998" x="517.2264594931378" y="393.25823652936674" width="23.39823332997173" height="52.64602499243648" fill="#ef444466" stroke="#ef4444" stroke-width="0.00854765388392857"/></g><g><rect data-type="rect" data-label="netId: V3_3
|
|
4
6
|
globalConnNetId: connectivity_net0" data-x="1.7580660749999977" data-y="2.5285814" x="535.7187940151516" y="88.66221107549416" width="23.39823332997173" height="52.64602499243642" fill="#ef444466" stroke="#ef4444" stroke-width="0.00854765388392857"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
@@ -30,7 +32,7 @@ orientation: x+" data-x="1.757519574999999" data-y="0.85" cx="547.3539750075635"
|
|
|
30
32
|
const h = svg.getElementById('crosshair-h');
|
|
31
33
|
const v = svg.getElementById('crosshair-v');
|
|
32
34
|
const coords = svg.getElementById('coordinates');
|
|
33
|
-
|
|
35
|
+
|
|
34
36
|
crosshair.style.display = 'block';
|
|
35
37
|
h.setAttribute('x1', '0');
|
|
36
38
|
h.setAttribute('x2', '640');
|
|
@@ -49,13 +51,13 @@ orientation: x+" data-x="1.757519574999999" data-y="0.85" cx="547.3539750075635"
|
|
|
49
51
|
// y' = (y - ty) / sy
|
|
50
52
|
const sx = matrix.a;
|
|
51
53
|
const sy = matrix.d;
|
|
52
|
-
const tx = matrix.e;
|
|
54
|
+
const tx = matrix.e;
|
|
53
55
|
const ty = matrix.f;
|
|
54
56
|
const realPoint = {
|
|
55
57
|
x: (x - tx) / sx,
|
|
56
58
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
57
59
|
}
|
|
58
|
-
|
|
60
|
+
|
|
59
61
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
60
62
|
coords.setAttribute('x', (x + 5).toString());
|
|
61
63
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -63,4 +65,55 @@ orientation: x+" data-x="1.757519574999999" data-y="0.85" cx="547.3539750075635"
|
|
|
63
65
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
64
66
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
65
67
|
});
|
|
66
|
-
]]></script
|
|
68
|
+
]]></script>
|
|
69
|
+
</g>
|
|
70
|
+
<g transform="translate(1216, 200)">
|
|
71
|
+
<style>
|
|
72
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
73
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
74
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
75
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
76
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
77
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
78
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
79
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
80
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
81
|
+
|
|
82
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 414.893549174 457.8730753392125 L 339.4049920584986 457.8730753392125 L 339.4049920584986 404.03935313878304 L 263.9164349429971 404.03935313878304 L 263.9164349429971 437.0449861482831" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.404506407600003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 414.893549174 457.8730753392125 L 339.4049920584986 457.8730753392125 L 339.4049920584986 404.03935313878304 L 263.9164349429971 404.03935313878304 L 263.9164349429971 437.0449861482831" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.3005633009500004px" 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 876.972411307 610.52412800815 L 909.9780443165 610.52412800815 L 909.9780443165 577.5184949986501 L 876.972411307 577.5184949986501" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.404506407600003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 876.972411307 610.52412800815 L 909.9780443165 610.52412800815 L 909.9780443165 577.5184949986501 L 876.972411307 577.5184949986501" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.3005633009500004px" 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 264.0066558408285 618.975104820517 L 264.0066558408285 651.9807378300171 L 339.4501025074142 651.9807378300171 L 339.4501025074142 598.1470156295876 L 414.893549174 598.1470156295876" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.404506407600003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 264.0066558408285 618.975104820517 L 264.0066558408285 651.9807378300171 L 339.4501025074142 651.9807378300171 L 339.4501025074142 598.1470156295876 L 414.893549174 598.1470156295876" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.3005633009500004px" 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 935.9732107378119 329.97624742740004 L 935.9732107378119 445.49596296065005 L 876.972411307 445.49596296065005" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.404506407600003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 935.9732107378119 329.97624742740004 L 935.9732107378119 445.49596296065005 L 876.972411307 445.49596296065005" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="480.904815193" y="412.49032995115004" width="330.056330095" height="231.03943106649996" stroke-width="3.3005633009500004px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="480.904815193" y="412.49032995115004" width="330.056330095" height="231.03943106649996" fill="transparent"/><text class="sch-text" x="645.9329802405" y="528.0100454844" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.70506970855px" transform="rotate(0, 645.9329802405, 528.0100454844)">U3</text><line class="component-pin sch-component-pin sch-port-line" x1="480.904815193" y1="457.8730753392125" x2="414.893549174" y2="457.8730753392125" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="411.59298587305" y="454.5725120382625" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="447.8991821835" y="454.5725120382625" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">8</text><line class="component-pin sch-component-pin sch-port-line" x1="480.904815193" y1="598.1470156295876" x2="414.893549174" y2="598.1470156295876" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="411.59298587305" y="594.8464523286376" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="447.8991821835" y="594.8464523286376" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="810.961145288" y1="445.49596296065005" x2="876.972411307" y2="445.49596296065005" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="873.67184800605" y="442.19539965970006" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="843.9667782975" y="442.19539965970006" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="810.961145288" y1="478.50159597015005" x2="873.67184800605" y2="478.50159597015005" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="876.972411307" cy="478.50159597015005" r="3.3005633009500004" stroke-width="3.3005633009500004px"/><rect x="873.67184800605" y="475.20103266920006" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="843.9667782975" y="475.20103266920006" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="810.961145288" y1="511.50722897965005" x2="873.67184800605" y2="511.50722897965005" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="876.972411307" cy="511.50722897965005" r="3.3005633009500004" stroke-width="3.3005633009500004px"/><rect x="873.67184800605" y="508.20666567870006" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="843.9667782975" y="508.2066656787" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="810.961145288" y1="544.51286198915" x2="873.67184800605" y2="544.51286198915" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="876.972411307" cy="544.51286198915" r="3.3005633009500004" stroke-width="3.3005633009500004px"/><rect x="873.67184800605" y="541.2122986882" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="843.9667782975" y="541.2122986882" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="810.961145288" y1="577.5184949986501" x2="876.972411307" y2="577.5184949986501" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><rect x="873.67184800605" y="574.2179316977001" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="843.9667782975" y="574.2179316977" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="810.961145288" y1="610.52412800815" x2="876.972411307" y2="610.52412800815" stroke-width="3.3005633009500004px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="873.67184800605" y="607.2235647072" width="6.601126601900001" height="6.601126601900001" opacity="0"/></g><text class="pin-number sch-pin-number" x="843.9667782975" y="607.2235647072" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.754224757125px" transform="">7</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component-overlay sch-component-overlay" x="215.39566632684537" y="437.0449861482831" width="97.04153723230345" height="181.93014104293866" fill="transparent"/><path class="sch-component-symbol-path" d="M 263.9164349429971 618.9751271912218 L 263.9164349429971 546.2030707740463" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 263.9164349429971 509.81704256545856 L 263.9164349429971 437.0449861482831" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 312.4372035591488 546.2030707740463 L 215.39566632684537 546.2030707740463" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 312.4372035591488 509.81704256545856 L 215.39566632684537 509.81704256545856" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="298.7863786428937" y="467.36667632210623" stroke="rgb(245, 241, 237)" stroke-width="3.3005633009500004px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="ideographic" font-size="29.70506970855px">C20</text><text class="sch-component-text" x="298.7863786428937" y="588.6534370173987" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="hanging" font-size="29.70506970855px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component-overlay sch-component-overlay" x="911.8085295157914" y="148.01926216989636" width="48.50973822843753" height="181.95700760854277" fill="transparent"/><path class="sch-component-symbol-path" d="M 936.0633986300102 148.01926216989636 L 936.0633986300102 178.35149533824045" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 936.0633986300102 299.64403661009504 L 936.0633986300102 329.97626977843913" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 960.3182677442289 178.35149533824045 L 960.3182677442289 299.64403661009504 L 911.8085295157914 299.64403661009504 L 911.8085295157914 178.35149533824045 L 960.3182677442289 178.35149533824045" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.3005633009500004px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="984.5852673256215" y="190.47589727855635" stroke="rgb(245, 241, 237)" stroke-width="3.3005633009500004px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="29.70506970855px">R11</text><text class="sch-component-text" x="984.5852673256215" y="287.5196346697792" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="29.70506970855px"></text><circle class="component-pin sch-component-pin" cx="936.0633986300102" cy="148.01926216989636" r="3.3005633009500004px" stroke-width="3.3005633009500004px" 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="414.893549174" cy="457.8730753392125" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="414.893549174" cy="598.1470156295876" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="876.972411307" cy="445.49596296065005" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="876.972411307" cy="478.50159597015005" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="876.972411307" cy="511.50722897965005" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="876.972411307" cy="544.51286198915" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="876.972411307" cy="577.5184949986501" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="876.972411307" cy="610.52412800815" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="263.9164349429971" cy="478.50160715550237" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="264.0066558408285" cy="660.4317258277364" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="936.0633986300102" cy="189.48931645991775" r="6.601126601900001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="935.9732107378119" cy="371.4463017174214" r="6.601126601900001" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
83
|
+
M 263.9164349429971,404.03935313878304
|
|
84
|
+
L 247.4136184382471,395.12783222621806
|
|
85
|
+
L 247.4136184382471,338.5341734925954
|
|
86
|
+
L 280.4192514477471,338.5341734925954
|
|
87
|
+
L 280.4192514477471,395.12783222621806
|
|
88
|
+
Z
|
|
89
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.3005633009500004px"/><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="263.9164349429971" y="389.18681828450804" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.70506970855px" transform="rotate(-90 263.9164349429971 389.18681828450804)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
90
|
+
M 909.9780443165,577.5184949986501
|
|
91
|
+
L 893.4752278117501,568.6069740860851
|
|
92
|
+
L 893.4752278117501,512.0133153524624
|
|
93
|
+
L 926.4808608212501,512.0133153524624
|
|
94
|
+
L 926.48086082125,568.6069740860851
|
|
95
|
+
Z
|
|
96
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.3005633009500004px"/><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="909.9780443165" y="562.6659601443752" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.70506970855px" transform="rotate(-90 909.9780443165 562.6659601443752)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
97
|
+
M 936.0633986300102,148.01926216989636
|
|
98
|
+
L 919.5605821252602,139.10774125733136
|
|
99
|
+
L 919.5605821252602,82.51408252370871
|
|
100
|
+
L 952.5662151347602,82.51408252370871
|
|
101
|
+
L 952.5662151347601,139.10774125733136
|
|
102
|
+
Z
|
|
103
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.3005633009500004px"/><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="936.0633986300102" y="133.16672731562136" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.70506970855px" transform="rotate(-90 936.0633986300102 133.16672731562136)">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="
|
|
104
|
+
M 264.0066558408285,651.9807378300171
|
|
105
|
+
L 280.5094723455785,660.8922587425822
|
|
106
|
+
L 280.5094723455785,717.4859174762048
|
|
107
|
+
L 247.5038393360785,717.4859174762048
|
|
108
|
+
L 247.5038393360785,660.8922587425822
|
|
109
|
+
Z
|
|
110
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.3005633009500004px"/><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="264.0066558408285" y="666.8332726842921" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.70506970855px" transform="rotate(90 264.0066558408285 666.8332726842921)">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="
|
|
111
|
+
M 935.9732107378119,387.7361051940251
|
|
112
|
+
L 944.8847316503769,371.23328868927507
|
|
113
|
+
L 1001.4783903839996,371.23328868927507
|
|
114
|
+
L 1001.4783903839996,404.2389216987751
|
|
115
|
+
L 944.8847316503769,404.2389216987751
|
|
116
|
+
Z
|
|
117
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.3005633009500004px"/><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="950.8257455920868" y="387.7361051940251" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.70506970855px" transform="">XX</text>
|
|
118
|
+
</g>
|
|
119
|
+
</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.6000000000000001,0.30000000000000004 3.4487093,0.0002732499999993365" data-type="line" data-label="" points="69.7277221998153,290.27227780018467 470.9240733271781,319.9729229996964" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6000000000000001,-0.10000000000000003 4.5512907,-0.0002732499999993365" data-type="line" data-label="" points="188.6386109990767,329.90924073327176 580.1815185334564,320.0270770003036" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.30000000000000004 -0.8,0.30000000000000004 -0.8,0.7 3.2487093,0.7 3.2487093,0.0002732499999993365 3.4487093,0.0002732499999993365" data-type="line" data-label="" points="69.7277221998153,290.27227780018467 49.909240733271744,290.27227780018467 49.909240733271744,250.63531486709752 451.10559186063455,250.63531486709752 451.10559186063455,319.9729229996964 470.9240733271781,319.9729229996964" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.6000000000000001,-0.10000000000000003 0.8,-0.10000000000000003 0.8,-0.7 4.7512907,-0.7 4.7512907,-0.0002732499999993365 4.5512907,-0.0002732499999993365" data-type="line" data-label="" points="188.6386109990767,329.90924073327176 208.45709246562024,329.90924073327176 208.45709246562024,389.3646851329025 600,389.3646851329025 600,320.0270770003036 580.1815185334564,320.0270770003036" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="4" data-y="0" x="470.92407332717806" y="300.73095124977385" width="109.25744520627825" height="38.538097500452295" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010091590535714286"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="0" x="69.7277221998153" y="270.4537963336411" width="118.91088879926139" height="99.09240733271781" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010091590535714286"/></g><g><rect data-type="rect" data-label="netId: chip.U1 > port.pin1 to R1.1
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="-0.8" data-y="0.07500000000000004" x="39.999999999999964" y="290.2722778001846" width="19.81848146654356" height="44.59158329972303" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010091590535714286"/></g><g><rect data-type="rect" data-label="netId: chip.U1 > port.pin6 to R1.2
|
|
3
5
|
globalConnNetId: connectivity_net1" data-x="0.8" data-y="0.12499999999999997" x="198.54785173234845" y="285.3176574335488" width="19.818481466543574" height="44.59158329972297" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010091590535714286"/></g><g><circle data-type="point" data-label="R1.1
|
|
4
6
|
x-" data-x="3.4487093" data-y="0.0002732499999993365" cx="470.9240733271781" cy="319.9729229996964" r="3" fill="hsl(226, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R1.2
|
|
@@ -22,7 +24,7 @@ orientation: y+" data-x="0.8" data-y="-0.10000000000000003" cx="208.457092465620
|
|
|
22
24
|
const h = svg.getElementById('crosshair-h');
|
|
23
25
|
const v = svg.getElementById('crosshair-v');
|
|
24
26
|
const coords = svg.getElementById('coordinates');
|
|
25
|
-
|
|
27
|
+
|
|
26
28
|
crosshair.style.display = 'block';
|
|
27
29
|
h.setAttribute('x1', '0');
|
|
28
30
|
h.setAttribute('x2', '640');
|
|
@@ -41,13 +43,13 @@ orientation: y+" data-x="0.8" data-y="-0.10000000000000003" cx="208.457092465620
|
|
|
41
43
|
// y' = (y - ty) / sy
|
|
42
44
|
const sx = matrix.a;
|
|
43
45
|
const sy = matrix.d;
|
|
44
|
-
const tx = matrix.e;
|
|
46
|
+
const tx = matrix.e;
|
|
45
47
|
const ty = matrix.f;
|
|
46
48
|
const realPoint = {
|
|
47
49
|
x: (x - tx) / sx,
|
|
48
50
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
|
|
51
53
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
52
54
|
coords.setAttribute('x', (x + 5).toString());
|
|
53
55
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -55,4 +57,34 @@ orientation: y+" data-x="0.8" data-y="-0.10000000000000003" cx="208.457092465620
|
|
|
55
57
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
56
58
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
57
59
|
});
|
|
58
|
-
]]></script
|
|
60
|
+
]]></script>
|
|
61
|
+
</g>
|
|
62
|
+
<g transform="translate(1216, 200)">
|
|
63
|
+
<style>
|
|
64
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
65
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
66
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
67
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
68
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
69
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
70
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
71
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
72
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
73
|
+
|
|
74
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 141.12289644097999 347.07891383464 L 105.84217233074 347.07891383464 L 105.84217233074 276.51746561416 L 820.0491514100545 276.51746561416 L 820.0491514100545 399.9517977106845 L 855.3298755202945 399.9517977106845" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="28.224579288192px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 141.12289644097999 347.07891383464 L 105.84217233074 347.07891383464 L 105.84217233074 276.51746561416 L 820.0491514100545 276.51746561416 L 820.0491514100545 399.9517977106845 L 855.3298755202945 399.9517977106845" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.528072411024px" 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 352.80724110242 417.64036205512 L 388.08796521266004 417.64036205512 L 388.08796521266004 523.4825343858399 L 1085.1099505429454 523.4825343858399 L 1085.1099505429454 400.0482022893155 L 1049.8292264327054 400.0482022893155" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="28.224579288192px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 352.80724110242 417.64036205512 L 388.08796521266004 417.64036205512 L 388.08796521266004 523.4825343858399 L 1085.1099505429454 523.4825343858399 L 1085.1099505429454 400.0482022893155 L 1049.8292264327054 400.0482022893155" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.528072411024px" 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-overlay sch-component-overlay" x="855.3298755202946" y="374.0250310492959" width="194.49937480411575" height="51.85353332277725" fill="transparent"/><path class="sch-component-symbol-path" d="M 855.3298755202946 399.9517977106845 L 887.7529213001407 399.9517977106845" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.528072411024px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1017.4062045445643 399.9517977106845 L 1049.8292503244104 399.9517977106845" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.528072411024px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 887.7529213001407 374.0250310492959 L 1017.4062045445643 374.0250310492959 L 1017.4062045445643 425.87856437207313 L 887.7529213001407 425.87856437207313 L 887.7529213001407 374.0250310492959" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.528072411024px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="952.5795629223525" y="348.0852977629203" stroke="rgb(245, 241, 237)" stroke-width="3.528072411024px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="31.752651699216px">R1</text><text class="sch-component-text" x="952.5795629223525" y="451.8182976584487" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="31.752651699216px"></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="211.68434466146" y="311.7981897244" width="70.56144822048003" height="176.4036205512" stroke-width="3.528072411024px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="211.68434466146" y="311.7981897244" width="70.56144822048003" height="176.4036205512" fill="transparent"/><text class="sch-text" x="246.9650687717" y="400" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="31.752651699216px" transform="rotate(0, 246.9650687717, 400)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="211.68434466146" y1="347.07891383464" x2="141.12289644097999" y2="347.07891383464" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="137.594824029956" y="343.55084142361596" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="176.40362055122" y="343.550841423616" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="211.68434466146" y1="382.35963794488" x2="144.65096885200398" y2="382.35963794488" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="141.12289644097999" cy="382.35963794488" r="3.528072411024" stroke-width="3.528072411024px"/><rect x="137.594824029956" y="378.83156553385595" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="176.40362055122" y="378.831565533856" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="211.68434466146" y1="417.64036205512" x2="144.65096885200398" y2="417.64036205512" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="141.12289644097999" cy="417.64036205512" r="3.528072411024" stroke-width="3.528072411024px"/><rect x="137.594824029956" y="414.112289644096" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="176.40362055122" y="414.112289644096" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="211.68434466146" y1="452.92108616536" x2="144.65096885200398" y2="452.92108616536" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="141.12289644097999" cy="452.92108616536" r="3.528072411024" stroke-width="3.528072411024px"/><rect x="137.594824029956" y="449.393013754336" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="176.40362055122" y="449.393013754336" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="282.24579288194" y1="452.92108616536" x2="349.279168691396" y2="452.92108616536" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="352.80724110242" cy="452.92108616536" r="3.528072411024" stroke-width="3.528072411024px"/><rect x="349.27916869139597" y="449.393013754336" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="317.52651699218" y="449.393013754336" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="282.24579288194" y1="417.64036205512" x2="352.80724110242" y2="417.64036205512" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_5__stack1"><rect x="349.27916869139597" y="414.112289644096" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="317.52651699218" y="414.112289644096" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="282.24579288194" y1="382.35963794488" x2="349.279168691396" y2="382.35963794488" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="352.80724110242" cy="382.35963794488" r="3.528072411024" stroke-width="3.528072411024px"/><rect x="349.27916869139597" y="378.83156553385595" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="317.52651699218" y="378.831565533856" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="282.24579288194" y1="347.07891383464" x2="349.279168691396" y2="347.07891383464" stroke-width="3.528072411024px"/><g class="sch-port" data-schematic-port-id="source_port_1_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="352.80724110242" cy="347.07891383464" r="3.528072411024" stroke-width="3.528072411024px"/><rect x="349.27916869139597" y="343.55084142361596" width="7.056144822048" height="7.056144822048" opacity="0"/></g><text class="pin-number sch-pin-number" x="317.52651699218" y="343.550841423616" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.460543082679997px" transform="">8</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="899.6584767569924" cy="399.9517977106845" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="1094.1578276694033" cy="400.0482022893155" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="141.12289644097999" cy="347.07891383464" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="141.12289644097999" cy="382.35963794488" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="141.12289644097999" cy="417.64036205512" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_3__stack1"><circle cx="141.12289644097999" cy="452.92108616536" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_4__stack1"><circle cx="352.80724110242" cy="452.92108616536" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_5__stack1"><circle cx="352.80724110242" cy="417.64036205512" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_6__stack1"><circle cx="352.80724110242" cy="382.35963794488" r="7.056144822048" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_7__stack1"><circle cx="352.80724110242" cy="347.07891383464" r="7.056144822048" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
75
|
+
M 105.84217233074,347.07891383464
|
|
76
|
+
L 123.48253438585999,356.6047093444048
|
|
77
|
+
L 123.48253438586,417.0993909520963
|
|
78
|
+
L 88.20181027562,417.0993909520963
|
|
79
|
+
L 88.20181027562,356.6047093444048
|
|
80
|
+
Z
|
|
81
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.528072411024px"/><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="105.84217233074" y="362.955239684248" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="31.752651699216px" transform="rotate(90 105.84217233074 362.955239684248)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
82
|
+
M 388.08796521266004,417.64036205512
|
|
83
|
+
L 370.44760315754,408.1145665453552
|
|
84
|
+
L 370.44760315754,347.6198849376637
|
|
85
|
+
L 405.72832726778006,347.6198849376637
|
|
86
|
+
L 405.72832726778006,408.1145665453552
|
|
87
|
+
Z
|
|
88
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.528072411024px"/><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="388.08796521266004" y="401.764036205512" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="31.752651699216px" transform="rotate(-90 388.08796521266004 401.764036205512)">XX</text>
|
|
89
|
+
</g>
|
|
90
|
+
</svg>
|