kicadts 0.0.2 → 0.0.4

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.
Files changed (195) hide show
  1. package/dist/index.d.ts +4466 -0
  2. package/dist/index.js +14253 -0
  3. package/package.json +5 -2
  4. package/.cursor/rules/use-bun-instead-of-node-vite-npm-pnpm.mdc +0 -111
  5. package/.github/workflows/bun-formatcheck.yml +0 -26
  6. package/.github/workflows/bun-pver-release.yml +0 -70
  7. package/.github/workflows/bun-test.yml +0 -32
  8. package/.github/workflows/bun-typecheck.yml +0 -26
  9. package/.vscode/settings.json +0 -16
  10. package/AGENTS.md +0 -31
  11. package/TODO.md +0 -46
  12. package/biome.json +0 -93
  13. package/bunfig.toml +0 -5
  14. package/lib/index.ts +0 -1
  15. package/lib/sexpr/base-classes/SxClass.ts +0 -164
  16. package/lib/sexpr/base-classes/SxPrimitiveBoolean.ts +0 -35
  17. package/lib/sexpr/base-classes/SxPrimitiveNumber.ts +0 -26
  18. package/lib/sexpr/base-classes/SxPrimitiveString.ts +0 -26
  19. package/lib/sexpr/classes/At.ts +0 -53
  20. package/lib/sexpr/classes/Bus.ts +0 -103
  21. package/lib/sexpr/classes/BusEntry.ts +0 -169
  22. package/lib/sexpr/classes/Color.ts +0 -29
  23. package/lib/sexpr/classes/Dnp.ts +0 -8
  24. package/lib/sexpr/classes/EmbeddedFonts.ts +0 -68
  25. package/lib/sexpr/classes/ExcludeFromSim.ts +0 -8
  26. package/lib/sexpr/classes/FieldsAutoplaced.ts +0 -8
  27. package/lib/sexpr/classes/Footprint.ts +0 -849
  28. package/lib/sexpr/classes/FootprintAttr.ts +0 -104
  29. package/lib/sexpr/classes/FootprintAutoplaceCost180.ts +0 -9
  30. package/lib/sexpr/classes/FootprintAutoplaceCost90.ts +0 -9
  31. package/lib/sexpr/classes/FootprintClearance.ts +0 -9
  32. package/lib/sexpr/classes/FootprintDescr.ts +0 -44
  33. package/lib/sexpr/classes/FootprintLocked.ts +0 -32
  34. package/lib/sexpr/classes/FootprintModel.ts +0 -142
  35. package/lib/sexpr/classes/FootprintNetTiePadGroups.ts +0 -52
  36. package/lib/sexpr/classes/FootprintPad.ts +0 -857
  37. package/lib/sexpr/classes/FootprintPath.ts +0 -44
  38. package/lib/sexpr/classes/FootprintPlaced.ts +0 -32
  39. package/lib/sexpr/classes/FootprintPrivateLayers.ts +0 -56
  40. package/lib/sexpr/classes/FootprintSheetfile.ts +0 -44
  41. package/lib/sexpr/classes/FootprintSheetname.ts +0 -44
  42. package/lib/sexpr/classes/FootprintSolderMaskMargin.ts +0 -9
  43. package/lib/sexpr/classes/FootprintSolderPasteMargin.ts +0 -9
  44. package/lib/sexpr/classes/FootprintSolderPasteRatio.ts +0 -9
  45. package/lib/sexpr/classes/FootprintTags.ts +0 -44
  46. package/lib/sexpr/classes/FootprintTedit.ts +0 -21
  47. package/lib/sexpr/classes/FootprintThermalGap.ts +0 -9
  48. package/lib/sexpr/classes/FootprintThermalWidth.ts +0 -9
  49. package/lib/sexpr/classes/FootprintZoneConnect.ts +0 -9
  50. package/lib/sexpr/classes/FpArc.ts +0 -312
  51. package/lib/sexpr/classes/FpCircle.ts +0 -314
  52. package/lib/sexpr/classes/FpLine.ts +0 -316
  53. package/lib/sexpr/classes/FpPoly.ts +0 -286
  54. package/lib/sexpr/classes/FpPolyFill.ts +0 -48
  55. package/lib/sexpr/classes/FpPolyLocked.ts +0 -40
  56. package/lib/sexpr/classes/FpRect.ts +0 -314
  57. package/lib/sexpr/classes/FpText.ts +0 -375
  58. package/lib/sexpr/classes/FpTextBox.ts +0 -450
  59. package/lib/sexpr/classes/GrLine.ts +0 -264
  60. package/lib/sexpr/classes/GrLineAngle.ts +0 -32
  61. package/lib/sexpr/classes/GrLineEnd.ts +0 -61
  62. package/lib/sexpr/classes/GrLineLocked.ts +0 -40
  63. package/lib/sexpr/classes/GrLineStart.ts +0 -61
  64. package/lib/sexpr/classes/GrText.ts +0 -228
  65. package/lib/sexpr/classes/Image.ts +0 -283
  66. package/lib/sexpr/classes/InBom.ts +0 -8
  67. package/lib/sexpr/classes/Junction.ts +0 -166
  68. package/lib/sexpr/classes/KicadPcb.ts +0 -361
  69. package/lib/sexpr/classes/KicadSch.ts +0 -397
  70. package/lib/sexpr/classes/KicadSchGenerator.ts +0 -32
  71. package/lib/sexpr/classes/KicadSchGeneratorVersion.ts +0 -30
  72. package/lib/sexpr/classes/KicadSchVersion.ts +0 -22
  73. package/lib/sexpr/classes/Label.ts +0 -176
  74. package/lib/sexpr/classes/Layer.ts +0 -51
  75. package/lib/sexpr/classes/Layers.ts +0 -47
  76. package/lib/sexpr/classes/LibSymbols.ts +0 -61
  77. package/lib/sexpr/classes/NoConnect.ts +0 -90
  78. package/lib/sexpr/classes/OnBoard.ts +0 -8
  79. package/lib/sexpr/classes/PadChamfer.ts +0 -50
  80. package/lib/sexpr/classes/PadChamferRatio.ts +0 -9
  81. package/lib/sexpr/classes/PadClearance.ts +0 -9
  82. package/lib/sexpr/classes/PadDieLength.ts +0 -9
  83. package/lib/sexpr/classes/PadDrill.ts +0 -145
  84. package/lib/sexpr/classes/PadDrillOffset.ts +0 -54
  85. package/lib/sexpr/classes/PadLayers.ts +0 -71
  86. package/lib/sexpr/classes/PadNet.ts +0 -56
  87. package/lib/sexpr/classes/PadOptions.ts +0 -181
  88. package/lib/sexpr/classes/PadPinFunction.ts +0 -9
  89. package/lib/sexpr/classes/PadPinType.ts +0 -9
  90. package/lib/sexpr/classes/PadPrimitiveGrArc.ts +0 -272
  91. package/lib/sexpr/classes/PadPrimitiveGrCircle.ts +0 -298
  92. package/lib/sexpr/classes/PadPrimitiveGrLine.ts +0 -126
  93. package/lib/sexpr/classes/PadPrimitives.ts +0 -291
  94. package/lib/sexpr/classes/PadRectDelta.ts +0 -57
  95. package/lib/sexpr/classes/PadRoundrectRratio.ts +0 -9
  96. package/lib/sexpr/classes/PadSize.ts +0 -69
  97. package/lib/sexpr/classes/PadSolderMaskMargin.ts +0 -9
  98. package/lib/sexpr/classes/PadSolderPasteMargin.ts +0 -9
  99. package/lib/sexpr/classes/PadSolderPasteMarginRatio.ts +0 -9
  100. package/lib/sexpr/classes/PadTeardrops.ts +0 -210
  101. package/lib/sexpr/classes/PadThermalBridgeAngle.ts +0 -9
  102. package/lib/sexpr/classes/PadThermalGap.ts +0 -9
  103. package/lib/sexpr/classes/PadThermalWidth.ts +0 -9
  104. package/lib/sexpr/classes/PadZoneConnect.ts +0 -9
  105. package/lib/sexpr/classes/Paper.ts +0 -119
  106. package/lib/sexpr/classes/PcbGeneral.ts +0 -82
  107. package/lib/sexpr/classes/PcbGeneralLegacyTeardrops.ts +0 -44
  108. package/lib/sexpr/classes/PcbGeneralThickness.ts +0 -9
  109. package/lib/sexpr/classes/PcbGenerator.ts +0 -16
  110. package/lib/sexpr/classes/PcbGeneratorVersion.ts +0 -16
  111. package/lib/sexpr/classes/PcbLayerDefinition.ts +0 -106
  112. package/lib/sexpr/classes/PcbLayers.ts +0 -34
  113. package/lib/sexpr/classes/PcbNet.ts +0 -56
  114. package/lib/sexpr/classes/PcbVersion.ts +0 -9
  115. package/lib/sexpr/classes/Property.ts +0 -301
  116. package/lib/sexpr/classes/PropertyHide.ts +0 -9
  117. package/lib/sexpr/classes/PropertyUnlocked.ts +0 -9
  118. package/lib/sexpr/classes/Pts.ts +0 -67
  119. package/lib/sexpr/classes/RenderCache.ts +0 -221
  120. package/lib/sexpr/classes/SchematicText.ts +0 -171
  121. package/lib/sexpr/classes/Segment.ts +0 -243
  122. package/lib/sexpr/classes/SegmentEnd.ts +0 -59
  123. package/lib/sexpr/classes/SegmentLocked.ts +0 -33
  124. package/lib/sexpr/classes/SegmentNet.ts +0 -64
  125. package/lib/sexpr/classes/SegmentStart.ts +0 -59
  126. package/lib/sexpr/classes/Setup/PcbPlotParams.ts +0 -689
  127. package/lib/sexpr/classes/Setup/PcbPlotParamsBase.ts +0 -9
  128. package/lib/sexpr/classes/Setup/PcbPlotParamsNumericProperties.ts +0 -105
  129. package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesA.ts +0 -104
  130. package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesB.ts +0 -105
  131. package/lib/sexpr/classes/Setup/Setup.ts +0 -574
  132. package/lib/sexpr/classes/Setup/SetupPropertyTypes.ts +0 -119
  133. package/lib/sexpr/classes/Setup/Stackup.ts +0 -135
  134. package/lib/sexpr/classes/Setup/StackupLayer.ts +0 -233
  135. package/lib/sexpr/classes/Setup/StackupLayerProperties.ts +0 -80
  136. package/lib/sexpr/classes/Setup/StackupProperties.ts +0 -40
  137. package/lib/sexpr/classes/Setup/base.ts +0 -165
  138. package/lib/sexpr/classes/Setup/index.ts +0 -14
  139. package/lib/sexpr/classes/Setup/setupMultiValueProperties.ts +0 -53
  140. package/lib/sexpr/classes/Setup/setupNumericProperties.ts +0 -151
  141. package/lib/sexpr/classes/Setup/setupPropertyHandlers.ts +0 -90
  142. package/lib/sexpr/classes/Setup/setupStringProperties.ts +0 -75
  143. package/lib/sexpr/classes/Sheet.ts +0 -287
  144. package/lib/sexpr/classes/SheetFill.ts +0 -44
  145. package/lib/sexpr/classes/SheetInstances.ts +0 -168
  146. package/lib/sexpr/classes/SheetInstancesRoot.ts +0 -165
  147. package/lib/sexpr/classes/SheetPin.ts +0 -125
  148. package/lib/sexpr/classes/SheetProperty.ts +0 -115
  149. package/lib/sexpr/classes/SheetSize.ts +0 -44
  150. package/lib/sexpr/classes/Stroke.ts +0 -58
  151. package/lib/sexpr/classes/StrokeType.ts +0 -34
  152. package/lib/sexpr/classes/Symbol.ts +0 -1666
  153. package/lib/sexpr/classes/TextEffects.ts +0 -461
  154. package/lib/sexpr/classes/TitleBlock.ts +0 -369
  155. package/lib/sexpr/classes/Unit.ts +0 -28
  156. package/lib/sexpr/classes/Uuid.ts +0 -8
  157. package/lib/sexpr/classes/Via.ts +0 -363
  158. package/lib/sexpr/classes/ViaNet.ts +0 -60
  159. package/lib/sexpr/classes/Width.ts +0 -8
  160. package/lib/sexpr/classes/Wire.ts +0 -111
  161. package/lib/sexpr/classes/Xy.ts +0 -33
  162. package/lib/sexpr/classes/Zone.ts +0 -39
  163. package/lib/sexpr/index.ts +0 -130
  164. package/lib/sexpr/parseKicadSexpr.ts +0 -5
  165. package/lib/sexpr/parseToPrimitiveSExpr.ts +0 -245
  166. package/lib/sexpr/utils/indentLines.ts +0 -3
  167. package/lib/sexpr/utils/parseYesNo.ts +0 -12
  168. package/lib/sexpr/utils/quoteSExprString.ts +0 -8
  169. package/lib/sexpr/utils/strokeFromArgs.ts +0 -18
  170. package/lib/sexpr/utils/toNumberValue.ts +0 -13
  171. package/lib/sexpr/utils/toStringValue.ts +0 -11
  172. package/scripts/download-references.ts +0 -68
  173. package/tests/fixtures/expectEqualPrimitiveSExpr.ts +0 -199
  174. package/tests/fixtures/png-matcher.ts +0 -109
  175. package/tests/fixtures/preload.ts +0 -1
  176. package/tests/sexpr/KicadPcbDemos.test.ts +0 -48
  177. package/tests/sexpr/KicadSchDemos.test.ts +0 -49
  178. package/tests/sexpr/classes/Footprint.test.ts +0 -277
  179. package/tests/sexpr/classes/FootprintPad.test.ts +0 -78
  180. package/tests/sexpr/classes/FpArc.test.ts +0 -45
  181. package/tests/sexpr/classes/FpCircle.test.ts +0 -39
  182. package/tests/sexpr/classes/FpPoly.test.ts +0 -43
  183. package/tests/sexpr/classes/FpRect.test.ts +0 -40
  184. package/tests/sexpr/classes/FpTextBox.test.ts +0 -84
  185. package/tests/sexpr/classes/Image.test.ts +0 -58
  186. package/tests/sexpr/classes/KicadSch.test.ts +0 -95
  187. package/tests/sexpr/classes/Paper.test.ts +0 -30
  188. package/tests/sexpr/classes/Property.test.ts +0 -48
  189. package/tests/sexpr/classes/Setup.test.ts +0 -188
  190. package/tests/sexpr/classes/Sheet.test.ts +0 -107
  191. package/tests/sexpr/classes/Stroke.test.ts +0 -15
  192. package/tests/sexpr/classes/Symbol.test.ts +0 -96
  193. package/tests/sexpr/classes/TextEffects.test.ts +0 -56
  194. package/tests/sexpr/classes/TitleBlock.test.ts +0 -40
  195. package/tsconfig.json +0 -35
