@tscircuit/schematic-trace-solver 0.0.51 → 0.0.53
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/dist/index.d.ts +65 -6
- package/dist/index.js +835 -80
- package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +3 -39
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +16 -0
- package/lib/solvers/SchematicTracePipelineSolver/colorAvailableNetOrientationLabels.ts +54 -0
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/TraceAnchoredNetLabelOverlapSolver.ts +331 -0
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/candidates.ts +387 -0
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/geometry.ts +254 -0
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/types.ts +47 -0
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/visualize.ts +159 -0
- package/package.json +1 -1
- package/tests/assets/example30.json +4 -1
- package/tests/examples/__snapshots__/example01.snap.svg +6 -3
- package/tests/examples/__snapshots__/example02.snap.svg +8 -4
- package/tests/examples/__snapshots__/example04.snap.svg +4 -2
- package/tests/examples/__snapshots__/example07.snap.svg +10 -5
- package/tests/examples/__snapshots__/example12.snap.svg +8 -4
- package/tests/examples/__snapshots__/example13.snap.svg +16 -8
- package/tests/examples/__snapshots__/example14.snap.svg +16 -8
- package/tests/examples/__snapshots__/example15.snap.svg +18 -9
- package/tests/examples/__snapshots__/example16.snap.svg +8 -4
- package/tests/examples/__snapshots__/example17.snap.svg +9 -5
- package/tests/examples/__snapshots__/example18.snap.svg +10 -5
- package/tests/examples/__snapshots__/example20.snap.svg +6 -3
- package/tests/examples/__snapshots__/example21.snap.svg +17 -12
- package/tests/examples/__snapshots__/example22.snap.svg +8 -4
- package/tests/examples/__snapshots__/example25.snap.svg +18 -9
- package/tests/examples/__snapshots__/example30.snap.svg +74 -62
- package/tests/examples/__snapshots__/example31.snap.svg +2 -1
- package/tests/fixtures/matcher.ts +21 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import type { GraphicsObject } from "graphics-debug"
|
|
2
|
+
import type { NetLabelPlacement } from "lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver"
|
|
3
|
+
import type { SolvedTracePath } from "lib/solvers/SchematicTraceLinesSolver/SchematicTraceLinesSolver"
|
|
4
|
+
import { visualizeInputProblem } from "lib/solvers/SchematicTracePipelineSolver/visualizeInputProblem"
|
|
5
|
+
import type { InputProblem } from "lib/types/InputProblem"
|
|
6
|
+
import { getColorFromString } from "lib/utils/getColorFromString"
|
|
7
|
+
import type { LabelCandidate, LabelOverlap } from "./types"
|
|
8
|
+
|
|
9
|
+
const CANDIDATE_SELECTED_COLOR = "blue"
|
|
10
|
+
const CANDIDATE_REJECTED_COLOR = "red"
|
|
11
|
+
|
|
12
|
+
export const visualizeTraceAnchoredNetLabelOverlapSolver = (state: {
|
|
13
|
+
inputProblem: InputProblem
|
|
14
|
+
traces: SolvedTracePath[]
|
|
15
|
+
outputNetLabelPlacements: NetLabelPlacement[]
|
|
16
|
+
currentOverlap: LabelOverlap | null
|
|
17
|
+
currentCandidateResults: LabelCandidate[]
|
|
18
|
+
solved: boolean
|
|
19
|
+
}): GraphicsObject => {
|
|
20
|
+
const graphics = visualizeInputProblem(state.inputProblem)
|
|
21
|
+
ensureGraphicsArrays(graphics)
|
|
22
|
+
|
|
23
|
+
drawTraces(graphics, state.traces)
|
|
24
|
+
drawNetLabels(graphics, state.inputProblem, state.outputNetLabelPlacements)
|
|
25
|
+
|
|
26
|
+
if (!state.solved) {
|
|
27
|
+
drawCurrentOverlap(graphics, state)
|
|
28
|
+
drawCurrentCandidates(graphics, state.currentCandidateResults)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return graphics
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const drawTraces = (graphics: GraphicsObject, traces: SolvedTracePath[]) => {
|
|
35
|
+
for (const trace of traces) {
|
|
36
|
+
graphics.lines!.push({
|
|
37
|
+
points: trace.tracePath,
|
|
38
|
+
strokeColor: "purple",
|
|
39
|
+
} as any)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const drawNetLabels = (
|
|
44
|
+
graphics: GraphicsObject,
|
|
45
|
+
inputProblem: InputProblem,
|
|
46
|
+
labels: NetLabelPlacement[],
|
|
47
|
+
) => {
|
|
48
|
+
for (const label of labels) {
|
|
49
|
+
graphics.rects!.push({
|
|
50
|
+
center: label.center,
|
|
51
|
+
width: label.width,
|
|
52
|
+
height: label.height,
|
|
53
|
+
fill: getColorFromString(label.globalConnNetId, 0.35),
|
|
54
|
+
strokeColor: getColorFromString(label.globalConnNetId, 0.9),
|
|
55
|
+
label: getNetLabelVisualizationLabel(inputProblem, label),
|
|
56
|
+
} as any)
|
|
57
|
+
graphics.points!.push({
|
|
58
|
+
x: label.anchorPoint.x,
|
|
59
|
+
y: label.anchorPoint.y,
|
|
60
|
+
color: getColorFromString(label.globalConnNetId, 0.9),
|
|
61
|
+
label: `anchorPoint\norientation: ${label.orientation}`,
|
|
62
|
+
} as any)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const drawCurrentOverlap = (
|
|
67
|
+
graphics: GraphicsObject,
|
|
68
|
+
state: {
|
|
69
|
+
inputProblem: InputProblem
|
|
70
|
+
outputNetLabelPlacements: NetLabelPlacement[]
|
|
71
|
+
currentOverlap: LabelOverlap | null
|
|
72
|
+
},
|
|
73
|
+
) => {
|
|
74
|
+
if (!state.currentOverlap) return
|
|
75
|
+
|
|
76
|
+
for (const labelIndex of [
|
|
77
|
+
state.currentOverlap.firstLabelIndex,
|
|
78
|
+
state.currentOverlap.secondLabelIndex,
|
|
79
|
+
]) {
|
|
80
|
+
const label = state.outputNetLabelPlacements[labelIndex]
|
|
81
|
+
if (!label) continue
|
|
82
|
+
|
|
83
|
+
graphics.rects!.push({
|
|
84
|
+
center: label.center,
|
|
85
|
+
width: label.width,
|
|
86
|
+
height: label.height,
|
|
87
|
+
fill: "rgba(255, 0, 0, 0.2)",
|
|
88
|
+
strokeColor: CANDIDATE_REJECTED_COLOR,
|
|
89
|
+
label: `netlabel overlap target\n${label.netId ?? label.globalConnNetId}\n${getAvailableOrientationText(state.inputProblem, label)}`,
|
|
90
|
+
} as any)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const drawCurrentCandidates = (
|
|
95
|
+
graphics: GraphicsObject,
|
|
96
|
+
candidates: LabelCandidate[],
|
|
97
|
+
) => {
|
|
98
|
+
for (const candidate of candidates) {
|
|
99
|
+
const color = candidate.selected
|
|
100
|
+
? CANDIDATE_SELECTED_COLOR
|
|
101
|
+
: CANDIDATE_REJECTED_COLOR
|
|
102
|
+
graphics.rects!.push({
|
|
103
|
+
center: candidate.center,
|
|
104
|
+
width: candidate.width,
|
|
105
|
+
height: candidate.height,
|
|
106
|
+
fill: candidate.selected
|
|
107
|
+
? "rgba(0, 0, 255, 0.2)"
|
|
108
|
+
: "rgba(255, 0, 0, 0.15)",
|
|
109
|
+
strokeColor: color,
|
|
110
|
+
strokeDash: candidate.selected ? undefined : "4 2",
|
|
111
|
+
label: `${candidate.selected ? "selected" : candidate.status} netlabel overlap candidate\ntrace: ${candidate.traceId}\npath distance: ${candidate.pathDistance.toFixed(3)}\norientation: ${candidate.orientation}\ndistance from original: ${candidate.distanceFromOriginal.toFixed(3)}`,
|
|
112
|
+
} as any)
|
|
113
|
+
graphics.points!.push({
|
|
114
|
+
...candidate.anchorPoint,
|
|
115
|
+
color,
|
|
116
|
+
label: `candidate anchor\n${candidate.status}`,
|
|
117
|
+
} as any)
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const ensureGraphicsArrays = (graphics: GraphicsObject) => {
|
|
122
|
+
if (!graphics.lines) graphics.lines = []
|
|
123
|
+
if (!graphics.points) graphics.points = []
|
|
124
|
+
if (!graphics.rects) graphics.rects = []
|
|
125
|
+
if (!graphics.circles) graphics.circles = []
|
|
126
|
+
if (!graphics.texts) graphics.texts = []
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const getAvailableOrientationText = (
|
|
130
|
+
inputProblem: InputProblem,
|
|
131
|
+
label: NetLabelPlacement,
|
|
132
|
+
) => {
|
|
133
|
+
const orientations = getAvailableOrientationsForLabel(inputProblem, label)
|
|
134
|
+
return `available orientations: ${orientations?.join(", ") ?? "any"}`
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const getNetLabelVisualizationLabel = (
|
|
138
|
+
inputProblem: InputProblem,
|
|
139
|
+
label: NetLabelPlacement,
|
|
140
|
+
) =>
|
|
141
|
+
[
|
|
142
|
+
`netId: ${label.netId}`,
|
|
143
|
+
`globalConnNetId: ${label.globalConnNetId}`,
|
|
144
|
+
getAvailableOrientationText(inputProblem, label),
|
|
145
|
+
].join("\n")
|
|
146
|
+
|
|
147
|
+
const getAvailableOrientationsForLabel = (
|
|
148
|
+
inputProblem: InputProblem,
|
|
149
|
+
label: NetLabelPlacement,
|
|
150
|
+
) => {
|
|
151
|
+
const availableOrientations = inputProblem.availableNetLabelOrientations ?? {}
|
|
152
|
+
for (const netId of [label.netId, label.globalConnNetId]) {
|
|
153
|
+
if (netId && Object.hasOwn(availableOrientations, netId)) {
|
|
154
|
+
return availableOrientations[netId]
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return undefined
|
|
159
|
+
}
|
package/package.json
CHANGED
|
@@ -90,15 +90,18 @@ orientation: y-" data-x="-1.4" data-y="-0.7" cx="356.0396039603961" cy="378.2178
|
|
|
90
90
|
</g>
|
|
91
91
|
<g>
|
|
92
92
|
<rect data-type="rect" data-label="netId: VCC
|
|
93
|
-
globalConnNetId: connectivity_net0
|
|
93
|
+
globalConnNetId: connectivity_net0
|
|
94
|
+
available orientations: y+" data-x="-1.1" data-y="0.42500000000000016" x="378.21782178217825" y="228.51485148514848" width="22.178217821782198" height="49.9009900990099" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.009017857142857143" />
|
|
94
95
|
</g>
|
|
95
96
|
<g>
|
|
96
97
|
<rect data-type="rect" data-label="netId: EN
|
|
97
|
-
globalConnNetId: connectivity_net1
|
|
98
|
+
globalConnNetId: connectivity_net1
|
|
99
|
+
available orientations: x+, x-" data-x="-1.5" data-y="0" x="320" y="289.5049504950495" width="49.90099009900996" height="22.17821782178214" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009017857142857143" />
|
|
98
100
|
</g>
|
|
99
101
|
<g>
|
|
100
102
|
<rect data-type="rect" data-label="netId: GND
|
|
101
|
-
globalConnNetId: connectivity_net2
|
|
103
|
+
globalConnNetId: connectivity_net2
|
|
104
|
+
available orientations: y-" data-x="-1.4" data-y="-0.9249999999999999" x="344.950495049505" y="378.2178217821782" width="22.178217821782198" height="49.9009900990099" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.009017857142857143" />
|
|
102
105
|
</g>
|
|
103
106
|
<g id="crosshair" style="display: none">
|
|
104
107
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -196,19 +196,23 @@ orientation: y+" data-x="1.4571549750000001" data-y="0.29999999999999966" cx="53
|
|
|
196
196
|
</g>
|
|
197
197
|
<g>
|
|
198
198
|
<rect data-type="rect" data-label="netId: VSYS
|
|
199
|
-
globalConnNetId: connectivity_net0
|
|
199
|
+
globalConnNetId: connectivity_net0
|
|
200
|
+
available orientations: y+" data-x="-1.4574283249999997" data-y="1.5274186000000005" x="283.75416992460123" y="184.33736239143013" width="16.926952823252577" height="38.08564385231816" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.011815475714285715" />
|
|
200
201
|
</g>
|
|
201
202
|
<g>
|
|
202
203
|
<rect data-type="rect" data-label="netId: GND
|
|
203
|
-
globalConnNetId: connectivity_net1
|
|
204
|
+
globalConnNetId: connectivity_net1
|
|
205
|
+
available orientations: y-" data-x="-3.0434765500000003" data-y="-0.4250000000000004" x="149.51935252470935" y="349.5798500586337" width="16.926952823252492" height="38.085643852318185" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.011815475714285715" />
|
|
204
206
|
</g>
|
|
205
207
|
<g>
|
|
206
208
|
<rect data-type="rect" data-label="netId: GND
|
|
207
|
-
globalConnNetId: connectivity_net1
|
|
209
|
+
globalConnNetId: connectivity_net1
|
|
210
|
+
available orientations: y-" data-x="1.9148566499999995" data-y="-1.2284186000000008" x="569.1667133165424" y="417.5769937562517" width="16.926952823252577" height="38.08564385231813" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.011815475714285715" />
|
|
208
211
|
</g>
|
|
209
212
|
<g>
|
|
210
213
|
<rect data-type="rect" data-label="netId: V3_3
|
|
211
|
-
globalConnNetId: connectivity_net2
|
|
214
|
+
globalConnNetId: connectivity_net2
|
|
215
|
+
available orientations: y+" data-x="1.4571549750000001" data-y="0.5249999999999997" x="530.4292400172993" y="269.1768241481843" width="16.926952823252464" height="38.08564385231813" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.011815475714285715" />
|
|
212
216
|
</g>
|
|
213
217
|
<g id="crosshair" style="display: none">
|
|
214
218
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -28,11 +28,13 @@ orientation: y-" data-x="0.31067575550000137" data-y="-0.5800832909999993" cx="4
|
|
|
28
28
|
</g>
|
|
29
29
|
<g>
|
|
30
30
|
<rect data-type="rect" data-label="netId: V3_3
|
|
31
|
-
globalConnNetId: connectivity_net0
|
|
31
|
+
globalConnNetId: connectivity_net0
|
|
32
|
+
available orientations: y+" data-x="0.30397715550000004" data-y="0.8060832909999993" x="375.3918427720889" y="40" width="54.311810198852356" height="122.20157294741779" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.003682440324999998" />
|
|
32
33
|
</g>
|
|
33
34
|
<g>
|
|
34
35
|
<rect data-type="rect" data-label="netId: V3_3
|
|
35
|
-
globalConnNetId: connectivity_net0
|
|
36
|
+
globalConnNetId: connectivity_net0
|
|
37
|
+
available orientations: y+" data-x="0.31067575550000137" data-y="-0.8060832909999993" x="377.2109082310795" y="477.7984270525822" width="54.3118101988523" height="122.20157294741779" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.003682440324999998" />
|
|
36
38
|
</g>
|
|
37
39
|
<g id="crosshair" style="display: none">
|
|
38
40
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -136,23 +136,28 @@ orientation: x+" data-x="1.757519574999999" data-y="0.85" cx="547.3539750075635"
|
|
|
136
136
|
</g>
|
|
137
137
|
<g>
|
|
138
138
|
<rect data-type="rect" data-label="netId: V3_3
|
|
139
|
-
globalConnNetId: connectivity_net0
|
|
139
|
+
globalConnNetId: connectivity_net0
|
|
140
|
+
available orientations: y+" data-x="-1.8574283249999997" data-y="0.9762093000000004" x="112.7378861431207" y="270.2760341291854" width="23.398233329971788" height="52.64602499243642" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.00854765388392857" />
|
|
140
141
|
</g>
|
|
141
142
|
<g>
|
|
142
143
|
<rect data-type="rect" data-label="netId: V3_3
|
|
143
|
-
globalConnNetId: connectivity_net0
|
|
144
|
+
globalConnNetId: connectivity_net0
|
|
145
|
+
available orientations: y+" data-x="1.5999999999999999" data-y="-0.07499999999999998" x="517.2264594931378" y="393.2582365293668" width="23.39823332997173" height="52.64602499243648" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.00854765388392857" />
|
|
144
146
|
</g>
|
|
145
147
|
<g>
|
|
146
148
|
<rect data-type="rect" data-label="netId: V3_3
|
|
147
|
-
globalConnNetId: connectivity_net0
|
|
149
|
+
globalConnNetId: connectivity_net0
|
|
150
|
+
available orientations: y+" data-x="1.7580660749999977" data-y="2.5285814" x="535.7187940151516" y="88.66221107549416" width="23.39823332997173" height="52.64602499243642" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.00854765388392857" />
|
|
148
151
|
</g>
|
|
149
152
|
<g>
|
|
150
153
|
<rect data-type="rect" data-label="netId: GND
|
|
151
|
-
globalConnNetId: connectivity_net1
|
|
154
|
+
globalConnNetId: connectivity_net1
|
|
155
|
+
available orientations: y-" data-x="-2.31430995" data-y="-0.9762093000000004" x="59.28677181348735" y="498.6917639320694" width="23.398233329971788" height="52.64602499243642" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.00854765388392857" />
|
|
152
156
|
</g>
|
|
153
157
|
<g>
|
|
154
158
|
<rect data-type="rect" data-label="netId: FLASH_N_CS
|
|
155
|
-
globalConnNetId: connectivity_net2
|
|
159
|
+
globalConnNetId: connectivity_net2
|
|
160
|
+
available orientations: any" data-x="1.982519574999999" data-y="0.85" x="547.3539750075635" y="299.6653032094798" width="52.64602499243654" height="23.39823332997173" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.00854765388392857" />
|
|
156
161
|
</g>
|
|
157
162
|
<g id="crosshair" style="display: none">
|
|
158
163
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -82,19 +82,23 @@ orientation: y-" data-x="3.511" data-y="-0.4310000000000001" cx="588.11292719167
|
|
|
82
82
|
</g>
|
|
83
83
|
<g>
|
|
84
84
|
<rect data-type="rect" data-label="netId: VCC
|
|
85
|
-
globalConnNetId: connectivity_net0
|
|
85
|
+
globalConnNetId: connectivity_net0
|
|
86
|
+
available orientations: y+" data-x="1.7049999999999998" data-y="0.42500000000000004" x="361.54531946508166" y="147.96699257057952" width="23.77414561664193" height="53.49182763744429" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.008412500000000002" />
|
|
86
87
|
</g>
|
|
87
88
|
<g>
|
|
88
89
|
<rect data-type="rect" data-label="netId: OUT
|
|
89
|
-
globalConnNetId: connectivity_net1
|
|
90
|
+
globalConnNetId: connectivity_net1
|
|
91
|
+
available orientations: any" data-x="1.5250000000000001" data-y="-0.4486138374999999" x="325.28974739970283" y="266.6729465081724" width="53.49182763744432" height="23.774145616641874" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008412500000000002" />
|
|
90
92
|
</g>
|
|
91
93
|
<g>
|
|
92
94
|
<rect data-type="rect" data-label="netId: GND
|
|
93
|
-
globalConnNetId: connectivity_net2
|
|
95
|
+
globalConnNetId: connectivity_net2
|
|
96
|
+
available orientations: y-" data-x="1.8499999999999996" data-y="-2.0194553499999994" x="378.78157503714704" y="438.54117979197616" width="23.77414561664193" height="53.49182763744432" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.008412500000000002" />
|
|
94
97
|
</g>
|
|
95
98
|
<g>
|
|
96
99
|
<rect data-type="rect" data-label="netId: GND
|
|
97
|
-
globalConnNetId: connectivity_net2
|
|
100
|
+
globalConnNetId: connectivity_net2
|
|
101
|
+
available orientations: y-" data-x="3.511" data-y="-0.6560000000000001" x="576.2258543833581" y="276.466249628529" width="23.77414561664193" height="53.49182763744432" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.008412500000000002" />
|
|
98
102
|
</g>
|
|
99
103
|
<g id="crosshair" style="display: none">
|
|
100
104
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -251,35 +251,43 @@ orientation: y+" data-x="1.96375" data-y="3" cx="417.91062100986653" cy="157.492
|
|
|
251
251
|
</g>
|
|
252
252
|
<g>
|
|
253
253
|
<rect data-type="rect" data-label="netId: gnd
|
|
254
|
-
globalConnNetId: connectivity_net3
|
|
254
|
+
globalConnNetId: connectivity_net3
|
|
255
|
+
available orientations: y-" data-x="3.75" data-y="-1.725" x="527.5217643644805" y="450.0058038305282" width="13.000580383052807" height="29.251305861868843" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.015383928571428571" />
|
|
255
256
|
</g>
|
|
256
257
|
<g>
|
|
257
258
|
<rect data-type="rect" data-label="netId: gnd
|
|
258
|
-
globalConnNetId: connectivity_net3
|
|
259
|
+
globalConnNetId: connectivity_net3
|
|
260
|
+
available orientations: y-" data-x="-2.125" data-y="-2.2249999999999996" x="145.6297156123041" y="482.5072547881602" width="13.000580383052835" height="29.251305861868843" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.015383928571428571" />
|
|
259
261
|
</g>
|
|
260
262
|
<g>
|
|
261
263
|
<rect data-type="rect" data-label="netId: v5
|
|
262
|
-
globalConnNetId: connectivity_net4
|
|
264
|
+
globalConnNetId: connectivity_net4
|
|
265
|
+
available orientations: y+" data-x="1.475" data-y="0.225" x="379.6401625072548" y="323.25014509576323" width="13.000580383052807" height="29.251305861868843" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.015383928571428571" />
|
|
263
266
|
</g>
|
|
264
267
|
<g>
|
|
265
268
|
<rect data-type="rect" data-label="netId: v5
|
|
266
|
-
globalConnNetId: connectivity_net4
|
|
269
|
+
globalConnNetId: connectivity_net4
|
|
270
|
+
available orientations: y+" data-x="-1.301" data-y="-0.8490000000000001" x="199.19210679048172" y="393.0632617527569" width="13.000580383052807" height="29.251305861868843" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.015383928571428571" />
|
|
267
271
|
</g>
|
|
268
272
|
<g>
|
|
269
273
|
<rect data-type="rect" data-label="netId: .PWR1 > .FB to .R6 > .pin2
|
|
270
|
-
globalConnNetId: connectivity_net2
|
|
274
|
+
globalConnNetId: connectivity_net2
|
|
275
|
+
available orientations: any" data-x="-2.125" data-y="0.225" x="145.6297156123041" y="323.25014509576323" width="13.000580383052835" height="29.251305861868843" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015383928571428571" />
|
|
271
276
|
</g>
|
|
272
277
|
<g>
|
|
273
278
|
<rect data-type="rect" data-label="netId: v3_3
|
|
274
|
-
globalConnNetId: connectivity_net0
|
|
279
|
+
globalConnNetId: connectivity_net0
|
|
280
|
+
available orientations: y+" data-x="-3.75" data-y="2.225" x="39.99999999999997" y="193.24434126523508" width="13.000580383052835" height="29.251305861868843" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.015383928571428571" />
|
|
275
281
|
</g>
|
|
276
282
|
<g>
|
|
277
283
|
<rect data-type="rect" data-label="netId: v3_3
|
|
278
|
-
globalConnNetId: connectivity_net0
|
|
284
|
+
globalConnNetId: connectivity_net0
|
|
285
|
+
available orientations: y+" data-x="2.2990000000000004" data-y="0.276" x="433.20255368543235" y="319.93499709808475" width="13.000580383052863" height="29.251305861868843" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.015383928571428571" />
|
|
279
286
|
</g>
|
|
280
287
|
<g>
|
|
281
288
|
<rect data-type="rect" data-label="netId: .LED1 > .pos to .R8 > .pin2
|
|
282
|
-
globalConnNetId: connectivity_net1
|
|
289
|
+
globalConnNetId: connectivity_net1
|
|
290
|
+
available orientations: any" data-x="1.96375" data-y="3.225" x="411.41033081834007" y="128.241439349971" width="13.000580383052807" height="29.25130586186887" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015383928571428571" />
|
|
283
291
|
</g>
|
|
284
292
|
<g id="crosshair" style="display: none">
|
|
285
293
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -196,35 +196,43 @@ orientation: y+" data-x="1.4755000000000003" data-y="-1.2944553500000002" cx="44
|
|
|
196
196
|
</g>
|
|
197
197
|
<g>
|
|
198
198
|
<rect data-type="rect" data-label="netId: GND
|
|
199
|
-
globalConnNetId: connectivity_net4
|
|
199
|
+
globalConnNetId: connectivity_net4
|
|
200
|
+
available orientations: y-" data-x="1.3510000000000002" data-y="-0.5760000000000001" x="423.4707692307693" y="322.24" width="17.230769230769226" height="38.769230769230774" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.011607142857142856" />
|
|
200
201
|
</g>
|
|
201
202
|
<g>
|
|
202
203
|
<rect data-type="rect" data-label="netId: GND
|
|
203
|
-
globalConnNetId: connectivity_net4
|
|
204
|
+
globalConnNetId: connectivity_net4
|
|
205
|
+
available orientations: y-" data-x="-1.2000000000000002" data-y="-2.6750000000000003" x="203.6923076923077" y="503.0769230769231" width="17.230769230769255" height="38.76923076923083" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.011607142857142856" />
|
|
204
206
|
</g>
|
|
205
207
|
<g>
|
|
206
208
|
<rect data-type="rect" data-label="netId: U1.THRES to U1.TRIG
|
|
207
|
-
globalConnNetId: connectivity_net1
|
|
209
|
+
globalConnNetId: connectivity_net1
|
|
210
|
+
available orientations: any" data-x="-1.6250000000000002" data-y="-0.30000000000000004" x="156.30769230769232" y="309.2307692307692" width="38.769230769230774" height="17.230769230769226" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011607142857142856" />
|
|
208
211
|
</g>
|
|
209
212
|
<g>
|
|
210
213
|
<rect data-type="rect" data-label="netId: U1.OUT to R3.pin1
|
|
211
|
-
globalConnNetId: connectivity_net3
|
|
214
|
+
globalConnNetId: connectivity_net3
|
|
215
|
+
available orientations: any" data-x="1.6250000000000002" data-y="0.09999999999999998" x="436.3076923076924" y="274.7692307692308" width="38.769230769230774" height="17.230769230769226" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011607142857142856" />
|
|
212
216
|
</g>
|
|
213
217
|
<g>
|
|
214
218
|
<rect data-type="rect" data-label="netId: VCC
|
|
215
|
-
globalConnNetId: connectivity_net5
|
|
219
|
+
globalConnNetId: connectivity_net5
|
|
220
|
+
available orientations: y+" data-x="-1.3010000000000002" data-y="0.7260000000000001" x="194.99076923076925" y="210.0676923076923" width="17.230769230769255" height="38.769230769230745" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.011607142857142856" />
|
|
216
221
|
</g>
|
|
217
222
|
<g>
|
|
218
223
|
<rect data-type="rect" data-label="netId: VCC
|
|
219
|
-
globalConnNetId: connectivity_net5
|
|
224
|
+
globalConnNetId: connectivity_net5
|
|
225
|
+
available orientations: y+" data-x="3.2" data-y="0.525" x="582.7692307692308" y="227.3846153846154" width="17.230769230769283" height="38.769230769230745" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.011607142857142856" />
|
|
220
226
|
</g>
|
|
221
227
|
<g>
|
|
222
228
|
<rect data-type="rect" data-label="netId: U1.CTRL to C2.pin1
|
|
223
|
-
globalConnNetId: connectivity_net0
|
|
229
|
+
globalConnNetId: connectivity_net0
|
|
230
|
+
available orientations: any" data-x="-1.5500000000000003" data-y="0.32500000000000007" x="173.53846153846155" y="244.6153846153846" width="17.230769230769226" height="38.769230769230745" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011607142857142856" />
|
|
224
231
|
</g>
|
|
225
232
|
<g>
|
|
226
233
|
<rect data-type="rect" data-label="netId: U1.DISCH to R2.pin1
|
|
227
|
-
globalConnNetId: connectivity_net2
|
|
234
|
+
globalConnNetId: connectivity_net2
|
|
235
|
+
available orientations: any" data-x="1.4755000000000003" data-y="-1.0694553500000001" x="434.19692307692316" y="364.7530763076923" width="17.230769230769226" height="38.769230769230774" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011607142857142856" />
|
|
228
236
|
</g>
|
|
229
237
|
<g id="crosshair" style="display: none">
|
|
230
238
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -882,39 +882,48 @@ orientation: y-" data-x="-2.49" data-y="-2.9000000000000004" cx="295.58784676354
|
|
|
882
882
|
</g>
|
|
883
883
|
<g>
|
|
884
884
|
<rect data-type="rect" data-label="netId: V3_3
|
|
885
|
-
globalConnNetId: connectivity_net0
|
|
885
|
+
globalConnNetId: connectivity_net0
|
|
886
|
+
available orientations: y+" data-x="-1.3099999999999998" data-y="1.4250000000000016" x="348.85072655217965" y="311.4927344782034" width="9.863496257155475" height="22.192866578599705" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.020276785714285723" />
|
|
886
887
|
</g>
|
|
887
888
|
<g>
|
|
888
889
|
<rect data-type="rect" data-label="netId: V3_3
|
|
889
|
-
globalConnNetId: connectivity_net0
|
|
890
|
+
globalConnNetId: connectivity_net0
|
|
891
|
+
available orientations: y+" data-x="0.29250000000000076" data-y="6.9300000000000015" x="427.8819903126376" y="40.00000000000006" width="9.863496257155475" height="22.192866578599705" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.020276785714285723" />
|
|
890
892
|
</g>
|
|
891
893
|
<g>
|
|
892
894
|
<rect data-type="rect" data-label="netId: V1_1
|
|
893
|
-
globalConnNetId: connectivity_net6
|
|
895
|
+
globalConnNetId: connectivity_net6
|
|
896
|
+
available orientations: y+" data-x="-1.3099999999999998" data-y="3.0250000000000017" x="348.85072655217965" y="232.58476442095986" width="9.863496257155475" height="22.192866578599762" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.020276785714285723" />
|
|
894
897
|
</g>
|
|
895
898
|
<g>
|
|
896
899
|
<rect data-type="rect" data-label="netId: V1_1
|
|
897
|
-
globalConnNetId: connectivity_net6
|
|
900
|
+
globalConnNetId: connectivity_net6
|
|
901
|
+
available orientations: y+" data-x="-3.7550000000000003" data-y="4.193333333333335" x="228.26948480845445" y="174.96550711874357" width="9.863496257155447" height="22.192866578599705" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.020276785714285723" />
|
|
898
902
|
</g>
|
|
899
903
|
<g>
|
|
900
904
|
<rect data-type="rect" data-label="netId: capacitor.C11 > port.pin1 to U3.ADC_AVDD
|
|
901
|
-
globalConnNetId: connectivity_net9
|
|
905
|
+
globalConnNetId: connectivity_net9
|
|
906
|
+
available orientations: any" data-x="-2.25" data-y="-1.4000000000000004" x="296.327608982827" y="456.97930427124606" width="22.192866578599705" height="9.863496257155475" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020276785714285723" />
|
|
902
907
|
</g>
|
|
903
908
|
<g>
|
|
904
909
|
<rect data-type="rect" data-label="netId: capacitor.C10 > port.pin1 to U3.VREG_VIN
|
|
905
|
-
globalConnNetId: connectivity_net8
|
|
910
|
+
globalConnNetId: connectivity_net8
|
|
911
|
+
available orientations: any" data-x="-2.25" data-y="2.200000000000001" x="296.327608982827" y="279.4363716424482" width="22.192866578599705" height="9.863496257155475" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020276785714285723" />
|
|
906
912
|
</g>
|
|
907
913
|
<g>
|
|
908
914
|
<rect data-type="rect" data-label="netId: GND
|
|
909
|
-
globalConnNetId: connectivity_net10
|
|
915
|
+
globalConnNetId: connectivity_net10
|
|
916
|
+
available orientations: y-" data-x="0.29250000000000076" data-y="4.980000000000002" x="427.8819903126376" y="136.16908850726549" width="9.863496257155475" height="22.192866578599705" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.020276785714285723" />
|
|
910
917
|
</g>
|
|
911
918
|
<g>
|
|
912
919
|
<rect data-type="rect" data-label="netId: GND
|
|
913
|
-
globalConnNetId: connectivity_net10
|
|
920
|
+
globalConnNetId: connectivity_net10
|
|
921
|
+
available orientations: y-" data-x="-3.7550000000000003" data-y="2.2433333333333345" x="228.26948480845445" y="271.13459562600906" width="9.863496257155447" height="22.192866578599705" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.020276785714285723" />
|
|
914
922
|
</g>
|
|
915
923
|
<g>
|
|
916
924
|
<rect data-type="rect" data-label="netId: GND
|
|
917
|
-
globalConnNetId: connectivity_net10
|
|
925
|
+
globalConnNetId: connectivity_net10
|
|
926
|
+
available orientations: y-" data-x="-2.49" data-y="-3.1250000000000004" x="290.6560986349626" y="535.8872743284896" width="9.863496257155418" height="22.192866578599705" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.020276785714285723" />
|
|
918
927
|
</g>
|
|
919
928
|
<g id="crosshair" style="display: none">
|
|
920
929
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -89,19 +89,23 @@ orientation: y+" data-x="0.749" data-y="2.105" cx="258.288" cy="174.064000000000
|
|
|
89
89
|
</g>
|
|
90
90
|
<g>
|
|
91
91
|
<rect data-type="rect" data-label="netId: GND
|
|
92
|
-
globalConnNetId: connectivity_net0
|
|
92
|
+
globalConnNetId: connectivity_net0
|
|
93
|
+
available orientations: y-" data-x="1.3010000000000002" data-y="-0.7260000000000001" x="308.91200000000003" y="465.93600000000004" width="22.400000000000034" height="50.39999999999998" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.008928571428571428" />
|
|
93
94
|
</g>
|
|
94
95
|
<g>
|
|
95
96
|
<rect data-type="rect" data-label="netId: GND
|
|
96
|
-
globalConnNetId: connectivity_net0
|
|
97
|
+
globalConnNetId: connectivity_net0
|
|
98
|
+
available orientations: y-" data-x="1.449" data-y="1.4289999999999998" x="325.48800000000006" y="224.57600000000002" width="22.399999999999977" height="50.400000000000034" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.008928571428571428" />
|
|
97
99
|
</g>
|
|
98
100
|
<g>
|
|
99
101
|
<rect data-type="rect" data-label="netId: OUT
|
|
100
|
-
globalConnNetId: connectivity_net1
|
|
102
|
+
globalConnNetId: connectivity_net1
|
|
103
|
+
available orientations: x-, x+" data-x="1.5250000000000001" data-y="0.09999999999999998" x="320" y="387.42400000000004" width="50.40000000000009" height="22.399999999999977" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008928571428571428" />
|
|
101
104
|
</g>
|
|
102
105
|
<g>
|
|
103
106
|
<rect data-type="rect" data-label="netId: VCC
|
|
104
|
-
globalConnNetId: connectivity_net2
|
|
107
|
+
globalConnNetId: connectivity_net2
|
|
108
|
+
available orientations: y+" data-x="0.749" data-y="2.33" x="247.08800000000002" y="123.66399999999999" width="22.400000000000034" height="50.400000000000034" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.008928571428571428" />
|
|
105
109
|
</g>
|
|
106
110
|
<g id="crosshair" style="display: none">
|
|
107
111
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -70,7 +70,7 @@ orientation: x-" data-x="-1.3499999999999999" data-y="0.30000000000000004" cx="1
|
|
|
70
70
|
</g>
|
|
71
71
|
<g>
|
|
72
72
|
<circle data-type="point" data-label="anchorPoint
|
|
73
|
-
orientation: y
|
|
73
|
+
orientation: y-" data-x="-1.3499999999999999" data-y="0.10000000000000003" cx="152.87958115183247" cy="366.5445026178011" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
74
74
|
</g>
|
|
75
75
|
<g>
|
|
76
76
|
<circle data-type="point" data-label="anchorPoint
|
|
@@ -121,19 +121,23 @@ orientation: y+" data-x="3.3000000000000003" data-y="-0.3000000000000007" cx="49
|
|
|
121
121
|
</g>
|
|
122
122
|
<g>
|
|
123
123
|
<rect data-type="rect" data-label="netId: .U1 .OUT1 to .D1 .pin1
|
|
124
|
-
globalConnNetId: connectivity_net2
|
|
124
|
+
globalConnNetId: connectivity_net2
|
|
125
|
+
available orientations: any" data-x="-1.575" data-y="0.30000000000000004" x="119.89528795811518" y="344.5549738219895" width="32.98429319371729" height="14.659685863874358" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013642857142857144" />
|
|
125
126
|
</g>
|
|
126
127
|
<g>
|
|
127
128
|
<rect data-type="rect" data-label="netId: .U1 .OUT2 to .D2 .pin1
|
|
128
|
-
globalConnNetId: connectivity_net3
|
|
129
|
+
globalConnNetId: connectivity_net3
|
|
130
|
+
available orientations: any" data-x="-1.3499999999999999" data-y="-0.12499999999999997" x="145.5497382198953" y="366.5445026178011" width="14.659685863874358" height="32.984293193717235" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013642857142857144" />
|
|
129
131
|
</g>
|
|
130
132
|
<g>
|
|
131
133
|
<rect data-type="rect" data-label="netId: .U1 .VCC to .C1 .pin1
|
|
132
|
-
globalConnNetId: connectivity_net0
|
|
134
|
+
globalConnNetId: connectivity_net0
|
|
135
|
+
available orientations: any" data-x="1.4999999999999998" data-y="-0.07500000000000037" x="354.45026178010465" y="362.8795811518325" width="14.659685863874358" height="32.98429319371729" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013642857142857144" />
|
|
133
136
|
</g>
|
|
134
137
|
<g>
|
|
135
138
|
<rect data-type="rect" data-label="netId: .C1 .pin2 to .C2 .pin1
|
|
136
|
-
globalConnNetId: connectivity_net1
|
|
139
|
+
globalConnNetId: connectivity_net1
|
|
140
|
+
available orientations: any" data-x="3.3000000000000003" data-y="-0.0750000000000007" x="486.38743455497377" y="362.8795811518325" width="14.659685863874415" height="32.98429319371729" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013642857142857144" />
|
|
137
141
|
</g>
|
|
138
142
|
<g id="crosshair" style="display: none">
|
|
139
143
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|