@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.2000000000000002,-0.30000000000000004 1.6,-2.295" data-type="line" data-label="" points="308.80000000000007,253.13599999999997 353.6,476.5759999999999" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.6,-1.895" data-type="line" data-label="" points="308.80000000000007,185.93599999999998 353.6,431.77599999999995" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.299,-0.30000000000000004 1.299,-1.2975000000000003 1.049,-1.2975000000000003 1.049,-2.2950000000000004 1.6,-2.295" data-type="line" data-label="" points="308.80000000000007,253.13599999999997 319.88800000000003,253.13599999999997 319.88800000000003,364.856 291.88800000000003,364.856 291.88800000000003,476.576 353.6,476.5759999999999" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.3010000000000002,0.30000000000000004 1.3010000000000002,0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,185.93599999999998 320.1120000000001,185.93599999999998 320.1120000000001,163.42399999999998" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,-1.895 1.499,-1.895 1.499,-1.6940000000000002" data-type="line" data-label="" points="353.6,431.77599999999995 342.288,431.77599999999995 342.288,409.264" 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="40" y="163.536" width="268.80000000000007" height="111.99999999999997" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.7" data-y="-2.095" x="353.6000000000001" y="409.376" width="246.39999999999998" height="89.60000000000002" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="1.049" data-y="-2.5200000000000005" x="280.68800000000005" y="476.5760000000001" width="22.399999999999977" height="50.39999999999998" fill="#00000066" stroke="#000000" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: VCC
|
|
3
5
|
globalConnNetId: connectivity_net1" data-x="1.3010000000000002" data-y="0.7260000000000001" x="308.91200000000003" y="113.02399999999996" width="22.400000000000034" height="50.400000000000006" fill="#ef444466" stroke="#ef4444" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: VCC
|
|
4
6
|
globalConnNetId: connectivity_net1" data-x="1.499" data-y="-1.469" x="331.08799999999997" y="358.8639999999999" width="22.400000000000034" height="50.400000000000034" fill="#ef444466" stroke="#ef4444" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: MMM
|
|
@@ -27,7 +29,7 @@ orientation: x-" data-x="1.6" data-y="-2.095" cx="353.6" cy="454.176" r="3" fill
|
|
|
27
29
|
const h = svg.getElementById('crosshair-h');
|
|
28
30
|
const v = svg.getElementById('crosshair-v');
|
|
29
31
|
const coords = svg.getElementById('coordinates');
|
|
30
|
-
|
|
32
|
+
|
|
31
33
|
crosshair.style.display = 'block';
|
|
32
34
|
h.setAttribute('x1', '0');
|
|
33
35
|
h.setAttribute('x2', '640');
|
|
@@ -46,13 +48,13 @@ orientation: x-" data-x="1.6" data-y="-2.095" cx="353.6" cy="454.176" r="3" fill
|
|
|
46
48
|
// y' = (y - ty) / sy
|
|
47
49
|
const sx = matrix.a;
|
|
48
50
|
const sy = matrix.d;
|
|
49
|
-
const tx = matrix.e;
|
|
51
|
+
const tx = matrix.e;
|
|
50
52
|
const ty = matrix.f;
|
|
51
53
|
const realPoint = {
|
|
52
54
|
x: (x - tx) / sx,
|
|
53
55
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
54
56
|
}
|
|
55
|
-
|
|
57
|
+
|
|
56
58
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
57
59
|
coords.setAttribute('x', (x + 5).toString());
|
|
58
60
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -60,4 +62,48 @@ orientation: x-" data-x="1.6" data-y="-2.095" cx="353.6" cy="454.176" r="3" fill
|
|
|
60
62
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
61
63
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
62
64
|
});
|
|
63
|
-
]]></script
|
|
65
|
+
]]></script>
|
|
66
|
+
</g>
|
|
67
|
+
<g transform="translate(1216, 200)">
|
|
68
|
+
<style>
|
|
69
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
70
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
71
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
72
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
73
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
74
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
75
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
76
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
77
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
78
|
+
|
|
79
|
+
</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 626.14455031382 295.94468975138 L 643.3999535208884 295.94468975138 L 643.3999535208884 469.80594933775103 L 599.8257029979884 469.80594933775103 L 599.8257029979884 643.6672089241221 L 695.86335115046 643.667208924122" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="27.887520334656003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 626.14455031382 295.94468975138 L 643.3999535208884 295.94468975138 L 643.3999535208884 469.80594933775103 L 599.8257029979884 469.80594933775103 L 599.8257029979884 643.6672089241221 L 695.86335115046 643.667208924122" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.4859400418320003px" 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 626.14455031382 191.36648849642 L 643.7485475250717 191.36648849642 L 643.7485475250717 156.3327910760084" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="27.887520334656003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 626.14455031382 191.36648849642 L 643.7485475250717 191.36648849642 L 643.7485475250717 156.3327910760084" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.4859400418320003px" 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 695.86335115046 573.948408087482 L 678.2593539392085 573.948408087482 L 678.2593539392085 538.9147106670705" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="27.887520334656003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 695.86335115046 573.948408087482 L 678.2593539392085 573.948408087482 L 678.2593539392085 538.9147106670705" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.4859400418320003px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="277.55054613062" y="156.5070880781" width="278.87520334656006" height="174.29700209159998" stroke-width="3.4859400418320003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="277.55054613062" y="156.5070880781" width="278.87520334656006" height="174.29700209159998" fill="transparent"/><text class="sch-text" x="416.9881478039" y="243.6555891239" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="31.373460376488px" transform="rotate(0, 416.9881478039, 243.6555891239)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="556.42574947718" y1="295.94468975138" x2="626.14455031382" y2="295.94468975138" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="622.658610271988" y="292.458749709548" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="591.2851498955" y="292.458749709548" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="277.55054613062" y1="295.94468975138" x2="211.31768533581197" y2="295.94468975138" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="207.83174529397996" cy="295.94468975138" r="3.4859400418320003" stroke-width="3.4859400418320003px"/><rect x="204.34580525214795" y="292.458749709548" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="242.69114571229997" y="292.458749709548" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="556.42574947718" y1="226.22588891474" x2="622.658610271988" y2="226.22588891474" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="626.14455031382" cy="226.22588891474" r="3.4859400418320003" stroke-width="3.4859400418320003px"/><rect x="622.658610271988" y="222.739948872908" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="591.2851498955" y="222.739948872908" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="277.55054613062" y1="191.36648849642" x2="211.31768533581197" y2="191.36648849642" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="207.83174529397996" cy="191.36648849642" r="3.4859400418320003" stroke-width="3.4859400418320003px"/><rect x="204.34580525214795" y="187.880548454588" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="242.69114571229997" y="187.880548454588" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="277.55054613062" y1="226.22588891473998" x2="211.31768533581197" y2="226.22588891473998" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="207.83174529397996" cy="226.22588891473998" r="3.4859400418320003" stroke-width="3.4859400418320003px"/><rect x="204.34580525214795" y="222.73994887290797" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="242.69114571229997" y="222.739948872908" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="277.55054613062" y1="261.08528933306" x2="211.31768533581197" y2="261.08528933306" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="207.83174529397996" cy="261.08528933306" r="3.4859400418320003" stroke-width="3.4859400418320003px"/><rect x="204.34580525214795" y="257.599349291228" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="242.69114571229997" y="257.599349291228" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="556.42574947718" y1="261.08528933306" x2="622.658610271988" y2="261.08528933306" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="626.14455031382" cy="261.08528933306" r="3.4859400418320003" stroke-width="3.4859400418320003px"/><rect x="622.658610271988" y="257.599349291228" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="591.2851498955" y="257.599349291228" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="556.42574947718" y1="191.36648849642" x2="626.14455031382" y2="191.36648849642" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="622.658610271988" y="187.880548454588" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="591.2851498955" y="187.880548454588" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">8</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="765.5821519871" y="539.089007669162" width="244.01580292824008" height="139.43760167328003" stroke-width="3.4859400418320003px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="765.5821519871" y="539.089007669162" width="244.01580292824008" height="139.43760167328003" fill="transparent"/><text class="sch-text" x="887.59005345122" y="608.8078085058021" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="31.373460376488px" transform="rotate(0, 887.59005345122, 608.8078085058021)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="765.5821519871" y1="573.948408087482" x2="695.86335115046" y2="573.948408087482" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="692.3774111086279" y="570.46246804565" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="730.72275156878" y="570.46246804565" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="765.5821519871" y1="608.8078085058021" x2="699.349291192292" y2="608.8078085058021" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="695.86335115046" cy="608.8078085058021" r="3.4859400418320003" stroke-width="3.4859400418320003px"/><rect x="692.3774111086279" y="605.3218684639701" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="730.72275156878" y="605.3218684639701" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="765.5821519871" y1="643.667208924122" x2="695.86335115046" y2="643.667208924122" stroke-width="3.4859400418320003px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="692.3774111086279" y="640.1812688822899" width="6.971880083664001" height="6.971880083664001" opacity="0"/></g><text class="pin-number sch-pin-number" x="730.72275156878" y="640.18126888229" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="26.14455031374px" transform="">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="626.14455031382" cy="295.94468975138" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="207.83174529397996" cy="295.94468975138" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="626.14455031382" cy="226.22588891474" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="207.83174529397996" cy="191.36648849642" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="207.83174529397996" cy="226.22588891473998" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="207.83174529397996" cy="261.08528933306" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="626.14455031382" cy="261.08528933306" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="626.14455031382" cy="191.36648849642" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="695.86335115046" cy="573.948408087482" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="695.86335115046" cy="608.8078085058021" r="6.971880083664001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="695.86335115046" cy="643.667208924122" r="6.971880083664001" 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="
|
|
80
|
+
M 599.8257029979884,643.6672089241221
|
|
81
|
+
L 617.2554032071484,653.0792470370685
|
|
82
|
+
L 617.2554032071484,712.8514989543478
|
|
83
|
+
L 582.3960027888284,712.8514989543478
|
|
84
|
+
L 582.3960027888284,653.0792470370685
|
|
85
|
+
Z
|
|
86
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.4859400418320003px"/><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="599.8257029979884" y="659.3539391123661" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="31.373460376488px" transform="rotate(90 599.8257029979884 659.3539391123661)">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="
|
|
87
|
+
M 643.7485475250717,156.3327910760084
|
|
88
|
+
L 626.3188473159116,146.920752963062
|
|
89
|
+
L 626.3188473159116,87.14850104578262
|
|
90
|
+
L 661.1782477342317,87.14850104578262
|
|
91
|
+
L 661.1782477342317,146.920752963062
|
|
92
|
+
Z
|
|
93
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.4859400418320003px"/><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="643.7485475250717" y="140.64606088776438" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="31.373460376488px" transform="rotate(-90 643.7485475250717 140.64606088776438)">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="
|
|
94
|
+
M 678.2593539392085,538.9147106670705
|
|
95
|
+
L 660.8296537300484,529.502672554124
|
|
96
|
+
L 660.8296537300484,469.7304206368447
|
|
97
|
+
L 695.6890541483685,469.7304206368447
|
|
98
|
+
L 695.6890541483685,529.502672554124
|
|
99
|
+
Z
|
|
100
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.4859400418320003px"/><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="678.2593539392085" y="523.2279804788265" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="31.373460376488px" transform="rotate(-90 678.2593539392085 523.2279804788265)">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="
|
|
101
|
+
M 695.86335115046,608.8078085058021
|
|
102
|
+
L 686.4513130375135,626.2375087149621
|
|
103
|
+
L 626.6790611202342,626.2375087149621
|
|
104
|
+
L 626.6790611202342,591.378108296642
|
|
105
|
+
L 686.4513130375135,591.378108296642
|
|
106
|
+
Z
|
|
107
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.4859400418320003px"/><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="680.1766209622159" y="608.8078085058021" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="31.373460376488px" transform="">XX</text>
|
|
108
|
+
</g>
|
|
109
|
+
</svg>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="-1.7999999999999998,-0.30000000000000004 1.9,-0.2" data-type="line" data-label="" points="201.92771084337352,247.46987951807228 451.566265060241,240.72289156626505" fill="none" stroke="hsl(194, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.7999999999999998,0.30000000000000004 1.9,0.2" data-type="line" data-label="" points="201.92771084337352,206.9879518072289 451.566265060241,213.73493975903614" fill="none" stroke="hsl(169, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.7999999999999998,0.30000000000000004 0.050000000000000044,0.30000000000000004 0.050000000000000044,0.2 1.9,0.2" data-type="line" data-label="" points="201.92771084337352,206.9879518072289 326.7469879518072,206.9879518072289 326.7469879518072,213.73493975903614 451.566265060241,213.73493975903614" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7999999999999998,-0.30000000000000004 -0.6,-0.30000000000000004 -0.6,0.05099999999999996 0.6,0.05099999999999996 0.6,-0.2 1.9,-0.2" data-type="line" data-label="" points="201.92771084337352,247.46987951807228 282.89156626506025,247.46987951807228 282.89156626506025,223.78795180722892 363.855421686747,223.78795180722892 363.855421686747,240.72289156626505 451.566265060241,240.72289156626505" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="0" x="39.99999999999997" y="193.49397590361446" width="161.92771084337352" height="67.46987951807228" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="3" data-y="0" x="451.566265060241" y="200.24096385542168" width="148.433734939759" height="53.97590361445782" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="0" data-y="-2" x="282.89156626506025" y="260.96385542168673" width="80.96385542168673" height="202.40963855421688" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: undefined
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="-1.2" data-y="-0.07500000000000004" x="235.66265060240966" y="217.10843373493975" width="13.493975903614484" height="30.361445783132524" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: undefined
|
|
3
5
|
globalConnNetId: connectivity_net1" data-x="-0.8749999999999999" data-y="0.525" x="257.5903614457832" y="176.6265060240964" width="13.493975903614398" height="30.361445783132524" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: SIGNAL2
|
|
4
6
|
globalConnNetId: connectivity_net3" data-x="-0.4" data-y="-0.274" x="289.6385542168675" y="230.53493975903615" width="13.493975903614455" height="30.361445783132524" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: SIGNAL1
|
|
@@ -31,7 +33,7 @@ orientation: y+" data-x="0.4" data-y="-0.5" cx="350.3614457831325" cy="260.96385
|
|
|
31
33
|
const h = svg.getElementById('crosshair-h');
|
|
32
34
|
const v = svg.getElementById('crosshair-v');
|
|
33
35
|
const coords = svg.getElementById('coordinates');
|
|
34
|
-
|
|
36
|
+
|
|
35
37
|
crosshair.style.display = 'block';
|
|
36
38
|
h.setAttribute('x1', '0');
|
|
37
39
|
h.setAttribute('x2', '640');
|
|
@@ -50,13 +52,13 @@ orientation: y+" data-x="0.4" data-y="-0.5" cx="350.3614457831325" cy="260.96385
|
|
|
50
52
|
// y' = (y - ty) / sy
|
|
51
53
|
const sx = matrix.a;
|
|
52
54
|
const sy = matrix.d;
|
|
53
|
-
const tx = matrix.e;
|
|
55
|
+
const tx = matrix.e;
|
|
54
56
|
const ty = matrix.f;
|
|
55
57
|
const realPoint = {
|
|
56
58
|
x: (x - tx) / sx,
|
|
57
59
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
58
60
|
}
|
|
59
|
-
|
|
61
|
+
|
|
60
62
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
61
63
|
coords.setAttribute('x', (x + 5).toString());
|
|
62
64
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -64,4 +66,48 @@ orientation: y+" data-x="0.4" data-y="-0.5" cx="350.3614457831325" cy="260.96385
|
|
|
64
66
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
65
67
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
66
68
|
});
|
|
67
|
-
]]></script
|
|
69
|
+
]]></script>
|
|
70
|
+
</g>
|
|
71
|
+
<g transform="translate(1216, 200)">
|
|
72
|
+
<style>
|
|
73
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
74
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
75
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
76
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
77
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
78
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
79
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
80
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
81
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
82
|
+
|
|
83
|
+
</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 400.00000000006 199.79555555561 L 646.666666666665 199.79555555561 L 646.666666666665 213.12888888894 L 893.33333333327 213.12888888894" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.333333333328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 400.00000000006 199.79555555561 L 646.666666666665 199.79555555561 L 646.666666666665 213.12888888894 L 893.33333333327 213.12888888894" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.666666666666px" 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 400.00000000006 279.79555555559 L 560.00000000002 279.79555555559 L 560.00000000002 232.9955555556017 L 719.99999999998 232.9955555556017 L 719.99999999998 266.46222222226 L 893.33333333327 266.46222222226" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.333333333328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 400.00000000006 279.79555555559 L 560.00000000002 279.79555555559 L 560.00000000002 232.9955555556017 L 719.99999999998 232.9955555556017 L 719.99999999998 266.46222222226 L 893.33333333327 266.46222222226" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.666666666666px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="133.33333333345996" y="173.12888888895" width="213.33333333328005" height="133.33333333330003" stroke-width="2.666666666666px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="133.33333333345996" y="173.12888888895" width="213.33333333328005" height="133.33333333330003" fill="transparent"/><text class="sch-text" x="240.0000000001" y="239.7955555556" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.999999999994px" transform="rotate(0, 240.0000000001, 239.7955555556)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="279.79555555559" x2="400.00000000006" y2="279.79555555559" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="397.333333333394" y="277.128888888924" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="277.128888888924" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="279.79555555559" x2="82.6666666668059" y2="279.79555555559" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="279.79555555559" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="277.128888888924" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="277.128888888924" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="226.46222222227001" x2="397.333333333394" y2="226.46222222227001" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="400.00000000006" cy="226.46222222227001" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="397.333333333394" y="223.795555555604" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="223.795555555604" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="199.79555555561" x2="82.6666666668059" y2="199.79555555561" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="199.79555555561" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="197.128888888944" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="197.128888888944" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="226.46222222227" x2="82.6666666668059" y2="226.46222222227" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="226.46222222227" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="223.79555555560398" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="223.795555555604" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="253.12888888893" x2="82.6666666668059" y2="253.12888888893" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="253.12888888893" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="250.462222222264" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="250.462222222264" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="253.12888888893002" x2="397.333333333394" y2="253.12888888893002" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="400.00000000006" cy="253.12888888893002" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="397.333333333394" y="250.46222222226402" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="250.46222222226402" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="199.79555555561" x2="400.00000000006" y2="199.79555555561" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="397.333333333394" y="197.128888888944" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="197.128888888944" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">8</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="946.66666666659" y="186.46222222228" width="186.66666666662002" height="106.66666666664003" stroke-width="2.666666666666px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="946.66666666659" y="186.46222222228" width="186.66666666662002" height="106.66666666664003" fill="transparent"/><text class="sch-text" x="1039.9999999999" y="239.7955555556" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.999999999994px" transform="rotate(0, 1039.9999999999, 239.7955555556)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="946.66666666659" y1="213.12888888894" x2="893.33333333327" y2="213.12888888894" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="890.6666666666041" y="210.462222222274" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="919.99999999993" y="210.462222222274" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="946.66666666659" y1="239.7955555556" x2="895.999999999936" y2="239.7955555556" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="893.33333333327" cy="239.7955555556" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="890.6666666666041" y="237.128888888934" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="919.99999999993" y="237.128888888934" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="946.66666666659" y1="266.46222222226" x2="893.33333333327" y2="266.46222222226" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="890.6666666666041" y="263.795555555594" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="919.99999999993" y="263.795555555594" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">3</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="613.33333333334" y="359.79555555557" width="53.33333333332007" height="293.33333333326004" stroke-width="2.666666666666px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="613.33333333334" y="359.79555555557" width="53.33333333332007" height="293.33333333326004" fill="transparent"/><text class="sch-text" x="640" y="506.4622222222" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.999999999994px" transform="rotate(0, 640, 506.4622222222)">U2</text><line class="component-pin sch-component-pin sch-port-line" x1="586.66666666668" y1="359.79555555557" x2="586.66666666668" y2="309.128888888916" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="586.66666666668" cy="306.46222222225003" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="584.0000000000141" y="303.79555555558403" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="584.000000000014" y="333.12888888891" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="rotate(-90 584.000000000014 333.12888888891)">1</text><line class="component-pin sch-component-pin sch-port-line" x1="693.33333333332" y1="359.79555555557" x2="693.33333333332" y2="309.128888888916" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="693.33333333332" cy="306.46222222225003" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="690.666666666654" y="303.79555555558403" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="690.666666666654" y="333.12888888891" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="rotate(-90 690.666666666654 333.12888888891)">2</text><line class="component-pin sch-component-pin sch-port-line" x1="613.33333333334" y1="613.12888888884" x2="562.666666666686" y2="613.12888888884" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_2_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="560.00000000002" cy="613.12888888884" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="557.3333333333541" y="610.4622222221741" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="586.66666666668" y="610.462222222174" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="666.66666666666" y1="613.12888888884" x2="717.333333333314" y2="613.12888888884" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_2_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="719.99999999998" cy="613.12888888884" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="717.333333333314" y="610.4622222221741" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="693.33333333332" y="610.462222222174" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">4</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="400.00000000006" cy="279.79555555559" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="80.00000000013995" cy="279.79555555559" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="400.00000000006" cy="226.46222222227001" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="80.00000000013995" cy="199.79555555561" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="80.00000000013995" cy="226.46222222227" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="80.00000000013995" cy="253.12888888893" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="400.00000000006" cy="253.12888888893002" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="400.00000000006" cy="199.79555555561" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="893.33333333327" cy="213.12888888894" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="893.33333333327" cy="239.7955555556" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="893.33333333327" cy="266.46222222226" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="586.66666666668" cy="306.46222222225003" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="693.33333333332" cy="306.46222222225003" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_2__stack1"><circle cx="560.00000000002" cy="613.12888888884" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_3__stack1"><circle cx="719.99999999998" cy="613.12888888884" r="5.333333333332" 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="
|
|
84
|
+
M 480.00000000004,279.79555555559
|
|
85
|
+
L 466.66666666671,272.5955555555918
|
|
86
|
+
L 466.66666666671,226.8711111111588
|
|
87
|
+
L 493.33333333337004,226.8711111111588
|
|
88
|
+
L 493.33333333337004,272.5955555555918
|
|
89
|
+
Z
|
|
90
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="480.00000000004" y="267.795555555593" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(-90 480.00000000004 267.795555555593)">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="
|
|
91
|
+
M 523.3333333333625,199.79555555561
|
|
92
|
+
L 510.00000000003246,192.5955555556118
|
|
93
|
+
L 510.00000000003246,146.8711111111788
|
|
94
|
+
L 536.6666666666924,146.8711111111788
|
|
95
|
+
L 536.6666666666924,192.5955555556118
|
|
96
|
+
Z
|
|
97
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="523.3333333333625" y="187.79555555561302" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(-90 523.3333333333625 187.79555555561302)">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="
|
|
98
|
+
M 586.66666666668,306.46222222225003
|
|
99
|
+
L 573.3333333333501,299.2622222222518
|
|
100
|
+
L 573.3333333333501,253.53777777781883
|
|
101
|
+
L 600.00000000001,253.53777777781883
|
|
102
|
+
L 600.00000000001,299.2622222222518
|
|
103
|
+
Z
|
|
104
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="586.66666666668" y="294.46222222225305" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(-90 586.66666666668 294.46222222225305)">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="
|
|
105
|
+
M 693.33333333332,306.46222222225003
|
|
106
|
+
L 679.99999999999,299.2622222222518
|
|
107
|
+
L 679.99999999999,253.53777777781883
|
|
108
|
+
L 706.6666666666499,253.53777777781883
|
|
109
|
+
L 706.6666666666499,299.2622222222518
|
|
110
|
+
Z
|
|
111
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="693.33333333332" y="294.46222222225305" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(-90 693.33333333332 294.46222222225305)">XX</text>
|
|
112
|
+
</g>
|
|
113
|
+
</svg>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="-1.7999999999999998,-0.30000000000000004 1.9,-0.2" data-type="line" data-label="" points="201.92771084337352,365.5421686746988 451.566265060241,358.7951807228916" fill="none" stroke="hsl(328, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.9,0.2 -1.7999999999999998,0.09999999999999998" data-type="line" data-label="" points="451.566265060241,331.8072289156627 201.92771084337352,338.5542168674699" fill="none" stroke="hsl(210, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7999999999999998,-0.30000000000000004 0.050000000000000044,-0.30000000000000004 0.050000000000000044,-0.2 1.9,-0.2" data-type="line" data-label="" points="201.92771084337352,365.5421686746988 326.7469879518072,365.5421686746988 326.7469879518072,358.7951807228916 451.566265060241,358.7951807228916" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.9,0.2 0.6,0.2 0.6,-0.05099999999999996 -0.6,-0.05099999999999996 -0.6,0.09999999999999998 -1.7999999999999998,0.09999999999999998" data-type="line" data-label="" points="451.566265060241,331.8072289156627 363.855421686747,331.8072289156627 363.855421686747,348.7421686746988 282.89156626506025,348.7421686746988 282.89156626506025,338.5542168674699 201.92771084337352,338.5542168674699" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="0" x="39.99999999999997" y="311.566265060241" width="161.92771084337352" height="67.46987951807228" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="3" data-y="0" x="451.566265060241" y="318.3132530120482" width="148.433734939759" height="53.97590361445782" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="0" data-y="1" x="289.6385542168675" y="244.09638554216872" width="67.46987951807228" height="67.4698795180723" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: SSH
|
|
2
4
|
globalConnNetId: connectivity_net2" data-x="-0.8749999999999999" data-y="-0.525" x="257.5903614457832" y="365.5421686746988" width="13.493975903614398" height="30.361445783132524" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: BHH
|
|
3
5
|
globalConnNetId: connectivity_net3" data-x="1.25" data-y="0.42500000000000004" x="400.96385542168673" y="301.4457831325301" width="13.493975903614455" height="30.361445783132524" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: SIGNAL1
|
|
4
6
|
globalConnNetId: connectivity_net0" data-x="-0.4" data-y="0.274" x="289.6385542168675" y="311.63373493975905" width="13.493975903614455" height="30.361445783132524" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01482142857142857"/></g><g><rect data-type="rect" data-label="netId: SIGNAL2
|
|
@@ -29,7 +31,7 @@ orientation: y-" data-x="0.4" data-y="0.5" cx="350.3614457831325" cy="311.566265
|
|
|
29
31
|
const h = svg.getElementById('crosshair-h');
|
|
30
32
|
const v = svg.getElementById('crosshair-v');
|
|
31
33
|
const coords = svg.getElementById('coordinates');
|
|
32
|
-
|
|
34
|
+
|
|
33
35
|
crosshair.style.display = 'block';
|
|
34
36
|
h.setAttribute('x1', '0');
|
|
35
37
|
h.setAttribute('x2', '640');
|
|
@@ -48,13 +50,13 @@ orientation: y-" data-x="0.4" data-y="0.5" cx="350.3614457831325" cy="311.566265
|
|
|
48
50
|
// y' = (y - ty) / sy
|
|
49
51
|
const sx = matrix.a;
|
|
50
52
|
const sy = matrix.d;
|
|
51
|
-
const tx = matrix.e;
|
|
53
|
+
const tx = matrix.e;
|
|
52
54
|
const ty = matrix.f;
|
|
53
55
|
const realPoint = {
|
|
54
56
|
x: (x - tx) / sx,
|
|
55
57
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
56
58
|
}
|
|
57
|
-
|
|
59
|
+
|
|
58
60
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
59
61
|
coords.setAttribute('x', (x + 5).toString());
|
|
60
62
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -62,4 +64,48 @@ orientation: y-" data-x="0.4" data-y="0.5" cx="350.3614457831325" cy="311.566265
|
|
|
62
64
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
63
65
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
64
66
|
});
|
|
65
|
-
]]></script
|
|
67
|
+
]]></script>
|
|
68
|
+
</g>
|
|
69
|
+
<g transform="translate(1216, 200)">
|
|
70
|
+
<style>
|
|
71
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
72
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
73
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
74
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
75
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
76
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
77
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
78
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
79
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
80
|
+
|
|
81
|
+
</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 400.00000000006 466.87111111109 L 646.666666666665 466.87111111109 L 646.666666666665 453.53777777775997 L 893.33333333327 453.53777777775997" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.333333333328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 400.00000000006 466.87111111109 L 646.666666666665 466.87111111109 L 646.666666666665 453.53777777775997 L 893.33333333327 453.53777777775997" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.666666666666px" 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 893.33333333327 400.20444444444 L 719.99999999998 400.20444444444 L 719.99999999998 433.6711111110983 L 560.00000000002 433.6711111110983 L 560.00000000002 413.53777777777 L 400.00000000006 413.53777777777" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="21.333333333328px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 893.33333333327 400.20444444444 L 719.99999999998 400.20444444444 L 719.99999999998 433.6711111110983 L 560.00000000002 433.6711111110983 L 560.00000000002 413.53777777777 L 400.00000000006 413.53777777777" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.666666666666px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="133.33333333345996" y="360.20444444445" width="213.33333333328005" height="133.33333333329995" stroke-width="2.666666666666px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="133.33333333345996" y="360.20444444445" width="213.33333333328005" height="133.33333333329995" fill="transparent"/><text class="sch-text" x="240.0000000001" y="426.8711111111" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.999999999994px" transform="rotate(0, 240.0000000001, 426.8711111111)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="466.87111111109" x2="400.00000000006" y2="466.87111111109" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="397.333333333394" y="464.204444444424" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="464.204444444424" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="466.87111111109" x2="82.6666666668059" y2="466.87111111109" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="466.87111111109" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="464.204444444424" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="464.204444444424" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="413.53777777777" x2="400.00000000006" y2="413.53777777777" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="397.333333333394" y="410.87111111110397" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="410.87111111110397" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="386.87111111111" x2="82.6666666668059" y2="386.87111111111" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="386.87111111111" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="384.204444444444" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="384.204444444444" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="413.53777777777" x2="82.6666666668059" y2="413.53777777777" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="413.53777777777" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="410.87111111110397" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="410.87111111110397" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="133.33333333345996" y1="440.20444444443" x2="82.6666666668059" y2="440.20444444443" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="80.00000000013995" cy="440.20444444443" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="77.33333333347395" y="437.537777777764" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="106.66666666679998" y="437.537777777764" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="440.20444444443" x2="397.333333333394" y2="440.20444444443" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="400.00000000006" cy="440.20444444443" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="397.333333333394" y="437.537777777764" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="437.537777777764" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="346.66666666674" y1="386.87111111111" x2="397.333333333394" y2="386.87111111111" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="400.00000000006" cy="386.87111111111" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="397.333333333394" y="384.204444444444" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="373.33333333340005" y="384.204444444444" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">8</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="946.66666666659" y="373.53777777778" width="186.66666666662002" height="106.66666666664003" stroke-width="2.666666666666px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="946.66666666659" y="373.53777777778" width="186.66666666662002" height="106.66666666664003" fill="transparent"/><text class="sch-text" x="1039.9999999999" y="426.8711111111" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.999999999994px" transform="rotate(0, 1039.9999999999, 426.8711111111)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="946.66666666659" y1="400.20444444444" x2="893.33333333327" y2="400.20444444444" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="890.6666666666041" y="397.537777777774" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="919.99999999993" y="397.537777777774" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="946.66666666659" y1="426.8711111111" x2="895.999999999936" y2="426.8711111111" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="893.33333333327" cy="426.8711111111" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="890.6666666666041" y="424.204444444434" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="919.99999999993" y="424.204444444434" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="946.66666666659" y1="453.53777777775997" x2="893.33333333327" y2="453.53777777775997" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="890.6666666666041" y="450.87111111109397" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="919.99999999993" y="450.871111111094" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="">3</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="573.33333333335" y="280.20444444446997" width="133.33333333330006" height="26.666666666660035" stroke-width="2.666666666666px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="573.33333333335" y="280.20444444446997" width="133.33333333330006" height="26.666666666660035" fill="transparent"/><text class="sch-text" x="640" y="293.5377777778" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="23.999999999994px" transform="rotate(0, 640, 293.5377777778)">U2</text><line class="component-pin sch-component-pin sch-port-line" x1="586.66666666668" y1="306.87111111113" x2="586.66666666668" y2="357.53777777778396" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="586.66666666668" cy="360.20444444445" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="584.0000000000141" y="357.537777777784" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="584.000000000014" y="333.53777777779" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="rotate(-90 584.000000000014 333.53777777779)">3</text><line class="component-pin sch-component-pin sch-port-line" x1="693.33333333332" y1="306.87111111113" x2="693.33333333332" y2="357.53777777778396" stroke-width="2.666666666666px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="693.33333333332" cy="360.20444444445" r="2.666666666666" stroke-width="2.666666666666px"/><rect x="690.666666666654" y="357.537777777784" width="5.333333333332" height="5.333333333332" opacity="0"/></g><text class="pin-number sch-pin-number" x="690.666666666654" y="333.53777777779" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="19.999999999995px" transform="rotate(-90 690.666666666654 333.53777777779)">4</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="400.00000000006" cy="466.87111111109" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="80.00000000013995" cy="466.87111111109" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="400.00000000006" cy="413.53777777777" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="80.00000000013995" cy="386.87111111111" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="80.00000000013995" cy="413.53777777777" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="80.00000000013995" cy="440.20444444443" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="400.00000000006" cy="440.20444444443" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="400.00000000006" cy="386.87111111111" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="893.33333333327" cy="400.20444444444" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="893.33333333327" cy="426.8711111111" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="893.33333333327" cy="453.53777777775997" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="586.66666666668" cy="360.20444444445" r="5.333333333332" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="693.33333333332" cy="360.20444444445" r="5.333333333332" 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="
|
|
82
|
+
M 523.3333333333625,466.87111111109
|
|
83
|
+
L 536.6666666666924,474.0711111110882
|
|
84
|
+
L 536.6666666666924,519.7955555555212
|
|
85
|
+
L 510.00000000003246,519.7955555555212
|
|
86
|
+
L 510.00000000003246,474.0711111110882
|
|
87
|
+
Z
|
|
88
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="523.3333333333625" y="478.871111111087" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(90 523.3333333333625 478.871111111087)">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="
|
|
89
|
+
M 806.666666666625,400.20444444444
|
|
90
|
+
L 793.3333333332951,393.0044444444418
|
|
91
|
+
L 793.3333333332951,347.2800000000088
|
|
92
|
+
L 819.999999999955,347.2800000000088
|
|
93
|
+
L 819.999999999955,393.0044444444418
|
|
94
|
+
Z
|
|
95
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="806.666666666625" y="388.204444444443" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(-90 806.666666666625 388.204444444443)">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="
|
|
96
|
+
M 586.66666666668,360.20444444445
|
|
97
|
+
L 600.00000000001,367.40444444444825
|
|
98
|
+
L 600.00000000001,413.12888888888125
|
|
99
|
+
L 573.3333333333501,413.12888888888125
|
|
100
|
+
L 573.3333333333501,367.40444444444825
|
|
101
|
+
Z
|
|
102
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="586.66666666668" y="372.204444444447" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(90 586.66666666668 372.204444444447)">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="
|
|
103
|
+
M 693.33333333332,360.20444444445
|
|
104
|
+
L 706.6666666666499,367.40444444444825
|
|
105
|
+
L 706.6666666666499,413.12888888888125
|
|
106
|
+
L 679.99999999999,413.12888888888125
|
|
107
|
+
L 679.99999999999,367.40444444444825
|
|
108
|
+
Z
|
|
109
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.666666666666px"/><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="693.33333333332" y="372.204444444447" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="23.999999999994px" transform="rotate(90 693.33333333332 372.204444444447)">XX</text>
|
|
110
|
+
</g>
|
|
111
|
+
</svg>
|