@tscircuit/schematic-trace-solver 0.0.149 → 0.0.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/schematic-trace-visualization/SKILL.md +7 -2
- package/dist/index.d.ts +28 -1
- package/dist/index.js +26 -4
- package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +14 -4
- package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +17 -1
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +2 -0
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +2 -0
- package/lib/types/InputProblem.ts +27 -1
- package/package.json +8 -1
- package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +751 -5
- package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +660 -5
- package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +44 -5
- package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +394 -5
- package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +170 -5
- package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +79 -5
- package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +219 -5
- package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +65 -5
- package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +142 -5
- package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +100 -5
- package/tests/bug-reports/bug-report-20260708T053736Z/__snapshots__/bug-report-20260708T053736Z.snap.svg +23 -5
- package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +58 -5
- package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +86 -5
- package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +226 -5
- package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +191 -5
- package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +30 -5
- package/tests/bug-reports/bug-report-20260717T042845Z/__snapshots__/bug-report-20260717T042845Z.snap.svg +37 -5
- package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +580 -2
- package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +44 -5
- package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +107 -5
- package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +114 -5
- package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +121 -5
- package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +51 -5
- package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +212 -5
- package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +569 -5
- package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +37 -5
- package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +289 -5
- package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +289 -5
- package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +149 -5
- package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +93 -5
- package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +79 -5
- package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +244 -2
- package/tests/examples/__snapshots__/example01.snap.svg +44 -5
- package/tests/examples/__snapshots__/example02.snap.svg +51 -5
- package/tests/examples/__snapshots__/example03.snap.svg +86 -5
- package/tests/examples/__snapshots__/example04.snap.svg +30 -5
- package/tests/examples/__snapshots__/example05.snap.svg +30 -5
- package/tests/examples/__snapshots__/example06.snap.svg +30 -5
- package/tests/examples/__snapshots__/example07.snap.svg +58 -5
- package/tests/examples/__snapshots__/example08.snap.svg +37 -5
- package/tests/examples/__snapshots__/example09.snap.svg +149 -5
- package/tests/examples/__snapshots__/example10.snap.svg +65 -5
- package/tests/examples/__snapshots__/example11.snap.svg +51 -5
- package/tests/examples/__snapshots__/example12.snap.svg +51 -5
- package/tests/examples/__snapshots__/example13.snap.svg +72 -5
- package/tests/examples/__snapshots__/example14.snap.svg +79 -5
- package/tests/examples/__snapshots__/example15.snap.svg +86 -5
- package/tests/examples/__snapshots__/example16.snap.svg +51 -5
- package/tests/examples/__snapshots__/example17.snap.svg +51 -5
- package/tests/examples/__snapshots__/example18.snap.svg +58 -5
- package/tests/examples/__snapshots__/example19.snap.svg +44 -5
- package/tests/examples/__snapshots__/example20.snap.svg +44 -5
- package/tests/examples/__snapshots__/example21.snap.svg +72 -5
- package/tests/examples/__snapshots__/example22.snap.svg +51 -5
- package/tests/examples/__snapshots__/example23.snap.svg +51 -5
- package/tests/examples/__snapshots__/example24.snap.svg +51 -5
- package/tests/examples/__snapshots__/example25.snap.svg +86 -5
- package/tests/examples/__snapshots__/example26.snap.svg +51 -5
- package/tests/examples/__snapshots__/example27.snap.svg +72 -5
- package/tests/examples/__snapshots__/example28.snap.svg +44 -5
- package/tests/examples/__snapshots__/example29.snap.svg +324 -5
- package/tests/examples/__snapshots__/example30.snap.svg +107 -5
- package/tests/examples/__snapshots__/example31.snap.svg +37 -5
- package/tests/examples/__snapshots__/example32.snap.svg +149 -5
- package/tests/examples/__snapshots__/example33.snap.svg +93 -5
- package/tests/examples/__snapshots__/example34.snap.svg +51 -5
- package/tests/examples/__snapshots__/example35.snap.svg +58 -5
- package/tests/examples/__snapshots__/example36.snap.svg +44 -5
- package/tests/examples/__snapshots__/example37.snap.svg +72 -5
- package/tests/examples/__snapshots__/example38.snap.svg +30 -5
- package/tests/examples/__snapshots__/example39.snap.svg +37 -5
- package/tests/examples/__snapshots__/example40.snap.svg +100 -5
- package/tests/examples/__snapshots__/example41.snap.svg +44 -5
- package/tests/examples/__snapshots__/example42.snap.svg +65 -5
- package/tests/examples/__snapshots__/example43.snap.svg +58 -5
- package/tests/examples/__snapshots__/example44.snap.svg +107 -5
- package/tests/examples/__snapshots__/example45.snap.svg +51 -5
- package/tests/examples/__snapshots__/example46.snap.svg +93 -5
- package/tests/examples/__snapshots__/example47.snap.svg +93 -5
- package/tests/examples/__snapshots__/example48.snap.svg +65 -5
- package/tests/examples/__snapshots__/example49.snap.svg +177 -5
- package/tests/examples/__snapshots__/example50.snap.svg +93 -5
- package/tests/examples/__snapshots__/example51.snap.svg +590 -5
- package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +219 -0
- package/tests/fixtures/convertSolverOutputToCircuitJson.ts +1058 -0
- package/tests/fixtures/matcher.ts +45 -8
- package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +762 -2
- package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +111 -2
- package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +167 -2
- package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +65 -5
- package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +30 -5
- package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +79 -5
- package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +65 -5
- package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +149 -5
- package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +55 -2
- package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +160 -2
- package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +135 -5
- package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +69 -2
- package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +86 -5
- package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +335 -2
- package/tests/repros/__snapshots__/repro-ground-label-on-lower-rail-end.snap.svg +48 -2
- package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +149 -5
- package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +72 -5
- package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +100 -5
- package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +90 -2
- package/tests/repros/__snapshots__/repro-power-group-rail-labels.snap.svg +37 -5
- package/tests/repros/__snapshots__/repro-rectifier-trace-overlap.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +237 -2
- package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +72 -5
- package/tests/repros/__snapshots__/repro-rp2040-v3v3-label-placement.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +79 -5
- package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +27 -2
- package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1150 -5
- package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-type-c-vbus-led-ground-label.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +685 -2
- package/tests/repros/__snapshots__/repro-vcc-pin1-detour.snap.svg +27 -2
- package/tests/repros/__snapshots__/repro129-host-custom-symbol-passives.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +100 -5
- package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +107 -5
- package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +104 -2
- package/tests/repros/__snapshots__/repro5-escape-padded-text-obstacles.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +65 -5
- package/tests/repros/__snapshots__/repro84-stacked-gnd-label-orientation.snap.svg +27 -2
- package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +58 -5
- package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +37 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/fallback-net-label-width.snap.svg +25 -7
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-anchored-label-clearance.snap.svg +34 -2
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-port-stub.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-two-pin-net.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label01.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/terminal-stub-trace-clearance.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
- package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +23 -5
- package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_repro47-short-opposing-pins.snap.svg +20 -2
- package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +44 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +79 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +44 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +23 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +30 -5
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="-1.95,-6.6 1.5225,-8.5" data-type="line" data-label="" points="126.01684717208184,234.3200962695547 460.31287605294824,417.23225030084234" fill="none" stroke="hsl(154, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-0.8499999999999999,-6.6 -1.5225,-8.700000000000001" data-type="line" data-label="" points="231.91335740072202,234.3200962695547 167.17208182912154,436.4861612515043" fill="none" stroke="hsl(172, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.95,-6.6 -2.0509999999999997,-6.6 -2.0509999999999997,-6.198999999999999" data-type="line" data-label="" points="126.01684717208184,234.3200962695547 116.29362214199762,234.3200962695547 116.29362214199762,195.71600481347764" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.5225,-8.5 2.8735000000000004,-8.5 2.8735000000000004,-7.9990000000000006" data-type="line" data-label="" points="460.31287605294824,417.23225030084234 590.3730445246691,417.23225030084234 590.3730445246691,369.0012033694345" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.5225,-8.700000000000001 1.6235,-8.700000000000001 1.6235,-8.901" data-type="line" data-label="" points="460.31287605294824,436.4861612515043 470.03610108303246,436.4861612515043 470.03610108303246,455.8363417569194" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-1.4" data-y="-6.6" x="126.01684717208184" y="196.82740312876052" width="105.89651022864018" height="74.98538628158838" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010387500000000001"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="-8.4" x="167.17208182912157" y="359.47051744885687" width="293.1407942238267" height="96.2695547533092" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010387500000000001"/></g><g><rect data-type="rect" data-label="netId: V3V3
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="-2.0509999999999997" data-y="-5.898999999999999" x="106.66666666666667" y="137.95427196149217" width="19.25391095066189" height="57.76173285198547" fill="#ef444466" stroke="#ef4444" stroke-width="0.010387500000000001"/></g><g><rect data-type="rect" data-label="netId: V3V3
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="2.8735000000000004" data-y="-7.699000000000001" x="580.7460890493383" y="311.239470517449" width="19.253910950661748" height="57.761732851985585" fill="#ef444466" stroke="#ef4444" stroke-width="0.010387500000000001"/></g><g><rect data-type="rect" data-label="netId: QSPI_CS
|
|
4
6
|
globalConnNetId: connectivity_net1" data-x="-0.3689999999999999" data-y="-6.6" x="232.00962695547537" y="224.69314079422384" width="92.41877256317684" height="19.253910950661748" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010387500000000001"/></g><g><rect data-type="rect" data-label="netId: QSPI_CS
|
|
@@ -38,7 +40,7 @@ orientation: y-" data-x="1.6235" data-y="-8.901" cx="470.03610108303246" cy="455
|
|
|
38
40
|
const h = svg.getElementById('crosshair-h');
|
|
39
41
|
const v = svg.getElementById('crosshair-v');
|
|
40
42
|
const coords = svg.getElementById('coordinates');
|
|
41
|
-
|
|
43
|
+
|
|
42
44
|
crosshair.style.display = 'block';
|
|
43
45
|
h.setAttribute('x1', '0');
|
|
44
46
|
h.setAttribute('x2', '640');
|
|
@@ -57,13 +59,13 @@ orientation: y-" data-x="1.6235" data-y="-8.901" cx="470.03610108303246" cy="455
|
|
|
57
59
|
// y' = (y - ty) / sy
|
|
58
60
|
const sx = matrix.a;
|
|
59
61
|
const sy = matrix.d;
|
|
60
|
-
const tx = matrix.e;
|
|
62
|
+
const tx = matrix.e;
|
|
61
63
|
const ty = matrix.f;
|
|
62
64
|
const realPoint = {
|
|
63
65
|
x: (x - tx) / sx,
|
|
64
66
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
65
67
|
}
|
|
66
|
-
|
|
68
|
+
|
|
67
69
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
68
70
|
coords.setAttribute('x', (x + 5).toString());
|
|
69
71
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -71,4 +73,90 @@ orientation: y-" data-x="1.6235" data-y="-8.901" cx="470.03610108303246" cy="455
|
|
|
71
73
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
72
74
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
73
75
|
});
|
|
74
|
-
]]></script
|
|
76
|
+
]]></script>
|
|
77
|
+
</g>
|
|
78
|
+
<g transform="translate(1216, 200)">
|
|
79
|
+
<style>
|
|
80
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
81
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
82
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
83
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
84
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
85
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
86
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
87
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
88
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
89
|
+
|
|
90
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 268.802596116905 252.93438204695997 L 252.13684615816095 252.93438204695997 L 252.13684615816095 186.7664044879857" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.401188053456px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 268.802596116905 252.93438204695997 L 252.13684615816095 252.93438204695997 L 252.13684615816095 186.7664044879857" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.300148506682px" 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 841.7908805895672 566.4484901817499 L 1064.7159122159364 566.4484901817499 L 1064.7159122159364 483.779770089366" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.401188053456px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 841.7908805895672 566.4484901817499 L 1064.7159122159364 566.4484901817499 L 1064.7159122159364 483.779770089366" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.300148506682px" 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 841.7908805895672 599.44997524857 L 858.4566305483113 599.44997524857 L 858.4566305483113 632.616467740724" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.401188053456px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 841.7908805895672 599.44997524857 L 858.4566305483113 599.44997524857 L 858.4566305483113 632.616467740724" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.300148506682px" 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-overlay sch-component-overlay" x="268.802596116905" y="228.7393432702209" width="181.50816786751" height="48.390077553478136" fill="transparent"/><path class="sch-component-symbol-path" d="M 268.802596116905 252.93438204695997 L 299.06000770041896 252.93438204695997" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.300148506682px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 420.0533524009011 252.93438204695997 L 450.310763984415 252.93438204695997" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.300148506682px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 299.06000770041896 228.7393432702209 L 420.0533524009011 228.7393432702209 L 420.0533524009011 277.12942082369904 L 299.06000770041896 277.12942082369904 L 299.06000770041896 228.7393432702209" stroke="rgb(132, 0, 0)" fill="none" stroke-width="3.300148506682px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="359.55668005066" y="204.5322039489573" stroke="rgb(245, 241, 237)" stroke-width="3.300148506682px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="29.701336560137996px">R7</text><text class="sch-component-text" x="359.55668005066" y="301.3365601449626" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="29.701336560137996px"></text><circle class="component-pin sch-component-pin" cx="450.310763984415" cy="252.93438204695997" r="3.300148506682px" stroke-width="3.300148506682px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="405.34624058087275" y="467.44403498129" width="370.44166987505446" height="165.00742533409993" stroke-width="3.300148506682px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="405.34624058087275" y="467.44403498129" width="370.44166987505446" height="165.00742533409993" fill="transparent"/><text class="sch-text" x="590.5670755184" y="549.9477476483399" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.701336560137996px" transform="rotate(0, 590.5670755184, 549.9477476483399)">U5</text><line class="component-pin sch-component-pin sch-port-line" x1="405.34624058087275" y1="500.44552004810987" x2="342.64341895391476" y2="500.44552004810987" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="339.3432704472327" cy="500.44552004810987" r="3.300148506682" stroke-width="3.300148506682px"/><rect x="336.04312194055075" y="497.1453715414279" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="372.34475551405274" y="497.14537154142783" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="405.34624058087275" y1="533.44700511493" x2="342.64341895391476" y2="533.44700511493" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="339.3432704472327" cy="533.44700511493" r="3.300148506682" stroke-width="3.300148506682px"/><rect x="336.04312194055075" y="530.146856608248" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="372.34475551405274" y="530.1468566082482" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="405.34624058087275" y1="566.4484901817499" x2="342.64341895391476" y2="566.4484901817499" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="339.3432704472327" cy="566.4484901817499" r="3.300148506682" stroke-width="3.300148506682px"/><rect x="336.04312194055075" y="563.1483416750679" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="372.34475551405274" y="563.1483416750681" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="405.34624058087275" y1="599.44997524857" x2="342.64341895391476" y2="599.44997524857" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="339.3432704472327" cy="599.44997524857" r="3.300148506682" stroke-width="3.300148506682px"/><rect x="336.04312194055075" y="596.149826741888" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="372.34475551405274" y="596.1498267418882" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="775.7879104559272" y1="500.44552004810987" x2="838.4907320828852" y2="500.44552004810987" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="841.7908805895672" cy="500.44552004810987" r="3.300148506682" stroke-width="3.300148506682px"/><rect x="838.4907320828852" y="497.1453715414279" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="808.7893955227472" y="497.14537154142783" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="775.7879104559272" y1="533.44700511493" x2="838.4907320828852" y2="533.44700511493" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="841.7908805895672" cy="533.44700511493" r="3.300148506682" stroke-width="3.300148506682px"/><rect x="838.4907320828852" y="530.146856608248" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="808.7893955227472" y="530.1468566082482" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="775.7879104559272" y1="599.44997524857" x2="841.7908805895672" y2="599.44997524857" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_6__stack1"><rect x="838.4907320828852" y="596.149826741888" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="808.7893955227472" y="596.1498267418882" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="775.7879104559272" y1="566.4484901817499" x2="841.7908805895672" y2="566.4484901817499" stroke-width="3.300148506682px"/><g class="sch-port" data-schematic-port-id="source_port_1_7__stack1"><rect x="838.4907320828852" y="563.1483416750679" width="6.600297013364" height="6.600297013364" opacity="0"/></g><text class="pin-number sch-pin-number" x="808.7893955227472" y="563.1483416750681" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.751113800114997px" transform="">8</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="310.05445245043" cy="252.93438204695997" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="491.56262031794" cy="252.93438204695997" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="339.3432704472327" cy="500.44552004810987" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="339.3432704472327" cy="533.44700511493" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="339.3432704472327" cy="566.4484901817499" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_3__stack1"><circle cx="339.3432704472327" cy="599.44997524857" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_4__stack1"><circle cx="841.7908805895672" cy="500.44552004810987" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_5__stack1"><circle cx="841.7908805895672" cy="533.44700511493" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_6__stack1"><circle cx="841.7908805895672" cy="599.44997524857" r="6.600297013364" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_7__stack1"><circle cx="841.7908805895672" cy="566.4484901817499" r="6.600297013364" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
91
|
+
M 252.13684615816095,186.7664044879857
|
|
92
|
+
L 235.63610362475094,177.8560035199443
|
|
93
|
+
L 235.63610362475094,82.50371266687908
|
|
94
|
+
L 268.63758869157095,82.50371266687908
|
|
95
|
+
L 268.63758869157095,177.85600351994432
|
|
96
|
+
Z
|
|
97
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><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="252.13684615816095" y="171.91573620791672" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="rotate(-90 252.13684615816095 171.91573620791672)">XXXX</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="
|
|
98
|
+
M 1064.7159122159364,483.779770089366
|
|
99
|
+
L 1048.2151696825265,474.8693691213246
|
|
100
|
+
L 1048.2151696825265,379.5170782682594
|
|
101
|
+
L 1081.2166547493464,379.5170782682594
|
|
102
|
+
L 1081.2166547493464,474.8693691213246
|
|
103
|
+
Z
|
|
104
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><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="1064.7159122159364" y="468.92910180929704" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="rotate(-90 1064.7159122159364 468.92910180929704)">XXXX</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="
|
|
105
|
+
M 450.31076398441496,252.93438204695997
|
|
106
|
+
L 459.2211649524564,236.43363951354996
|
|
107
|
+
L 612.7220724932583,236.43363951354996
|
|
108
|
+
L 612.7220724932583,269.43512458037
|
|
109
|
+
L 459.2211649524564,269.43512458037
|
|
110
|
+
Z
|
|
111
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><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="465.16143226448395" y="252.93438204695997" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="">XXXXXXX</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="
|
|
112
|
+
M 339.3432704472327,599.44997524857
|
|
113
|
+
L 330.4328694791913,615.95071778198
|
|
114
|
+
L 176.9319619383893,615.95071778198
|
|
115
|
+
L 176.9319619383893,582.94923271516
|
|
116
|
+
L 330.4328694791913,582.9492327151601
|
|
117
|
+
Z
|
|
118
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><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="324.49260216716374" y="599.44997524857" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="">XXXXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
|
|
119
|
+
M 339.3432704472327,500.44552004810987
|
|
120
|
+
L 330.4328694791913,516.9462625815198
|
|
121
|
+
L 157.54908970914366,516.9462625815198
|
|
122
|
+
L 157.54908970914366,483.94477751469987
|
|
123
|
+
L 330.4328694791913,483.94477751469987
|
|
124
|
+
Z
|
|
125
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="324.49260216716374" y="500.44552004810987" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="">XXXXXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
|
|
126
|
+
M 339.3432704472327,533.44700511493
|
|
127
|
+
L 330.4328694791913,549.9477476483399
|
|
128
|
+
L 118.78334525065245,549.9477476483399
|
|
129
|
+
L 118.78334525065245,516.9462625815199
|
|
130
|
+
L 330.4328694791913,516.94626258152
|
|
131
|
+
Z
|
|
132
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="324.49260216716374" y="533.44700511493" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="">XXXXXXXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" d="
|
|
133
|
+
M 339.3432704472327,566.4484901817499
|
|
134
|
+
L 330.4328694791913,582.9492327151598
|
|
135
|
+
L 118.78334525065245,582.9492327151598
|
|
136
|
+
L 118.78334525065245,549.9477476483398
|
|
137
|
+
L 330.4328694791913,549.9477476483399
|
|
138
|
+
Z
|
|
139
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" x="324.49260216716374" y="566.4484901817499" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="">XXXXXXXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" d="
|
|
140
|
+
M 841.7908805895672,500.44552004810987
|
|
141
|
+
L 850.7012815576086,483.94477751469987
|
|
142
|
+
L 1062.3508057861475,483.94477751469987
|
|
143
|
+
L 1062.3508057861475,516.9462625815198
|
|
144
|
+
L 850.7012815576086,516.9462625815198
|
|
145
|
+
Z
|
|
146
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" x="856.6415488696363" y="500.44552004810987" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="">XXXXXXXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" d="
|
|
147
|
+
M 841.7908805895672,533.44700511493
|
|
148
|
+
L 850.7012815576086,516.94626258152
|
|
149
|
+
L 1062.3508057861475,516.94626258152
|
|
150
|
+
L 1062.3508057861475,549.9477476483399
|
|
151
|
+
L 850.7012815576086,549.9477476483399
|
|
152
|
+
Z
|
|
153
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" x="856.6415488696363" y="533.44700511493" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="">XXXXXXXXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" d="
|
|
154
|
+
M 858.4566305483113,632.616467740724
|
|
155
|
+
L 874.9573730817212,641.5268687087654
|
|
156
|
+
L 874.9573730817212,717.4962873325851
|
|
157
|
+
L 841.9558880149013,717.4962873325851
|
|
158
|
+
L 841.9558880149013,641.5268687087654
|
|
159
|
+
Z
|
|
160
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.300148506682px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" x="858.4566305483113" y="647.4671360207931" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.701336560137996px" transform="rotate(90 858.4566305483113 647.4671360207931)">XXX</text>
|
|
161
|
+
</g>
|
|
162
|
+
</svg>
|