kicadts 0.0.1

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 (188) hide show
  1. package/.cursor/rules/use-bun-instead-of-node-vite-npm-pnpm.mdc +111 -0
  2. package/.vscode/settings.json +16 -0
  3. package/AGENTS.md +30 -0
  4. package/README.md +206 -0
  5. package/biome.json +93 -0
  6. package/bun.lock +48 -0
  7. package/bunfig.toml +5 -0
  8. package/lib/index.ts +1 -0
  9. package/lib/sexpr/base-classes/SxClass.ts +164 -0
  10. package/lib/sexpr/base-classes/SxPrimitiveBoolean.ts +35 -0
  11. package/lib/sexpr/base-classes/SxPrimitiveNumber.ts +26 -0
  12. package/lib/sexpr/base-classes/SxPrimitiveString.ts +26 -0
  13. package/lib/sexpr/classes/At.ts +38 -0
  14. package/lib/sexpr/classes/Bus.ts +83 -0
  15. package/lib/sexpr/classes/BusEntry.ts +142 -0
  16. package/lib/sexpr/classes/Color.ts +29 -0
  17. package/lib/sexpr/classes/Dnp.ts +8 -0
  18. package/lib/sexpr/classes/EmbeddedFonts.ts +70 -0
  19. package/lib/sexpr/classes/ExcludeFromSim.ts +8 -0
  20. package/lib/sexpr/classes/FieldsAutoplaced.ts +8 -0
  21. package/lib/sexpr/classes/Footprint.ts +719 -0
  22. package/lib/sexpr/classes/FootprintAttr.ts +102 -0
  23. package/lib/sexpr/classes/FootprintAutoplaceCost180.ts +9 -0
  24. package/lib/sexpr/classes/FootprintAutoplaceCost90.ts +9 -0
  25. package/lib/sexpr/classes/FootprintClearance.ts +9 -0
  26. package/lib/sexpr/classes/FootprintDescr.ts +44 -0
  27. package/lib/sexpr/classes/FootprintLocked.ts +32 -0
  28. package/lib/sexpr/classes/FootprintModel.ts +145 -0
  29. package/lib/sexpr/classes/FootprintNetTiePadGroups.ts +50 -0
  30. package/lib/sexpr/classes/FootprintPad.ts +705 -0
  31. package/lib/sexpr/classes/FootprintPath.ts +44 -0
  32. package/lib/sexpr/classes/FootprintPlaced.ts +32 -0
  33. package/lib/sexpr/classes/FootprintPrivateLayers.ts +56 -0
  34. package/lib/sexpr/classes/FootprintSheetfile.ts +44 -0
  35. package/lib/sexpr/classes/FootprintSheetname.ts +44 -0
  36. package/lib/sexpr/classes/FootprintSolderMaskMargin.ts +9 -0
  37. package/lib/sexpr/classes/FootprintSolderPasteMargin.ts +9 -0
  38. package/lib/sexpr/classes/FootprintSolderPasteRatio.ts +9 -0
  39. package/lib/sexpr/classes/FootprintTags.ts +44 -0
  40. package/lib/sexpr/classes/FootprintTedit.ts +21 -0
  41. package/lib/sexpr/classes/FootprintThermalGap.ts +9 -0
  42. package/lib/sexpr/classes/FootprintThermalWidth.ts +9 -0
  43. package/lib/sexpr/classes/FootprintZoneConnect.ts +9 -0
  44. package/lib/sexpr/classes/FpArc.ts +289 -0
  45. package/lib/sexpr/classes/FpCircle.ts +293 -0
  46. package/lib/sexpr/classes/FpLine.ts +288 -0
  47. package/lib/sexpr/classes/FpPoly.ts +266 -0
  48. package/lib/sexpr/classes/FpPolyFill.ts +48 -0
  49. package/lib/sexpr/classes/FpPolyLocked.ts +40 -0
  50. package/lib/sexpr/classes/FpRect.ts +293 -0
  51. package/lib/sexpr/classes/FpText.ts +341 -0
  52. package/lib/sexpr/classes/FpTextBox.ts +412 -0
  53. package/lib/sexpr/classes/GrLine.ts +245 -0
  54. package/lib/sexpr/classes/GrLineAngle.ts +32 -0
  55. package/lib/sexpr/classes/GrLineEnd.ts +61 -0
  56. package/lib/sexpr/classes/GrLineLocked.ts +40 -0
  57. package/lib/sexpr/classes/GrLineStart.ts +61 -0
  58. package/lib/sexpr/classes/GrText.ts +202 -0
  59. package/lib/sexpr/classes/Image.ts +256 -0
  60. package/lib/sexpr/classes/InBom.ts +8 -0
  61. package/lib/sexpr/classes/Junction.ts +134 -0
  62. package/lib/sexpr/classes/KicadPcb.ts +313 -0
  63. package/lib/sexpr/classes/KicadSch.ts +303 -0
  64. package/lib/sexpr/classes/KicadSchGenerator.ts +32 -0
  65. package/lib/sexpr/classes/KicadSchGeneratorVersion.ts +30 -0
  66. package/lib/sexpr/classes/KicadSchVersion.ts +22 -0
  67. package/lib/sexpr/classes/Label.ts +136 -0
  68. package/lib/sexpr/classes/Layer.ts +51 -0
  69. package/lib/sexpr/classes/Layers.ts +47 -0
  70. package/lib/sexpr/classes/LibSymbols.ts +61 -0
  71. package/lib/sexpr/classes/NoConnect.ts +73 -0
  72. package/lib/sexpr/classes/OnBoard.ts +8 -0
  73. package/lib/sexpr/classes/PadChamfer.ts +50 -0
  74. package/lib/sexpr/classes/PadChamferRatio.ts +9 -0
  75. package/lib/sexpr/classes/PadClearance.ts +9 -0
  76. package/lib/sexpr/classes/PadDieLength.ts +9 -0
  77. package/lib/sexpr/classes/PadDrill.ts +145 -0
  78. package/lib/sexpr/classes/PadDrillOffset.ts +54 -0
  79. package/lib/sexpr/classes/PadLayers.ts +59 -0
  80. package/lib/sexpr/classes/PadNet.ts +56 -0
  81. package/lib/sexpr/classes/PadOptions.ts +182 -0
  82. package/lib/sexpr/classes/PadPinFunction.ts +9 -0
  83. package/lib/sexpr/classes/PadPinType.ts +9 -0
  84. package/lib/sexpr/classes/PadPrimitiveGrArc.ts +254 -0
  85. package/lib/sexpr/classes/PadPrimitiveGrCircle.ts +279 -0
  86. package/lib/sexpr/classes/PadPrimitiveGrLine.ts +126 -0
  87. package/lib/sexpr/classes/PadPrimitives.ts +289 -0
  88. package/lib/sexpr/classes/PadRectDelta.ts +57 -0
  89. package/lib/sexpr/classes/PadRoundrectRratio.ts +9 -0
  90. package/lib/sexpr/classes/PadSize.ts +54 -0
  91. package/lib/sexpr/classes/PadSolderMaskMargin.ts +9 -0
  92. package/lib/sexpr/classes/PadSolderPasteMargin.ts +9 -0
  93. package/lib/sexpr/classes/PadSolderPasteMarginRatio.ts +9 -0
  94. package/lib/sexpr/classes/PadTeardrops.ts +208 -0
  95. package/lib/sexpr/classes/PadThermalBridgeAngle.ts +9 -0
  96. package/lib/sexpr/classes/PadThermalGap.ts +9 -0
  97. package/lib/sexpr/classes/PadThermalWidth.ts +9 -0
  98. package/lib/sexpr/classes/PadZoneConnect.ts +9 -0
  99. package/lib/sexpr/classes/Paper.ts +119 -0
  100. package/lib/sexpr/classes/PcbGeneral.ts +75 -0
  101. package/lib/sexpr/classes/PcbGeneralLegacyTeardrops.ts +44 -0
  102. package/lib/sexpr/classes/PcbGeneralThickness.ts +9 -0
  103. package/lib/sexpr/classes/PcbGenerator.ts +16 -0
  104. package/lib/sexpr/classes/PcbGeneratorVersion.ts +16 -0
  105. package/lib/sexpr/classes/PcbLayerDefinition.ts +102 -0
  106. package/lib/sexpr/classes/PcbLayers.ts +34 -0
  107. package/lib/sexpr/classes/PcbNet.ts +56 -0
  108. package/lib/sexpr/classes/PcbVersion.ts +9 -0
  109. package/lib/sexpr/classes/Property.ts +246 -0
  110. package/lib/sexpr/classes/PropertyHide.ts +9 -0
  111. package/lib/sexpr/classes/PropertyUnlocked.ts +9 -0
  112. package/lib/sexpr/classes/Pts.ts +65 -0
  113. package/lib/sexpr/classes/RenderCache.ts +221 -0
  114. package/lib/sexpr/classes/SchematicText.ts +141 -0
  115. package/lib/sexpr/classes/Segment.ts +222 -0
  116. package/lib/sexpr/classes/SegmentEnd.ts +59 -0
  117. package/lib/sexpr/classes/SegmentLocked.ts +33 -0
  118. package/lib/sexpr/classes/SegmentNet.ts +62 -0
  119. package/lib/sexpr/classes/SegmentStart.ts +59 -0
  120. package/lib/sexpr/classes/Setup/PcbPlotParams.ts +729 -0
  121. package/lib/sexpr/classes/Setup/PcbPlotParamsBase.ts +9 -0
  122. package/lib/sexpr/classes/Setup/PcbPlotParamsNumericProperties.ts +105 -0
  123. package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesA.ts +104 -0
  124. package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesB.ts +105 -0
  125. package/lib/sexpr/classes/Setup/Setup.ts +573 -0
  126. package/lib/sexpr/classes/Setup/SetupPropertyTypes.ts +119 -0
  127. package/lib/sexpr/classes/Setup/Stackup.ts +140 -0
  128. package/lib/sexpr/classes/Setup/StackupLayer.ts +233 -0
  129. package/lib/sexpr/classes/Setup/StackupLayerProperties.ts +78 -0
  130. package/lib/sexpr/classes/Setup/StackupProperties.ts +41 -0
  131. package/lib/sexpr/classes/Setup/base.ts +167 -0
  132. package/lib/sexpr/classes/Setup/index.ts +14 -0
  133. package/lib/sexpr/classes/Setup/setupMultiValueProperties.ts +54 -0
  134. package/lib/sexpr/classes/Setup/setupNumericProperties.ts +151 -0
  135. package/lib/sexpr/classes/Setup/setupPropertyHandlers.ts +90 -0
  136. package/lib/sexpr/classes/Setup/setupStringProperties.ts +75 -0
  137. package/lib/sexpr/classes/Sheet.ts +205 -0
  138. package/lib/sexpr/classes/SheetFill.ts +44 -0
  139. package/lib/sexpr/classes/SheetInstances.ts +168 -0
  140. package/lib/sexpr/classes/SheetInstancesRoot.ts +165 -0
  141. package/lib/sexpr/classes/SheetPin.ts +122 -0
  142. package/lib/sexpr/classes/SheetProperty.ts +115 -0
  143. package/lib/sexpr/classes/SheetSize.ts +44 -0
  144. package/lib/sexpr/classes/Stroke.ts +58 -0
  145. package/lib/sexpr/classes/StrokeType.ts +34 -0
  146. package/lib/sexpr/classes/Symbol.ts +1541 -0
  147. package/lib/sexpr/classes/TextEffects.ts +444 -0
  148. package/lib/sexpr/classes/TitleBlock.ts +352 -0
  149. package/lib/sexpr/classes/Unit.ts +28 -0
  150. package/lib/sexpr/classes/Uuid.ts +8 -0
  151. package/lib/sexpr/classes/Via.ts +328 -0
  152. package/lib/sexpr/classes/ViaNet.ts +59 -0
  153. package/lib/sexpr/classes/Width.ts +8 -0
  154. package/lib/sexpr/classes/Wire.ts +91 -0
  155. package/lib/sexpr/classes/Xy.ts +35 -0
  156. package/lib/sexpr/classes/Zone.ts +41 -0
  157. package/lib/sexpr/index.ts +130 -0
  158. package/lib/sexpr/parseKicadSexpr.ts +5 -0
  159. package/lib/sexpr/parseToPrimitiveSExpr.ts +240 -0
  160. package/lib/sexpr/utils/indentLines.ts +3 -0
  161. package/lib/sexpr/utils/parseYesNo.ts +12 -0
  162. package/lib/sexpr/utils/quoteSExprString.ts +8 -0
  163. package/lib/sexpr/utils/strokeFromArgs.ts +19 -0
  164. package/lib/sexpr/utils/toNumberValue.ts +13 -0
  165. package/lib/sexpr/utils/toStringValue.ts +10 -0
  166. package/package.json +26 -0
  167. package/scripts/download-references.ts +66 -0
  168. package/tests/fixtures/expectEqualPrimitiveSExpr.ts +200 -0
  169. package/tests/sexpr/KicadPcbDemos.test.ts +48 -0
  170. package/tests/sexpr/KicadSchDemos.test.ts +49 -0
  171. package/tests/sexpr/classes/Footprint.test.ts +277 -0
  172. package/tests/sexpr/classes/FootprintPad.test.ts +71 -0
  173. package/tests/sexpr/classes/FpArc.test.ts +45 -0
  174. package/tests/sexpr/classes/FpCircle.test.ts +39 -0
  175. package/tests/sexpr/classes/FpPoly.test.ts +43 -0
  176. package/tests/sexpr/classes/FpRect.test.ts +40 -0
  177. package/tests/sexpr/classes/FpTextBox.test.ts +84 -0
  178. package/tests/sexpr/classes/Image.test.ts +50 -0
  179. package/tests/sexpr/classes/KicadSch.test.ts +97 -0
  180. package/tests/sexpr/classes/Paper.test.ts +30 -0
  181. package/tests/sexpr/classes/Property.test.ts +48 -0
  182. package/tests/sexpr/classes/Setup.test.ts +189 -0
  183. package/tests/sexpr/classes/Sheet.test.ts +107 -0
  184. package/tests/sexpr/classes/Stroke.test.ts +15 -0
  185. package/tests/sexpr/classes/Symbol.test.ts +96 -0
  186. package/tests/sexpr/classes/TextEffects.test.ts +56 -0
  187. package/tests/sexpr/classes/TitleBlock.test.ts +40 -0
  188. package/tsconfig.json +35 -0