@@ -1,574 +0,0 @@
1
- import { SxClass } from "../../base-classes/SxClass"
2
- import type { PrimitiveSExpr } from "../../parseToPrimitiveSExpr"
3
-
4
- import { PcbPlotParams } from "./PcbPlotParams"
5
- import {
6
- SetupAllowSoldermaskBridgesInFootprints,
7
- SetupTenting,
8
- SetupUviasAllowed,
9
- SetupVisibleElements,
10
- SetupZone45Only,
11
- } from "./setupStringProperties"
12
- import {
13
- SetupAuxAxisOrigin,
14
- SetupGridOrigin,
15
- SetupModTextSize,
16
- SetupPadSize,
17
- SetupPadToPasteClearanceValues,
18
- SetupPcbTextSize,
19
- SetupTraceWidth,
20
- } from "./setupMultiValueProperties"
21
- import {
22
- SetupEdgeWidth,
23
- SetupLastTraceWidth,
24
- SetupModEdgeWidth,
25
- SetupModTextWidth,
26
- SetupPadDrill,
27
- SetupPadToMaskClearance,
28
- SetupPadToPasteClearance,
29
- SetupPadToPasteClearanceRatio,
30
- SetupPcbTextWidth,
31
- SetupSegmentWidth,
32
- SetupSolderMaskMinWidth,
33
- SetupTraceClearance,
34
- SetupTraceMin,
35
- SetupUviaDrill,
36
- SetupUviaMinDrill,
37
- SetupUviaMinSize,
38
- SetupUviaSize,
39
- SetupViaDrill,
40
- SetupViaMinDrill,
41
- SetupViaMinSize,
42
- SetupViaSize,
43
- SetupZoneClearance,
44
- } from "./setupNumericProperties"
45
- import type { SetupPropertyValues } from "./SetupPropertyTypes"
46
- import { Stackup } from "./Stackup"
47
-
48
- const TOKEN_TO_KEY: Record<string, SetupPropertyKey> = {
49
- stackup: "stackup",
50
- pcbplotparams: "pcbPlotParams",
51
- pad_to_mask_clearance: "padToMaskClearance",
52
- solder_mask_min_width: "solderMaskMinWidth",
53
- pad_to_paste_clearance: "padToPasteClearance",
54
- pad_to_paste_clearance_ratio: "padToPasteClearanceRatio",
55
- last_trace_width: "lastTraceWidth",
56
- trace_clearance: "traceClearance",
57
- zone_clearance: "zoneClearance",
58
- zone_45_only: "zone45Only",
59
- trace_min: "traceMin",
60
- segment_width: "segmentWidth",
61
- edge_width: "edgeWidth",
62
- via_size: "viaSize",
63
- via_drill: "viaDrill",
64
- via_min_size: "viaMinSize",
65
- via_min_drill: "viaMinDrill",
66
- uvias_allowed: "uviasAllowed",
67
- uvia_size: "uviaSize",
68
- uvia_drill: "uviaDrill",
69
- uvia_min_size: "uviaMinSize",
70
- uvia_min_drill: "uviaMinDrill",
71
- pcb_text_width: "pcbTextWidth",
72
- pcb_text_size: "pcbTextSize",
73
- mod_edge_width: "modEdgeWidth",
74
- mod_text_size: "modTextSize",
75
- mod_text_width: "modTextWidth",
76
- pad_size: "padSize",
77
- pad_drill: "padDrill",
78
- allow_soldermask_bridges_in_footprints: "allowSoldermaskBridgesInFootprints",
79
- tenting: "tenting",
80
- aux_axis_origin: "auxAxisOrigin",
81
- grid_origin: "gridOrigin",
82
- visible_elements: "visibleElements",
83
- pad_to_paste_clearance_values: "padToPasteClearanceValues",
84
- trace_width: "traceWidth",
85
- }
86
-
87
- type SetupPropertyKey = keyof SetupPropertyValues
88
-
89
- const SETUP_CHILD_ORDER: SetupPropertyKey[] = [
90
- "stackup",
91
- "padToMaskClearance",
92
- "solderMaskMinWidth",
93
- "padToPasteClearance",
94
- "padToPasteClearanceRatio",
95
- "lastTraceWidth",
96
- "traceClearance",
97
- "zoneClearance",
98
- "zone45Only",
99
- "traceMin",
100
- "segmentWidth",
101
- "edgeWidth",
102
- "viaSize",
103
- "viaDrill",
104
- "viaMinSize",
105
- "viaMinDrill",
106
- "uviaSize",
107
- "uviaDrill",
108
- "uviasAllowed",
109
- "uviaMinSize",
110
- "uviaMinDrill",
111
- "pcbTextWidth",
112
- "pcbTextSize",
113
- "modEdgeWidth",
114
- "modTextSize",
115
- "modTextWidth",
116
- "padSize",
117
- "padDrill",
118
- "allowSoldermaskBridgesInFootprints",
119
- "tenting",
120
- "auxAxisOrigin",
121
- "gridOrigin",
122
- "visibleElements",
123
- "padToPasteClearanceValues",
124
- "traceWidth",
125
- "pcbPlotParams",
126
- ]
127
-
128
- type Coordinate = { x: number; y: number }
129
-
130
- export class Setup extends SxClass {
131
- static override token = "setup"
132
- token = "setup"
133
-
134
- private _properties: Partial<Record<SetupPropertyKey, SxClass>> = {}
135
-
136
- static override fromSexprPrimitives(
137
- primitiveSexprs: PrimitiveSExpr[],
138
- ): Setup {
139
- const setup = new Setup()
140
- const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
141
- primitiveSexprs,
142
- this.token,
143
- )
144
-
145
- for (const [token, instance] of Object.entries(propertyMap)) {
146
- const key = TOKEN_TO_KEY[token]
147
- if (!key) {
148
- throw new Error(`Unsupported setup property token: ${token}`)
149
- }
150
- setup._properties[key] = instance
151
- }
152
-
153
- return setup
154
- }
155
-
156
- override getChildren(): SxClass[] {
157
- const children: SxClass[] = []
158
- for (const key of SETUP_CHILD_ORDER) {
159
- const child = this._properties[key]
160
- if (child) {
161
- children.push(child)
162
- }
163
- }
164
- return children
165
- }
166
-
167
- private setProperty(key: SetupPropertyKey, instance: SxClass | undefined) {
168
- if (instance) {
169
- this._properties[key] = instance
170
- return
171
- }
172
- delete this._properties[key]
173
- }
174
-
175
- private setNumberProperty<T extends SxClass>(
176
- key: SetupPropertyKey,
177
- value: number | undefined,
178
- ClassRef: new (value: number) => T,
179
- ) {
180
- if (value === undefined) {
181
- delete this._properties[key]
182
- return
183
- }
184
- this._properties[key] = new ClassRef(value)
185
- }
186
-
187
- private getPropertyInstance<T extends SxClass>(
188
- key: SetupPropertyKey,
189
- ClassRef: new (...args: any[]) => T,
190
- ): T | undefined {
191
- const value = this._properties[key]
192
- return value instanceof ClassRef ? value : undefined
193
- }
194
-
195
- get stackup(): Stackup | undefined {
196
- return this.getPropertyInstance("stackup", Stackup)
197
- }
198
-
199
- set stackup(value: Stackup | undefined) {
200
- if (value !== undefined && !(value instanceof Stackup)) {
201
- throw new Error("stackup must be a Stackup instance")
202
- }
203
- this.setProperty("stackup", value)
204
- }
205
-
206
- get pcbPlotParams(): PcbPlotParams | undefined {
207
- return this.getPropertyInstance("pcbPlotParams", PcbPlotParams)
208
- }
209
-
210
- set pcbPlotParams(value: PcbPlotParams | undefined) {
211
- if (value !== undefined && !(value instanceof PcbPlotParams)) {
212
- throw new Error("pcbPlotParams must be a PcbPlotParams instance")
213
- }
214
- this.setProperty("pcbPlotParams", value)
215
- }
216
-
217
- get padToMaskClearance(): number | undefined {
218
- return this.getPropertyInstance(
219
- "padToMaskClearance",
220
- SetupPadToMaskClearance,
221
- )?.value
222
- }
223
-
224
- set padToMaskClearance(value: number | undefined) {
225
- this.setNumberProperty("padToMaskClearance", value, SetupPadToMaskClearance)
226
- }
227
-
228
- get solderMaskMinWidth(): number | undefined {
229
- return this.getPropertyInstance(
230
- "solderMaskMinWidth",
231
- SetupSolderMaskMinWidth,
232
- )?.value
233
- }
234
-
235
- set solderMaskMinWidth(value: number | undefined) {
236
- this.setNumberProperty("solderMaskMinWidth", value, SetupSolderMaskMinWidth)
237
- }
238
-
239
- get padToPasteClearance(): number | undefined {
240
- return this.getPropertyInstance(
241
- "padToPasteClearance",
242
- SetupPadToPasteClearance,
243
- )?.value
244
- }
245
-
246
- set padToPasteClearance(value: number | undefined) {
247
- this.setNumberProperty(
248
- "padToPasteClearance",
249
- value,
250
- SetupPadToPasteClearance,
251
- )
252
- }
253
-
254
- get padToPasteClearanceRatio(): number | undefined {
255
- return this.getPropertyInstance(
256
- "padToPasteClearanceRatio",
257
- SetupPadToPasteClearanceRatio,
258
- )?.value
259
- }
260
-
261
- set padToPasteClearanceRatio(value: number | undefined) {
262
- this.setNumberProperty(
263
- "padToPasteClearanceRatio",
264
- value,
265
- SetupPadToPasteClearanceRatio,
266
- )
267
- }
268
-
269
- get lastTraceWidth(): number | undefined {
270
- return this.getPropertyInstance("lastTraceWidth", SetupLastTraceWidth)
271
- ?.value
272
- }
273
-
274
- set lastTraceWidth(value: number | undefined) {
275
- this.setNumberProperty("lastTraceWidth", value, SetupLastTraceWidth)
276
- }
277
-
278
- get traceClearance(): number | undefined {
279
- return this.getPropertyInstance("traceClearance", SetupTraceClearance)
280
- ?.value
281
- }
282
-
283
- set traceClearance(value: number | undefined) {
284
- this.setNumberProperty("traceClearance", value, SetupTraceClearance)
285
- }
286
-
287
- get zoneClearance(): number | undefined {
288
- return this.getPropertyInstance("zoneClearance", SetupZoneClearance)?.value
289
- }
290
-
291
- set zoneClearance(value: number | undefined) {
292
- this.setNumberProperty("zoneClearance", value, SetupZoneClearance)
293
- }
294
-
295
- get zone45Only(): string | undefined {
296
- return this.getPropertyInstance("zone45Only", SetupZone45Only)?.value
297
- }
298
-
299
- set zone45Only(value: string | undefined) {
300
- this.setProperty(
301
- "zone45Only",
302
- value === undefined ? undefined : new SetupZone45Only(value),
303
- )
304
- }
305
-
306
- get traceMin(): number | undefined {
307
- return this.getPropertyInstance("traceMin", SetupTraceMin)?.value
308
- }
309
-
310
- set traceMin(value: number | undefined) {
311
- this.setNumberProperty("traceMin", value, SetupTraceMin)
312
- }
313
-
314
- get segmentWidth(): number | undefined {
315
- return this.getPropertyInstance("segmentWidth", SetupSegmentWidth)?.value
316
- }
317
-
318
- set segmentWidth(value: number | undefined) {
319
- this.setNumberProperty("segmentWidth", value, SetupSegmentWidth)
320
- }
321
-
322
- get edgeWidth(): number | undefined {
323
- return this.getPropertyInstance("edgeWidth", SetupEdgeWidth)?.value
324
- }
325
-
326
- set edgeWidth(value: number | undefined) {
327
- this.setNumberProperty("edgeWidth", value, SetupEdgeWidth)
328
- }
329
-
330
- get viaSize(): number | undefined {
331
- return this.getPropertyInstance("viaSize", SetupViaSize)?.value
332
- }
333
-
334
- set viaSize(value: number | undefined) {
335
- this.setNumberProperty("viaSize", value, SetupViaSize)
336
- }
337
-
338
- get viaDrill(): number | undefined {
339
- return this.getPropertyInstance("viaDrill", SetupViaDrill)?.value
340
- }
341
-
342
- set viaDrill(value: number | undefined) {
343
- this.setNumberProperty("viaDrill", value, SetupViaDrill)
344
- }
345
-
346
- get viaMinSize(): number | undefined {
347
- return this.getPropertyInstance("viaMinSize", SetupViaMinSize)?.value
348
- }
349
-
350
- set viaMinSize(value: number | undefined) {
351
- this.setNumberProperty("viaMinSize", value, SetupViaMinSize)
352
- }
353
-
354
- get viaMinDrill(): number | undefined {
355
- return this.getPropertyInstance("viaMinDrill", SetupViaMinDrill)?.value
356
- }
357
-
358
- set viaMinDrill(value: number | undefined) {
359
- this.setNumberProperty("viaMinDrill", value, SetupViaMinDrill)
360
- }
361
-
362
- get uviasAllowed(): string | undefined {
363
- return this.getPropertyInstance("uviasAllowed", SetupUviasAllowed)?.value
364
- }
365
-
366
- set uviasAllowed(value: string | undefined) {
367
- this.setProperty(
368
- "uviasAllowed",
369
- value === undefined ? undefined : new SetupUviasAllowed(value),
370
- )
371
- }
372
-
373
- get uviaSize(): number | undefined {
374
- return this.getPropertyInstance("uviaSize", SetupUviaSize)?.value
375
- }
376
-
377
- set uviaSize(value: number | undefined) {
378
- this.setNumberProperty("uviaSize", value, SetupUviaSize)
379
- }
380
-
381
- get uviaDrill(): number | undefined {
382
- return this.getPropertyInstance("uviaDrill", SetupUviaDrill)?.value
383
- }
384
-
385
- set uviaDrill(value: number | undefined) {
386
- this.setNumberProperty("uviaDrill", value, SetupUviaDrill)
387
- }
388
-
389
- get uviaMinSize(): number | undefined {
390
- return this.getPropertyInstance("uviaMinSize", SetupUviaMinSize)?.value
391
- }
392
-
393
- set uviaMinSize(value: number | undefined) {
394
- this.setNumberProperty("uviaMinSize", value, SetupUviaMinSize)
395
- }
396
-
397
- get uviaMinDrill(): number | undefined {
398
- return this.getPropertyInstance("uviaMinDrill", SetupUviaMinDrill)?.value
399
- }
400
-
401
- set uviaMinDrill(value: number | undefined) {
402
- this.setNumberProperty("uviaMinDrill", value, SetupUviaMinDrill)
403
- }
404
-
405
- get pcbTextWidth(): number | undefined {
406
- return this.getPropertyInstance("pcbTextWidth", SetupPcbTextWidth)?.value
407
- }
408
-
409
- set pcbTextWidth(value: number | undefined) {
410
- this.setNumberProperty("pcbTextWidth", value, SetupPcbTextWidth)
411
- }
412
-
413
- get pcbTextSize(): number[] | undefined {
414
- return this.getPropertyInstance("pcbTextSize", SetupPcbTextSize)?.values
415
- }
416
-
417
- set pcbTextSize(values: number[] | undefined) {
418
- if (values === undefined) {
419
- delete this._properties.pcbTextSize
420
- return
421
- }
422
- this.setProperty("pcbTextSize", new SetupPcbTextSize(values))
423
- }
424
-
425
- get modEdgeWidth(): number | undefined {
426
- return this.getPropertyInstance("modEdgeWidth", SetupModEdgeWidth)?.value
427
- }
428
-
429
- set modEdgeWidth(value: number | undefined) {
430
- this.setNumberProperty("modEdgeWidth", value, SetupModEdgeWidth)
431
- }
432
-
433
- get modTextSize(): number[] | undefined {
434
- return this.getPropertyInstance("modTextSize", SetupModTextSize)?.values
435
- }
436
-
437
- set modTextSize(values: number[] | undefined) {
438
- if (values === undefined) {
439
- delete this._properties.modTextSize
440
- return
441
- }
442
- this.setProperty("modTextSize", new SetupModTextSize(values))
443
- }
444
-
445
- get modTextWidth(): number | undefined {
446
- return this.getPropertyInstance("modTextWidth", SetupModTextWidth)?.value
447
- }
448
-
449
- set modTextWidth(value: number | undefined) {
450
- this.setNumberProperty("modTextWidth", value, SetupModTextWidth)
451
- }
452
-
453
- get padSize(): number[] | undefined {
454
- return this.getPropertyInstance("padSize", SetupPadSize)?.values
455
- }
456
-
457
- set padSize(values: number[] | undefined) {
458
- if (values === undefined) {
459
- delete this._properties.padSize
460
- return
461
- }
462
- this.setProperty("padSize", new SetupPadSize(values))
463
- }
464
-
465
- get padDrill(): number | undefined {
466
- return this.getPropertyInstance("padDrill", SetupPadDrill)?.value
467
- }
468
-
469
- set padDrill(value: number | undefined) {
470
- this.setNumberProperty("padDrill", value, SetupPadDrill)
471
- }
472
-
473
- get allowSoldermaskBridgesInFootprints(): string | undefined {
474
- return this.getPropertyInstance(
475
- "allowSoldermaskBridgesInFootprints",
476
- SetupAllowSoldermaskBridgesInFootprints,
477
- )?.value
478
- }
479
-
480
- set allowSoldermaskBridgesInFootprints(value: string | undefined) {
481
- this.setProperty(
482
- "allowSoldermaskBridgesInFootprints",
483
- value === undefined
484
- ? undefined
485
- : new SetupAllowSoldermaskBridgesInFootprints(value),
486
- )
487
- }
488
-
489
- get tenting(): string[] | undefined {
490
- return this.getPropertyInstance("tenting", SetupTenting)?.sides
491
- }
492
-
493
- set tenting(sides: string[] | undefined) {
494
- if (sides === undefined) {
495
- delete this._properties.tenting
496
- return
497
- }
498
- this.setProperty("tenting", new SetupTenting(sides))
499
- }
500
-
501
- get auxAxisOrigin(): Coordinate | undefined {
502
- const origin = this.getPropertyInstance("auxAxisOrigin", SetupAuxAxisOrigin)
503
- if (!origin) return undefined
504
- return { x: origin.x, y: origin.y }
505
- }
506
-
507
- set auxAxisOrigin(origin: Coordinate | undefined) {
508
- if (!origin) {
509
- delete this._properties.auxAxisOrigin
510
- return
511
- }
512
- this.setProperty(
513
- "auxAxisOrigin",
514
- new SetupAuxAxisOrigin(origin.x, origin.y),
515
- )
516
- }
517
-
518
- get gridOrigin(): Coordinate | undefined {
519
- const origin = this.getPropertyInstance("gridOrigin", SetupGridOrigin)
520
- if (!origin) return undefined
521
- return { x: origin.x, y: origin.y }
522
- }
523
-
524
- set gridOrigin(origin: Coordinate | undefined) {
525
- if (!origin) {
526
- delete this._properties.gridOrigin
527
- return
528
- }
529
- this.setProperty("gridOrigin", new SetupGridOrigin(origin.x, origin.y))
530
- }
531
-
532
- get visibleElements(): string | undefined {
533
- return this.getPropertyInstance("visibleElements", SetupVisibleElements)
534
- ?.value
535
- }
536
-
537
- set visibleElements(value: string | undefined) {
538
- this.setProperty(
539
- "visibleElements",
540
- value === undefined ? undefined : new SetupVisibleElements(value),
541
- )
542
- }
543
-
544
- get padToPasteClearanceValues(): number[] | undefined {
545
- return this.getPropertyInstance(
546
- "padToPasteClearanceValues",
547
- SetupPadToPasteClearanceValues,
548
- )?.values
549
- }
550
-
551
- set padToPasteClearanceValues(values: number[] | undefined) {
552
- if (values === undefined) {
553
- delete this._properties.padToPasteClearanceValues
554
- return
555
- }
556
- this.setProperty(
557
- "padToPasteClearanceValues",
558
- new SetupPadToPasteClearanceValues(values),
559
- )
560
- }
561
-
562
- get traceWidth(): number[] | undefined {
563
- return this.getPropertyInstance("traceWidth", SetupTraceWidth)?.values
564
- }
565
-
566
- set traceWidth(values: number[] | undefined) {
567
- if (values === undefined) {
568
- delete this._properties.traceWidth
569
- return
570
- }
571
- this.setProperty("traceWidth", new SetupTraceWidth(values))
572
- }
573
- }
574
- SxClass.register(Setup)
@@ -1,119 +0,0 @@
1
- import { PcbPlotParams } from "./PcbPlotParams"
2
- import { Stackup } from "./Stackup"
3
- import {
4
- SetupAuxAxisOrigin,
5
- SetupGridOrigin,
6
- SetupModTextSize,
7
- SetupPadSize,
8
- SetupPadToPasteClearanceValues,
9
- SetupPcbTextSize,
10
- SetupTraceWidth,
11
- } from "./setupMultiValueProperties"
12
- import {
13
- SetupAllowSoldermaskBridgesInFootprints,
14
- SetupTenting,
15
- SetupUviasAllowed,
16
- SetupVisibleElements,
17
- SetupZone45Only,
18
- } from "./setupStringProperties"
19
- import {
20
- SetupEdgeWidth,
21
- SetupLastTraceWidth,
22
- SetupModEdgeWidth,
23
- SetupModTextWidth,
24
- SetupPadDrill,
25
- SetupPadToMaskClearance,
26
- SetupPadToPasteClearance,
27
- SetupPadToPasteClearanceRatio,
28
- SetupPcbTextWidth,
29
- SetupSegmentWidth,
30
- SetupSolderMaskMinWidth,
31
- SetupTraceClearance,
32
- SetupTraceMin,
33
- SetupUviaDrill,
34
- SetupUviaMinDrill,
35
- SetupUviaMinSize,
36
- SetupUviaSize,
37
- SetupViaDrill,
38
- SetupViaMinDrill,
39
- SetupViaMinSize,
40
- SetupViaSize,
41
- SetupZoneClearance,
42
- } from "./setupNumericProperties"
43
-
44
- export interface SetupPropertyValues {
45
- stackup?: Stackup
46
- pcbPlotParams?: PcbPlotParams
47
- padToMaskClearance?: SetupPadToMaskClearance
48
- solderMaskMinWidth?: SetupSolderMaskMinWidth
49
- padToPasteClearance?: SetupPadToPasteClearance
50
- padToPasteClearanceRatio?: SetupPadToPasteClearanceRatio
51
- lastTraceWidth?: SetupLastTraceWidth
52
- traceClearance?: SetupTraceClearance
53
- zoneClearance?: SetupZoneClearance
54
- zone45Only?: SetupZone45Only
55
- traceMin?: SetupTraceMin
56
- segmentWidth?: SetupSegmentWidth
57
- edgeWidth?: SetupEdgeWidth
58
- viaSize?: SetupViaSize
59
- viaDrill?: SetupViaDrill
60
- viaMinSize?: SetupViaMinSize
61
- viaMinDrill?: SetupViaMinDrill
62
- uviasAllowed?: SetupUviasAllowed
63
- uviaSize?: SetupUviaSize
64
- uviaDrill?: SetupUviaDrill
65
- uviaMinSize?: SetupUviaMinSize
66
- uviaMinDrill?: SetupUviaMinDrill
67
- pcbTextWidth?: SetupPcbTextWidth
68
- pcbTextSize?: SetupPcbTextSize
69
- modEdgeWidth?: SetupModEdgeWidth
70
- modTextSize?: SetupModTextSize
71
- modTextWidth?: SetupModTextWidth
72
- padSize?: SetupPadSize
73
- padDrill?: SetupPadDrill
74
- allowSoldermaskBridgesInFootprints?: SetupAllowSoldermaskBridgesInFootprints
75
- tenting?: SetupTenting
76
- auxAxisOrigin?: SetupAuxAxisOrigin
77
- gridOrigin?: SetupGridOrigin
78
- visibleElements?: SetupVisibleElements
79
- padToPasteClearanceValues?: SetupPadToPasteClearanceValues
80
- traceWidth?: SetupTraceWidth
81
- }
82
-
83
- export type SetupProperty =
84
- | Stackup
85
- | PcbPlotParams
86
- | SetupPadToMaskClearance
87
- | SetupSolderMaskMinWidth
88
- | SetupPadToPasteClearance
89
- | SetupPadToPasteClearanceRatio
90
- | SetupLastTraceWidth
91
- | SetupTraceClearance
92
- | SetupZoneClearance
93
- | SetupZone45Only
94
- | SetupTraceMin
95
- | SetupSegmentWidth
96
- | SetupEdgeWidth
97
- | SetupViaSize
98
- | SetupViaDrill
99
- | SetupViaMinSize
100
- | SetupViaMinDrill
101
- | SetupUviasAllowed
102
- | SetupUviaSize
103
- | SetupUviaDrill
104
- | SetupUviaMinSize
105
- | SetupUviaMinDrill
106
- | SetupPcbTextWidth
107
- | SetupPcbTextSize
108
- | SetupModEdgeWidth
109
- | SetupModTextSize
110
- | SetupModTextWidth
111
- | SetupPadSize
112
- | SetupPadDrill
113
- | SetupAllowSoldermaskBridgesInFootprints
114
- | SetupTenting
115
- | SetupAuxAxisOrigin
116
- | SetupGridOrigin
117
- | SetupVisibleElements
118
- | SetupPadToPasteClearanceValues
119
- | SetupTraceWidth