@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="-1.5,0.5 -0.5,0.5" data-type="line" data-label="" points="169.23076923076923,266.1538461538462 384.61538461538464,266.1538461538462" fill="none" stroke="hsl(190, 100%, 50%, 0.1)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.5,0.5 -0.5,0" data-type="line" data-label="" points="169.23076923076923,266.1538461538462 384.61538461538464,373.84615384615387" fill="none" stroke="hsl(190, 100%, 50%, 0.1)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-0.5,0.5 -0.5,0" data-type="line" data-label="" points="384.61538461538464,266.1538461538462 384.61538461538464,373.84615384615387" fill="none" stroke="hsl(190, 100%, 50%, 0.1)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-0.5,0.5 -1.5,0.5" data-type="line" data-label="" points="384.61538461538464,266.1538461538462 169.23076923076923,266.1538461538462" fill="none" stroke="blue" stroke-width="1px"/></g><g><polyline data-points="-0.5,0 -1.3,0 -1.3,0.5 -1.5,0.5" data-type="line" data-label="" points="384.61538461538464,373.84615384615387 212.30769230769232,373.84615384615387 212.30769230769232,266.1538461538462 169.23076923076923,266.1538461538462" fill="none" stroke="red" stroke-width="1px"/></g><g><rect data-type="rect" data-label="J1" data-x="-1.8" data-y="0.5" x="40.00000000000003" y="223.0769230769231" width="129.23076923076923" height="86.15384615384619" fill="hsl(183, 100%, 50%, 0.1)" stroke="black" stroke-width="0.004642857142857143"/></g><g><rect data-type="rect" data-label="U1" data-x="0" data-y="0.25" x="384.61538461538464" y="158.46153846153845" width="215.38461538461536" height="323.0769230769231" fill="hsl(164, 100%, 50%, 0.1)" stroke="black" stroke-width="0.004642857142857143"/></g><g><circle data-type="point" data-label="J1.1
|
|
2
4
|
x+" data-x="-1.5" data-y="0.5" cx="169.23076923076923" cy="266.1538461538462" r="3" fill="hsl(218, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.1
|
|
3
5
|
x-" data-x="-0.5" data-y="0.5" cx="384.61538461538464" cy="266.1538461538462" r="3" fill="hsl(319, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.6
|
|
4
6
|
x-" data-x="-0.5" data-y="0" cx="384.61538461538464" cy="373.84615384615387" r="3" fill="hsl(324, 100%, 50%, 0.8)"/></g><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5"/><line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5"/><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text></g><script><![CDATA[
|
|
@@ -44,4 +46,27 @@ x-" data-x="-0.5" data-y="0" cx="384.61538461538464" cy="373.84615384615387" r="
|
|
|
44
46
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
45
47
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
46
48
|
});
|
|
47
|
-
]]></script
|
|
49
|
+
]]></script>
|
|
50
|
+
</g>
|
|
51
|
+
<g transform="translate(1216, 200)">
|
|
52
|
+
<style>
|
|
53
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
54
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
55
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
56
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
57
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
58
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
59
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
60
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
61
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
62
|
+
|
|
63
|
+
</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 719.84303743765 322.74896595605003 L 401.67568140835 322.74896595605003" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="50.906776964688px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 719.84303743765 322.74896595605003 L 401.67568140835 322.74896595605003" stroke="rgb(0, 150, 0)" fill="none" stroke-width="6.363347120586px" 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 719.84303743765 481.8326439707 L 465.30915261420995 481.8326439707 L 465.30915261420995 322.74896595605003 L 401.67568140835 322.74896595605003" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="50.906776964688px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 719.84303743765 481.8326439707 L 465.30915261420995 481.8326439707 L 465.30915261420995 322.74896595605003 L 401.67568140835 322.74896595605003" stroke="rgb(0, 150, 0)" fill="none" stroke-width="6.363347120586px" 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="401.67568140835" cy="322.74896595605003" r="9.545020680878999" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="290.317106798095" y="259.11549475019" width="31.816735602930066" height="127.26694241172004" stroke-width="6.363347120586px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="290.317106798095" y="259.11549475019" width="31.816735602930066" height="127.26694241172004" fill="transparent"/><text class="sch-text" x="306.22547459956" y="322.74896595605003" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="42.422314137239994px" transform="rotate(0, 306.22547459956, 322.74896595605003)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="322.13384240102505" y1="322.74896595605003" x2="401.67568140835" y2="322.74896595605003" stroke-width="6.363347120586px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="395.312334287764" y="316.385618835464" width="12.726694241172" height="12.726694241172" opacity="0"/></g><text class="pin-number sch-pin-number" x="361.90476190468746" y="316.385618835464" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="47.72510340439499px" transform="">1</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="847.10997984937" y="163.66528794140004" width="63.633471205859905" height="477.25103404394997" stroke-width="6.363347120586px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="847.10997984937" y="163.66528794140004" width="63.633471205859905" height="477.25103404394997" fill="transparent"/><text class="sch-text" x="878.9267154523" y="402.290804963375" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="57.27012408527399px" transform="rotate(0, 878.9267154523, 402.290804963375)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="847.10997984937" y1="322.74896595605003" x2="719.84303743765" y2="322.74896595605003" stroke-width="6.363347120586px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="713.479690317064" y="316.385618835464" width="12.726694241172" height="12.726694241172" opacity="0"/></g><text class="pin-number sch-pin-number" x="783.47650864351" y="316.385618835464" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="47.72510340439499px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="847.10997984937" y1="481.8326439707" x2="719.84303743765" y2="481.8326439707" stroke-width="6.363347120586px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="713.479690317064" y="475.469296850114" width="12.726694241172" height="12.726694241172" opacity="0"/></g><text class="pin-number sch-pin-number" x="783.47650864351" y="475.469296850114" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="47.72510340439499px" transform="">6</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="401.67568140835" cy="322.74896595605003" r="12.726694241172" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="719.84303743765" cy="322.74896595605003" r="12.726694241172" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="719.84303743765" cy="481.8326439707" r="12.726694241172" 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="
|
|
64
|
+
M 465.30915261420995,322.74896595605003
|
|
65
|
+
L 433.49241701127994,305.5679287304678
|
|
66
|
+
L 433.49241701127994,159.08367801457814
|
|
67
|
+
L 497.12588821713996,159.08367801457814
|
|
68
|
+
L 497.12588821713996,305.5679287304678
|
|
69
|
+
Z
|
|
70
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="6.363347120586px"/><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="465.30915261420995" y="294.113903913413" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="57.27012408527399px" transform="rotate(-90 465.30915261420995 294.113903913413)">XXX</text>
|
|
71
|
+
</g>
|
|
72
|
+
</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.9000000000000004,1.25 1.9700000000000002,1.1099999999999999" data-type="line" data-label="" points="312.06477732793525,134.84480431848863 473.7921727395411,156.00539811066136" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.9000000000000004,0.8499999999999999 1.9000000000000004,-0.7" data-type="line" data-label="" points="312.06477732793525,195.30364372469646 463.2118758434548,429.5816464237517" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.9000000000000004,0.44999999999999996 1.9700000000000002,0.3500000000000001" data-type="line" data-label="" points="312.06477732793525,255.76248313090423 473.7921727395411,270.87719298245617" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.9000000000000004,-1.3000000000000003 1.9000000000000004,-1.3" data-type="line" data-label="" points="312.06477732793525,520.2699055330635 463.2118758434548,520.2699055330634" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.9000000000000004,1.25 1.9700000000000002,1.25 1.9700000000000002,1.1099999999999999" data-type="line" data-label="" points="312.06477732793525,134.84480431848863 473.7921727395411,134.84480431848863 473.7921727395411,156.00539811066136" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.9000000000000004,0.8499999999999999 1.2725000000000004,0.8499999999999999 1.2725000000000004,0.05000000000000007 1.9000000000000004,0.05000000000000007 1.9000000000000004,-0.7" data-type="line" data-label="" points="312.06477732793525,195.30364372469646 368.36707152496626,195.30364372469646 368.36707152496626,316.22132253711203 463.2118758434548,316.22132253711203 463.2118758434548,429.5816464237517" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.9000000000000004,0.44999999999999996 1.4350000000000003,0.44999999999999996 1.4350000000000003,0.2500000000000001 1.9700000000000002,0.2500000000000001 1.9700000000000002,0.3500000000000001" data-type="line" data-label="" points="312.06477732793525,255.76248313090423 392.9284750337382,255.76248313090423 392.9284750337382,285.9919028340081 473.7921727395411,285.9919028340081 473.7921727395411,270.87719298245617" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.9000000000000004,-1.3000000000000003 1.9000000000000004,-1.3" data-type="line" data-label="" points="312.06477732793525,520.2699055330635 463.2118758434548,520.2699055330634" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="1.9975000000000005" data-y="-1" x="414.08906882591106" y="429.58164642375175" width="127.71929824561391" height="90.68825910931167" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00661607142857143"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.2250000000000005" data-y="0.73" x="424.66936572199734" y="156.00539811066136" width="175.33063427800266" height="114.8717948717948" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00661607142857143"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="0" data-y="0" x="40" y="74.3859649122808" width="272.06477732793525" height="498.78542510121446" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00661607142857143"/></g><g><rect data-type="rect" data-label="netId: .HOST > .pin2 to R1.pin1
|
|
2
4
|
globalConnNetId: connectivity_net1" data-x="1.2725000000000004" data-y="-0.17499999999999993" x="353.25236167341427" y="316.22132253711203" width="30.22941970310393" height="68.0161943319838" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.00661607142857143"/></g><g><rect data-type="rect" data-label="netId: .HOST > .pin4 to R1.pin2
|
|
3
5
|
globalConnNetId: connectivity_net3" data-x="1.4000000000000004" data-y="-1.0750000000000002" x="372.52361673414305" y="452.2537112010797" width="30.22941970310393" height="68.0161943319838" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.00661607142857143"/></g><g><rect data-type="rect" data-label="netId: .HOST > .pin1 to C1.pin1
|
|
4
6
|
globalConnNetId: connectivity_net0" data-x="1.9700000000000002" data-y="1.475" x="458.6774628879891" y="66.82860998650477" width="30.229419703103986" height="68.01619433198385" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.00661607142857143"/></g><g><rect data-type="rect" data-label="netId: .HOST > .pin3 to C1.pin2
|
|
@@ -24,7 +26,7 @@ orientation: y+" data-x="1.4000000000000004" data-y="0.44999999999999996" cx="38
|
|
|
24
26
|
const h = svg.getElementById('crosshair-h');
|
|
25
27
|
const v = svg.getElementById('crosshair-v');
|
|
26
28
|
const coords = svg.getElementById('coordinates');
|
|
27
|
-
|
|
29
|
+
|
|
28
30
|
crosshair.style.display = 'block';
|
|
29
31
|
h.setAttribute('x1', '0');
|
|
30
32
|
h.setAttribute('x2', '640');
|
|
@@ -43,13 +45,13 @@ orientation: y+" data-x="1.4000000000000004" data-y="0.44999999999999996" cx="38
|
|
|
43
45
|
// y' = (y - ty) / sy
|
|
44
46
|
const sx = matrix.a;
|
|
45
47
|
const sy = matrix.d;
|
|
46
|
-
const tx = matrix.e;
|
|
48
|
+
const tx = matrix.e;
|
|
47
49
|
const ty = matrix.f;
|
|
48
50
|
const realPoint = {
|
|
49
51
|
x: (x - tx) / sx,
|
|
50
52
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
51
53
|
}
|
|
52
|
-
|
|
54
|
+
|
|
53
55
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
54
56
|
coords.setAttribute('x', (x + 5).toString());
|
|
55
57
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -57,4 +59,48 @@ orientation: y+" data-x="1.4000000000000004" data-y="0.44999999999999996" cx="38
|
|
|
57
59
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
58
60
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
59
61
|
});
|
|
60
|
-
]]></script
|
|
62
|
+
]]></script>
|
|
63
|
+
</g>
|
|
64
|
+
<g transform="translate(1216, 200)">
|
|
65
|
+
<style>
|
|
66
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
67
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
68
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
69
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
70
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
71
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
72
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
73
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
74
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
75
|
+
|
|
76
|
+
</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 577.6744186046101 167.441860465125 L 776.744186046463 167.441860465125 L 776.744186046463 193.48837209303102" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.767441860464px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 577.6744186046101 167.441860465125 L 776.744186046463 167.441860465125 L 776.744186046463 193.48837209303102" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.720930232558px" 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 577.6744186046101 241.860465116285 L 646.9767441860029 241.860465116285 L 646.9767441860029 390.697674418605 L 763.72093023251 390.697674418605 L 763.72093023251 530.23255813953" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.767441860464px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 577.6744186046101 241.860465116285 L 646.9767441860029 241.860465116285 L 646.9767441860029 390.697674418605 L 763.72093023251 390.697674418605 L 763.72093023251 530.23255813953" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.720930232558px" 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 577.6744186046101 316.279069767445 L 677.2093023255366 316.279069767445 L 677.2093023255366 353.48837209302496 L 776.744186046463 353.48837209302496 L 776.744186046463 334.883720930235" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.767441860464px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 577.6744186046101 316.279069767445 L 677.2093023255366 316.279069767445 L 677.2093023255366 353.48837209302496 L 776.744186046463 353.48837209302496 L 776.744186046463 334.883720930235" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.720930232558px" 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 577.6744186046101 641.86046511627 L 763.72093023251 641.86046511627" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="29.767441860464px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 577.6744186046101 641.86046511627 L 763.72093023251 641.86046511627" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component-overlay sch-component-overlay" x="748.8409302325106" y="530.23255813953" width="29.759999999998854" height="111.62790697673995" fill="transparent"/><path class="sch-component-symbol-path" d="M 763.72093023251 530.23255813953 L 763.72093023251 548.8409302325526" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 763.72093023251 623.2520930232474 L 763.72093023251 641.86046511627" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 778.6009302325094 548.8409302325526 L 778.6009302325094 623.2520930232474 L 748.8409302325106 623.2520930232474 L 748.8409302325106 548.8409302325526 L 778.6009302325094 548.8409302325526" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="793.488372092974" y="556.279069767436" stroke="rgb(245, 241, 237)" stroke-width="3.720930232558px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="33.488372093022px">R1</text><text class="sch-component-text" x="793.488372092974" y="615.8139534883641" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="33.488372093022px"></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="739.0340465115808" y="193.488372093031" width="75.42027906976455" height="141.39534883720398" fill="transparent"/><path class="sch-component-symbol-path" d="M 776.744186046463 334.883720930235 L 776.744186046463 278.32558139535337" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 776.744186046463 250.0465116279126 L 776.744186046463 193.488372093031" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 814.4543255813453 278.32558139535337 L 739.0340465115808 278.32558139535337" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 814.4543255813453 250.0465116279126 L 739.0340465115808 250.0465116279126" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.720930232558px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="803.8449612402604" y="217.0542635658983" stroke="rgb(245, 241, 237)" stroke-width="3.720930232558px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="ideographic" font-size="33.488372093022px">C1</text><text class="sch-component-text" x="803.8449612402604" y="311.3178294573676" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="hanging" font-size="33.488372093022px"></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="317.2093023255499" y="93.02325581396502" width="186.04651162790014" height="613.9534883720698" stroke-width="3.720930232558px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="317.2093023255499" y="93.02325581396502" width="186.04651162790014" height="613.9534883720698" fill="transparent"/><text class="sch-text" x="410.2325581395" y="400" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="33.488372093022px" transform="rotate(0, 410.2325581395, 400)">HOST</text><line class="component-pin sch-component-pin sch-port-line" x1="503.25581395345006" y1="167.441860465125" x2="577.6744186046101" y2="167.441860465125" stroke-width="3.720930232558px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><rect x="573.9534883720521" y="163.72093023256699" width="7.441860465116" height="7.441860465116" opacity="0"/></g><text class="pin-number sch-pin-number" x="540.4651162790301" y="163.72093023256699" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.906976744185px" transform=""></text><text class="pin-number sch-pin-label" x="484.65116279066007" y="167.441860465125" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="27.906976744185px" transform="">pin1</text><line class="component-pin sch-component-pin sch-port-line" x1="503.25581395345006" y1="241.860465116285" x2="577.6744186046101" y2="241.860465116285" stroke-width="3.720930232558px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><rect x="573.9534883720521" y="238.139534883727" width="7.441860465116" height="7.441860465116" opacity="0"/></g><text class="pin-number sch-pin-number" x="540.4651162790301" y="238.139534883727" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.906976744185px" transform=""></text><text class="pin-number sch-pin-label" x="484.65116279066007" y="241.860465116285" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="27.906976744185px" transform="">pin2</text><line class="component-pin sch-component-pin sch-port-line" x1="503.25581395345006" y1="316.279069767445" x2="577.6744186046101" y2="316.279069767445" stroke-width="3.720930232558px"/><g class="sch-port" data-schematic-port-id="source_port_2_2__stack1"><rect x="573.9534883720521" y="312.558139534887" width="7.441860465116" height="7.441860465116" opacity="0"/></g><text class="pin-number sch-pin-number" x="540.4651162790301" y="312.558139534887" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.906976744185px" transform=""></text><text class="pin-number sch-pin-label" x="484.65116279066007" y="316.279069767445" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="27.906976744185px" transform="">pin3</text><line class="component-pin sch-component-pin sch-port-line" x1="503.25581395345006" y1="641.86046511627" x2="577.6744186046101" y2="641.86046511627" stroke-width="3.720930232558px"/><g class="sch-port" data-schematic-port-id="source_port_2_3__stack1"><rect x="573.9534883720521" y="638.139534883712" width="7.441860465116" height="7.441860465116" opacity="0"/></g><text class="pin-number sch-pin-number" x="540.4651162790301" y="638.139534883712" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="27.906976744185px" transform=""></text><text class="pin-number sch-pin-label" x="484.65116279066007" y="641.86046511627" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="27.906976744185px" transform="">pin4</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="763.72093023251" cy="530.23255813953" r="7.441860465116" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="763.72093023251" cy="641.86046511627" r="7.441860465116" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="776.744186046463" cy="208.372093023263" r="7.441860465116" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="776.744186046463" cy="349.767441860467" r="7.441860465116" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="577.6744186046101" cy="167.441860465125" r="7.441860465116" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="577.6744186046101" cy="241.860465116285" r="7.441860465116" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_2__stack1"><circle cx="577.6744186046101" cy="316.279069767445" r="7.441860465116" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_3__stack1"><circle cx="577.6744186046101" cy="641.86046511627" r="7.441860465116" 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="
|
|
77
|
+
M 646.9767441860029,390.697674418605
|
|
78
|
+
L 665.5813953487929,400.74418604651163
|
|
79
|
+
L 665.5813953487929,464.5457364341061
|
|
80
|
+
L 628.3720930232129,464.5457364341061
|
|
81
|
+
L 628.3720930232129,400.74418604651163
|
|
82
|
+
Z
|
|
83
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.720930232558px"/><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="646.9767441860029" y="407.441860465116" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="33.488372093022px" transform="rotate(90 646.9767441860029 407.441860465116)">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="
|
|
84
|
+
M 670.69767441856,641.86046511627
|
|
85
|
+
L 652.09302325577,631.8139534883634
|
|
86
|
+
L 652.09302325577,568.0124031007689
|
|
87
|
+
L 689.30232558135,568.0124031007689
|
|
88
|
+
L 689.30232558135,631.8139534883634
|
|
89
|
+
Z
|
|
90
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.720930232558px"/><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="670.69767441856" y="625.116279069759" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="33.488372093022px" transform="rotate(-90 670.69767441856 625.116279069759)">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="
|
|
91
|
+
M 776.744186046463,167.441860465125
|
|
92
|
+
L 758.139534883673,157.3953488372184
|
|
93
|
+
L 758.139534883673,93.59379844962388
|
|
94
|
+
L 795.348837209253,93.59379844962388
|
|
95
|
+
L 795.348837209253,157.3953488372184
|
|
96
|
+
Z
|
|
97
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.720930232558px"/><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="776.744186046463" y="150.69767441861399" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="33.488372093022px" transform="rotate(-90 776.744186046463 150.69767441861399)">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="
|
|
98
|
+
M 670.69767441856,316.279069767445
|
|
99
|
+
L 652.09302325577,306.23255813953836
|
|
100
|
+
L 652.09302325577,242.43100775194387
|
|
101
|
+
L 689.30232558135,242.43100775194387
|
|
102
|
+
L 689.30232558135,306.23255813953836
|
|
103
|
+
Z
|
|
104
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.720930232558px"/><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="670.69767441856" y="299.534883720934" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="33.488372093022px" transform="rotate(-90 670.69767441856 299.534883720934)">XX</text>
|
|
105
|
+
</g>
|
|
106
|
+
</svg>
|