@@ -0,0 +1,729 @@
1
+ import { SxClass } from "../../base-classes/SxClass"
2
+ import type { PrimitiveSExpr } from "../../parseToPrimitiveSExpr"
3
+
4
+ import {
5
+ PlotParamDashedLineDashRatio,
6
+ PlotParamDashedLineGapRatio,
7
+ PlotParamDrillShape,
8
+ PlotParamHpglPenDiameter,
9
+ PlotParamHpglPenNumber,
10
+ PlotParamHpglPenOverlay,
11
+ PlotParamHpglPenSpeed,
12
+ PlotParamLayerSelection,
13
+ PlotParamLineWidth,
14
+ PlotParamMode,
15
+ PlotParamOutputFormat,
16
+ PlotParamPlotOnAllLayersSelection,
17
+ PlotParamScaleSelection,
18
+ PlotParamSvgPrecision,
19
+ } from "./PcbPlotParamsNumericProperties"
20
+ import { PlotParamProperty } from "./PcbPlotParamsBase"
21
+ import {
22
+ PlotParamCreateGerberJobFile,
23
+ PlotParamDisableApertMacros,
24
+ PlotParamDxfImperialUnits,
25
+ PlotParamDxfPolygonMode,
26
+ PlotParamDxfUsePcbnewFont,
27
+ PlotParamExcludeEdgeLayer,
28
+ PlotParamPdfBackFpPropertyPopups,
29
+ PlotParamPdfFrontFpPropertyPopups,
30
+ PlotParamPdfMetadata,
31
+ PlotParamPdfSingleDocument,
32
+ PlotParamPlotFrameRef,
33
+ PlotParamPsNegative,
34
+ PlotParamUseAuxOrigin,
35
+ PlotParamUseGerberAdvancedAttributes,
36
+ PlotParamUseGerberAttributes,
37
+ PlotParamUseGerberExtensions,
38
+ PlotParamViaOnMask,
39
+ } from "./PcbPlotParamsStringPropertiesA"
40
+ import {
41
+ PlotParamCrossoutDnpOnFab,
42
+ PlotParamHideDnpOnFab,
43
+ PlotParamMirror,
44
+ PlotParamOutputDirectory,
45
+ PlotParamPadOnSilk,
46
+ PlotParamPlotBlackAndWhite,
47
+ PlotParamPlotInvisible,
48
+ PlotParamPlotInvisibleText,
49
+ PlotParamPlotOnAllLayers,
50
+ PlotParamPlotOtherText,
51
+ PlotParamPlotPadNumbers,
52
+ PlotParamPlotReference,
53
+ PlotParamPlotValue,
54
+ PlotParamPsA4Output,
55
+ PlotParamSketchDnpOnFab,
56
+ PlotParamSketchPadsOnFab,
57
+ PlotParamSubtractMaskFromSilk,
58
+ } from "./PcbPlotParamsStringPropertiesB"
59
+
60
+ const TOKEN_TO_KEY = {
61
+ layerselection: "layerselection",
62
+ plot_on_all_layers_selection: "plot_on_all_layers_selection",
63
+ disableapertmacros: "disableapertmacros",
64
+ usegerberextensions: "usegerberextensions",
65
+ usegerberattributes: "usegerberattributes",
66
+ usegerberadvancedattributes: "usegerberadvancedattributes",
67
+ creategerberjobfile: "creategerberjobfile",
68
+ excludeedgelayer: "excludeedgelayer",
69
+ dashed_line_dash_ratio: "dashed_line_dash_ratio",
70
+ dashed_line_gap_ratio: "dashed_line_gap_ratio",
71
+ svgprecision: "svgprecision",
72
+ linewidth: "linewidth",
73
+ plotframeref: "plotframeref",
74
+ plotreference: "plotreference",
75
+ plotvalue: "plotvalue",
76
+ plotothertext: "plotothertext",
77
+ plotinvisibletext: "plotinvisibletext",
78
+ padsonsilk: "padsonsilk",
79
+ sketchpadsonfab: "sketchpadsonfab",
80
+ plotpadnumbers: "plotpadnumbers",
81
+ hidednponfab: "hidednponfab",
82
+ sketchdnponfab: "sketchdnponfab",
83
+ crossoutdnponfab: "crossoutdnponfab",
84
+ subtractmaskfromsilk: "subtractmaskfromsilk",
85
+ plot_black_and_white: "plot_black_and_white",
86
+ plot_on_all_layers: "plot_on_all_layers",
87
+ plotinvisible: "plotinvisible",
88
+ mode: "mode",
89
+ useauxorigin: "useauxorigin",
90
+ viasonmask: "viasonmask",
91
+ hpglpennumber: "hpglpennumber",
92
+ hpglpenspeed: "hpglpenspeed",
93
+ hpglpendiameter: "hpglpendiameter",
94
+ hpglpenoverlay: "hpglpenoverlay",
95
+ pdf_front_fp_property_popups: "pdf_front_fp_property_popups",
96
+ pdf_back_fp_property_popups: "pdf_back_fp_property_popups",
97
+ pdf_metadata: "pdf_metadata",
98
+ pdf_single_document: "pdf_single_document",
99
+ dxfpolygonmode: "dxfpolygonmode",
100
+ dxfimperialunits: "dxfimperialunits",
101
+ dxfusepcbnewfont: "dxfusepcbnewfont",
102
+ psnegative: "psnegative",
103
+ psa4output: "psa4output",
104
+ mirror: "mirror",
105
+ outputformat: "outputformat",
106
+ drillshape: "drillshape",
107
+ scaleselection: "scaleselection",
108
+ outputdirectory: "outputdirectory",
109
+ } as const
110
+
111
+ type PlotParamKey = (typeof TOKEN_TO_KEY)[keyof typeof TOKEN_TO_KEY]
112
+
113
+ type PcbPlotParamValues = Partial<Record<PlotParamKey, PlotParamProperty<any>>>
114
+
115
+ const PCB_PLOT_PARAM_CHILD_ORDER: PlotParamKey[] = [
116
+ "layerselection",
117
+ "plot_on_all_layers_selection",
118
+ "disableapertmacros",
119
+ "usegerberextensions",
120
+ "usegerberattributes",
121
+ "usegerberadvancedattributes",
122
+ "creategerberjobfile",
123
+ "excludeedgelayer",
124
+ "dashed_line_dash_ratio",
125
+ "dashed_line_gap_ratio",
126
+ "svgprecision",
127
+ "linewidth",
128
+ "plotframeref",
129
+ "plotreference",
130
+ "plotvalue",
131
+ "plotothertext",
132
+ "mode",
133
+ "useauxorigin",
134
+ "viasonmask",
135
+ "hpglpennumber",
136
+ "hpglpenspeed",
137
+ "hpglpendiameter",
138
+ "hpglpenoverlay",
139
+ "pdf_front_fp_property_popups",
140
+ "pdf_back_fp_property_popups",
141
+ "pdf_metadata",
142
+ "pdf_single_document",
143
+ "dxfpolygonmode",
144
+ "dxfimperialunits",
145
+ "dxfusepcbnewfont",
146
+ "psnegative",
147
+ "psa4output",
148
+ "plot_black_and_white",
149
+ "plot_on_all_layers",
150
+ "plotinvisible",
151
+ "plotinvisibletext",
152
+ "padsonsilk",
153
+ "sketchpadsonfab",
154
+ "plotpadnumbers",
155
+ "hidednponfab",
156
+ "sketchdnponfab",
157
+ "crossoutdnponfab",
158
+ "subtractmaskfromsilk",
159
+ "outputformat",
160
+ "mirror",
161
+ "drillshape",
162
+ "scaleselection",
163
+ "outputdirectory",
164
+ ]
165
+
166
+ export class PcbPlotParams extends SxClass {
167
+ static override token = "pcbplotparams"
168
+ static override parentToken = "setup"
169
+ token = "pcbplotparams"
170
+
171
+ private _properties: PcbPlotParamValues = {}
172
+
173
+ static override fromSexprPrimitives(
174
+ primitiveSexprs: PrimitiveSExpr[],
175
+ ): PcbPlotParams {
176
+ const params = new PcbPlotParams()
177
+ const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
178
+ primitiveSexprs,
179
+ this.token,
180
+ )
181
+
182
+ for (const [token, instance] of Object.entries(propertyMap)) {
183
+ const key = TOKEN_TO_KEY[token as keyof typeof TOKEN_TO_KEY]
184
+ if (!key) {
185
+ throw new Error(`Unsupported pcbplotparams token: ${token}`)
186
+ }
187
+ params._properties[key] = instance as PlotParamProperty<any>
188
+ }
189
+
190
+ return params
191
+ }
192
+
193
+ override getChildren(): SxClass[] {
194
+ const children: SxClass[] = []
195
+ for (const key of PCB_PLOT_PARAM_CHILD_ORDER) {
196
+ const child = this._properties[key]
197
+ if (child) {
198
+ children.push(child)
199
+ }
200
+ }
201
+ return children
202
+ }
203
+
204
+ private clearProperty(key: PlotParamKey) {
205
+ delete this._properties[key]
206
+ }
207
+
208
+ private setStringProperty<
209
+ K extends PlotParamKey,
210
+ T extends { new (value: string): PlotParamProperty<any> },
211
+ >(
212
+ key: K,
213
+ value: string | undefined,
214
+ ClassRef: T,
215
+ ) {
216
+ if (value === undefined) {
217
+ this.clearProperty(key)
218
+ return
219
+ }
220
+ this._properties[key] = new ClassRef(value)
221
+ }
222
+
223
+ private setNumberProperty<
224
+ K extends PlotParamKey,
225
+ T extends { new (value: number): PlotParamProperty<any> },
226
+ >(
227
+ key: K,
228
+ value: number | undefined,
229
+ ClassRef: T,
230
+ ) {
231
+ if (value === undefined) {
232
+ this.clearProperty(key)
233
+ return
234
+ }
235
+ this._properties[key] = new ClassRef(value)
236
+ }
237
+
238
+ private setStringOrNumberProperty<
239
+ K extends PlotParamKey,
240
+ T extends { new (value: string | number): PlotParamProperty<any> },
241
+ >(key: K, value: string | number | undefined, ClassRef: T) {
242
+ if (value === undefined) {
243
+ this.clearProperty(key)
244
+ return
245
+ }
246
+ this._properties[key] = new ClassRef(value)
247
+ }
248
+
249
+ get layerselection(): string | number | undefined {
250
+ return this._properties.layerselection?.value
251
+ }
252
+
253
+ set layerselection(value: string | number | undefined) {
254
+ this.setStringOrNumberProperty(
255
+ "layerselection",
256
+ value,
257
+ PlotParamLayerSelection,
258
+ )
259
+ }
260
+
261
+ get plot_on_all_layers_selection(): string | number | undefined {
262
+ return this._properties.plot_on_all_layers_selection?.value
263
+ }
264
+
265
+ set plot_on_all_layers_selection(value: string | number | undefined) {
266
+ this.setStringOrNumberProperty(
267
+ "plot_on_all_layers_selection",
268
+ value,
269
+ PlotParamPlotOnAllLayersSelection,
270
+ )
271
+ }
272
+
273
+ get disableapertmacros(): string | undefined {
274
+ return this._properties.disableapertmacros?.value
275
+ }
276
+
277
+ set disableapertmacros(value: string | undefined) {
278
+ this.setStringProperty(
279
+ "disableapertmacros",
280
+ value,
281
+ PlotParamDisableApertMacros,
282
+ )
283
+ }
284
+
285
+ get usegerberextensions(): string | undefined {
286
+ return this._properties.usegerberextensions?.value
287
+ }
288
+
289
+ set usegerberextensions(value: string | undefined) {
290
+ this.setStringProperty(
291
+ "usegerberextensions",
292
+ value,
293
+ PlotParamUseGerberExtensions,
294
+ )
295
+ }
296
+
297
+ get usegerberattributes(): string | undefined {
298
+ return this._properties.usegerberattributes?.value
299
+ }
300
+
301
+ set usegerberattributes(value: string | undefined) {
302
+ this.setStringProperty(
303
+ "usegerberattributes",
304
+ value,
305
+ PlotParamUseGerberAttributes,
306
+ )
307
+ }
308
+
309
+ get usegerberadvancedattributes(): string | undefined {
310
+ return this._properties.usegerberadvancedattributes?.value
311
+ }
312
+
313
+ set usegerberadvancedattributes(value: string | undefined) {
314
+ this.setStringProperty(
315
+ "usegerberadvancedattributes",
316
+ value,
317
+ PlotParamUseGerberAdvancedAttributes,
318
+ )
319
+ }
320
+
321
+ get creategerberjobfile(): string | undefined {
322
+ return this._properties.creategerberjobfile?.value
323
+ }
324
+
325
+ set creategerberjobfile(value: string | undefined) {
326
+ this.setStringProperty(
327
+ "creategerberjobfile",
328
+ value,
329
+ PlotParamCreateGerberJobFile,
330
+ )
331
+ }
332
+
333
+ get excludeedgelayer(): string | undefined {
334
+ return this._properties.excludeedgelayer?.value
335
+ }
336
+
337
+ set excludeedgelayer(value: string | undefined) {
338
+ this.setStringProperty(
339
+ "excludeedgelayer",
340
+ value,
341
+ PlotParamExcludeEdgeLayer,
342
+ )
343
+ }
344
+
345
+ get dashed_line_dash_ratio(): number | undefined {
346
+ return this._properties.dashed_line_dash_ratio?.value
347
+ }
348
+
349
+ set dashed_line_dash_ratio(value: number | undefined) {
350
+ this.setNumberProperty(
351
+ "dashed_line_dash_ratio",
352
+ value,
353
+ PlotParamDashedLineDashRatio,
354
+ )
355
+ }
356
+
357
+ get dashed_line_gap_ratio(): number | undefined {
358
+ return this._properties.dashed_line_gap_ratio?.value
359
+ }
360
+
361
+ set dashed_line_gap_ratio(value: number | undefined) {
362
+ this.setNumberProperty(
363
+ "dashed_line_gap_ratio",
364
+ value,
365
+ PlotParamDashedLineGapRatio,
366
+ )
367
+ }
368
+
369
+ get svgprecision(): number | undefined {
370
+ return this._properties.svgprecision?.value
371
+ }
372
+
373
+ set svgprecision(value: number | undefined) {
374
+ this.setNumberProperty("svgprecision", value, PlotParamSvgPrecision)
375
+ }
376
+
377
+ get linewidth(): number | undefined {
378
+ return this._properties.linewidth?.value
379
+ }
380
+
381
+ set linewidth(value: number | undefined) {
382
+ this.setNumberProperty("linewidth", value, PlotParamLineWidth)
383
+ }
384
+
385
+ get plotframeref(): string | undefined {
386
+ return this._properties.plotframeref?.value
387
+ }
388
+
389
+ set plotframeref(value: string | undefined) {
390
+ this.setStringProperty("plotframeref", value, PlotParamPlotFrameRef)
391
+ }
392
+
393
+ get plotreference(): string | undefined {
394
+ return this._properties.plotreference?.value
395
+ }
396
+
397
+ set plotreference(value: string | undefined) {
398
+ this.setStringProperty("plotreference", value, PlotParamPlotReference)
399
+ }
400
+
401
+ get plotvalue(): string | undefined {
402
+ return this._properties.plotvalue?.value
403
+ }
404
+
405
+ set plotvalue(value: string | undefined) {
406
+ this.setStringProperty("plotvalue", value, PlotParamPlotValue)
407
+ }
408
+
409
+ get plotothertext(): string | undefined {
410
+ return this._properties.plotothertext?.value
411
+ }
412
+
413
+ set plotothertext(value: string | undefined) {
414
+ this.setStringProperty("plotothertext", value, PlotParamPlotOtherText)
415
+ }
416
+
417
+ get plotinvisibletext(): string | undefined {
418
+ return this._properties.plotinvisibletext?.value
419
+ }
420
+
421
+ set plotinvisibletext(value: string | undefined) {
422
+ this.setStringProperty(
423
+ "plotinvisibletext",
424
+ value,
425
+ PlotParamPlotInvisibleText,
426
+ )
427
+ }
428
+
429
+ get padsonsilk(): string | undefined {
430
+ return this._properties.padsonsilk?.value
431
+ }
432
+
433
+ set padsonsilk(value: string | undefined) {
434
+ this.setStringProperty("padsonsilk", value, PlotParamPadOnSilk)
435
+ }
436
+
437
+ get plotpadnumbers(): string | undefined {
438
+ return this._properties.plotpadnumbers?.value
439
+ }
440
+
441
+ set plotpadnumbers(value: string | undefined) {
442
+ this.setStringProperty("plotpadnumbers", value, PlotParamPlotPadNumbers)
443
+ }
444
+
445
+ get sketchpadsonfab(): string | undefined {
446
+ return this._properties.sketchpadsonfab?.value
447
+ }
448
+
449
+ set sketchpadsonfab(value: string | undefined) {
450
+ this.setStringProperty(
451
+ "sketchpadsonfab",
452
+ value,
453
+ PlotParamSketchPadsOnFab,
454
+ )
455
+ }
456
+
457
+ get hidednponfab(): string | undefined {
458
+ return this._properties.hidednponfab?.value
459
+ }
460
+
461
+ set hidednponfab(value: string | undefined) {
462
+ this.setStringProperty("hidednponfab", value, PlotParamHideDnpOnFab)
463
+ }
464
+
465
+ get sketchdnponfab(): string | undefined {
466
+ return this._properties.sketchdnponfab?.value
467
+ }
468
+
469
+ set sketchdnponfab(value: string | undefined) {
470
+ this.setStringProperty("sketchdnponfab", value, PlotParamSketchDnpOnFab)
471
+ }
472
+
473
+ get crossoutdnponfab(): string | undefined {
474
+ return this._properties.crossoutdnponfab?.value
475
+ }
476
+
477
+ set crossoutdnponfab(value: string | undefined) {
478
+ this.setStringProperty(
479
+ "crossoutdnponfab",
480
+ value,
481
+ PlotParamCrossoutDnpOnFab,
482
+ )
483
+ }
484
+
485
+ get subtractmaskfromsilk(): string | undefined {
486
+ return this._properties.subtractmaskfromsilk?.value
487
+ }
488
+
489
+ set subtractmaskfromsilk(value: string | undefined) {
490
+ this.setStringProperty(
491
+ "subtractmaskfromsilk",
492
+ value,
493
+ PlotParamSubtractMaskFromSilk,
494
+ )
495
+ }
496
+
497
+ get plot_black_and_white(): string | undefined {
498
+ return this._properties.plot_black_and_white?.value
499
+ }
500
+
501
+ set plot_black_and_white(value: string | undefined) {
502
+ this.setStringProperty(
503
+ "plot_black_and_white",
504
+ value,
505
+ PlotParamPlotBlackAndWhite,
506
+ )
507
+ }
508
+
509
+ get plot_on_all_layers(): string | undefined {
510
+ return this._properties.plot_on_all_layers?.value
511
+ }
512
+
513
+ set plot_on_all_layers(value: string | undefined) {
514
+ this.setStringProperty(
515
+ "plot_on_all_layers",
516
+ value,
517
+ PlotParamPlotOnAllLayers,
518
+ )
519
+ }
520
+
521
+ get plotinvisible(): string | undefined {
522
+ return this._properties.plotinvisible?.value
523
+ }
524
+
525
+ set plotinvisible(value: string | undefined) {
526
+ this.setStringProperty("plotinvisible", value, PlotParamPlotInvisible)
527
+ }
528
+
529
+ get mode(): number | undefined {
530
+ return this._properties.mode?.value
531
+ }
532
+
533
+ set mode(value: number | undefined) {
534
+ this.setNumberProperty("mode", value, PlotParamMode)
535
+ }
536
+
537
+ get useauxorigin(): string | undefined {
538
+ return this._properties.useauxorigin?.value
539
+ }
540
+
541
+ set useauxorigin(value: string | undefined) {
542
+ this.setStringProperty("useauxorigin", value, PlotParamUseAuxOrigin)
543
+ }
544
+
545
+ get viasonmask(): string | undefined {
546
+ return this._properties.viasonmask?.value
547
+ }
548
+
549
+ set viasonmask(value: string | undefined) {
550
+ this.setStringProperty("viasonmask", value, PlotParamViaOnMask)
551
+ }
552
+
553
+ get hpglpennumber(): number | undefined {
554
+ return this._properties.hpglpennumber?.value
555
+ }
556
+
557
+ set hpglpennumber(value: number | undefined) {
558
+ this.setNumberProperty("hpglpennumber", value, PlotParamHpglPenNumber)
559
+ }
560
+
561
+ get hpglpenspeed(): number | undefined {
562
+ return this._properties.hpglpenspeed?.value
563
+ }
564
+
565
+ set hpglpenspeed(value: number | undefined) {
566
+ this.setNumberProperty("hpglpenspeed", value, PlotParamHpglPenSpeed)
567
+ }
568
+
569
+ get hpglpendiameter(): number | undefined {
570
+ return this._properties.hpglpendiameter?.value
571
+ }
572
+
573
+ set hpglpendiameter(value: number | undefined) {
574
+ this.setNumberProperty(
575
+ "hpglpendiameter",
576
+ value,
577
+ PlotParamHpglPenDiameter,
578
+ )
579
+ }
580
+
581
+ get hpglpenoverlay(): number | undefined {
582
+ return this._properties.hpglpenoverlay?.value
583
+ }
584
+
585
+ set hpglpenoverlay(value: number | undefined) {
586
+ this.setNumberProperty(
587
+ "hpglpenoverlay",
588
+ value,
589
+ PlotParamHpglPenOverlay,
590
+ )
591
+ }
592
+
593
+ get pdf_front_fp_property_popups(): string | undefined {
594
+ return this._properties.pdf_front_fp_property_popups?.value
595
+ }
596
+
597
+ set pdf_front_fp_property_popups(value: string | undefined) {
598
+ this.setStringProperty(
599
+ "pdf_front_fp_property_popups",
600
+ value,
601
+ PlotParamPdfFrontFpPropertyPopups,
602
+ )
603
+ }
604
+
605
+ get pdf_back_fp_property_popups(): string | undefined {
606
+ return this._properties.pdf_back_fp_property_popups?.value
607
+ }
608
+
609
+ set pdf_back_fp_property_popups(value: string | undefined) {
610
+ this.setStringProperty(
611
+ "pdf_back_fp_property_popups",
612
+ value,
613
+ PlotParamPdfBackFpPropertyPopups,
614
+ )
615
+ }
616
+
617
+ get pdf_metadata(): string | undefined {
618
+ return this._properties.pdf_metadata?.value
619
+ }
620
+
621
+ set pdf_metadata(value: string | undefined) {
622
+ this.setStringProperty("pdf_metadata", value, PlotParamPdfMetadata)
623
+ }
624
+
625
+ get pdf_single_document(): string | undefined {
626
+ return this._properties.pdf_single_document?.value
627
+ }
628
+
629
+ set pdf_single_document(value: string | undefined) {
630
+ this.setStringProperty(
631
+ "pdf_single_document",
632
+ value,
633
+ PlotParamPdfSingleDocument,
634
+ )
635
+ }
636
+
637
+ get dxfpolygonmode(): string | undefined {
638
+ return this._properties.dxfpolygonmode?.value
639
+ }
640
+
641
+ set dxfpolygonmode(value: string | undefined) {
642
+ this.setStringProperty("dxfpolygonmode", value, PlotParamDxfPolygonMode)
643
+ }
644
+
645
+ get dxfimperialunits(): string | undefined {
646
+ return this._properties.dxfimperialunits?.value
647
+ }
648
+
649
+ set dxfimperialunits(value: string | undefined) {
650
+ this.setStringProperty(
651
+ "dxfimperialunits",
652
+ value,
653
+ PlotParamDxfImperialUnits,
654
+ )
655
+ }
656
+
657
+ get dxfusepcbnewfont(): string | undefined {
658
+ return this._properties.dxfusepcbnewfont?.value
659
+ }
660
+
661
+ set dxfusepcbnewfont(value: string | undefined) {
662
+ this.setStringProperty(
663
+ "dxfusepcbnewfont",
664
+ value,
665
+ PlotParamDxfUsePcbnewFont,
666
+ )
667
+ }
668
+
669
+ get psnegative(): string | undefined {
670
+ return this._properties.psnegative?.value
671
+ }
672
+
673
+ set psnegative(value: string | undefined) {
674
+ this.setStringProperty("psnegative", value, PlotParamPsNegative)
675
+ }
676
+
677
+ get psa4output(): string | undefined {
678
+ return this._properties.psa4output?.value
679
+ }
680
+
681
+ set psa4output(value: string | undefined) {
682
+ this.setStringProperty("psa4output", value, PlotParamPsA4Output)
683
+ }
684
+
685
+ get mirror(): string | undefined {
686
+ return this._properties.mirror?.value
687
+ }
688
+
689
+ set mirror(value: string | undefined) {
690
+ this.setStringProperty("mirror", value, PlotParamMirror)
691
+ }
692
+
693
+ get outputformat(): number | undefined {
694
+ return this._properties.outputformat?.value
695
+ }
696
+
697
+ set outputformat(value: number | undefined) {
698
+ this.setNumberProperty("outputformat", value, PlotParamOutputFormat)
699
+ }
700
+
701
+ get drillshape(): number | undefined {
702
+ return this._properties.drillshape?.value
703
+ }
704
+
705
+ set drillshape(value: number | undefined) {
706
+ this.setNumberProperty("drillshape", value, PlotParamDrillShape)
707
+ }
708
+
709
+ get scaleselection(): number | undefined {
710
+ return this._properties.scaleselection?.value
711
+ }
712
+
713
+ set scaleselection(value: number | undefined) {
714
+ this.setNumberProperty("scaleselection", value, PlotParamScaleSelection)
715
+ }
716
+
717
+ get outputdirectory(): string | undefined {
718
+ return this._properties.outputdirectory?.value
719
+ }
720
+
721
+ set outputdirectory(value: string | undefined) {
722
+ this.setStringProperty(
723
+ "outputdirectory",
724
+ value,
725
+ PlotParamOutputDirectory,
726
+ )
727
+ }
728
+ }
729
+ SxClass.register(PcbPlotParams)