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.
- package/.cursor/rules/use-bun-instead-of-node-vite-npm-pnpm.mdc +111 -0
- package/.vscode/settings.json +16 -0
- package/AGENTS.md +30 -0
- package/README.md +206 -0
- package/biome.json +93 -0
- package/bun.lock +48 -0
- package/bunfig.toml +5 -0
- package/lib/index.ts +1 -0
- package/lib/sexpr/base-classes/SxClass.ts +164 -0
- package/lib/sexpr/base-classes/SxPrimitiveBoolean.ts +35 -0
- package/lib/sexpr/base-classes/SxPrimitiveNumber.ts +26 -0
- package/lib/sexpr/base-classes/SxPrimitiveString.ts +26 -0
- package/lib/sexpr/classes/At.ts +38 -0
- package/lib/sexpr/classes/Bus.ts +83 -0
- package/lib/sexpr/classes/BusEntry.ts +142 -0
- package/lib/sexpr/classes/Color.ts +29 -0
- package/lib/sexpr/classes/Dnp.ts +8 -0
- package/lib/sexpr/classes/EmbeddedFonts.ts +70 -0
- package/lib/sexpr/classes/ExcludeFromSim.ts +8 -0
- package/lib/sexpr/classes/FieldsAutoplaced.ts +8 -0
- package/lib/sexpr/classes/Footprint.ts +719 -0
- package/lib/sexpr/classes/FootprintAttr.ts +102 -0
- package/lib/sexpr/classes/FootprintAutoplaceCost180.ts +9 -0
- package/lib/sexpr/classes/FootprintAutoplaceCost90.ts +9 -0
- package/lib/sexpr/classes/FootprintClearance.ts +9 -0
- package/lib/sexpr/classes/FootprintDescr.ts +44 -0
- package/lib/sexpr/classes/FootprintLocked.ts +32 -0
- package/lib/sexpr/classes/FootprintModel.ts +145 -0
- package/lib/sexpr/classes/FootprintNetTiePadGroups.ts +50 -0
- package/lib/sexpr/classes/FootprintPad.ts +705 -0
- package/lib/sexpr/classes/FootprintPath.ts +44 -0
- package/lib/sexpr/classes/FootprintPlaced.ts +32 -0
- package/lib/sexpr/classes/FootprintPrivateLayers.ts +56 -0
- package/lib/sexpr/classes/FootprintSheetfile.ts +44 -0
- package/lib/sexpr/classes/FootprintSheetname.ts +44 -0
- package/lib/sexpr/classes/FootprintSolderMaskMargin.ts +9 -0
- package/lib/sexpr/classes/FootprintSolderPasteMargin.ts +9 -0
- package/lib/sexpr/classes/FootprintSolderPasteRatio.ts +9 -0
- package/lib/sexpr/classes/FootprintTags.ts +44 -0
- package/lib/sexpr/classes/FootprintTedit.ts +21 -0
- package/lib/sexpr/classes/FootprintThermalGap.ts +9 -0
- package/lib/sexpr/classes/FootprintThermalWidth.ts +9 -0
- package/lib/sexpr/classes/FootprintZoneConnect.ts +9 -0
- package/lib/sexpr/classes/FpArc.ts +289 -0
- package/lib/sexpr/classes/FpCircle.ts +293 -0
- package/lib/sexpr/classes/FpLine.ts +288 -0
- package/lib/sexpr/classes/FpPoly.ts +266 -0
- package/lib/sexpr/classes/FpPolyFill.ts +48 -0
- package/lib/sexpr/classes/FpPolyLocked.ts +40 -0
- package/lib/sexpr/classes/FpRect.ts +293 -0
- package/lib/sexpr/classes/FpText.ts +341 -0
- package/lib/sexpr/classes/FpTextBox.ts +412 -0
- package/lib/sexpr/classes/GrLine.ts +245 -0
- package/lib/sexpr/classes/GrLineAngle.ts +32 -0
- package/lib/sexpr/classes/GrLineEnd.ts +61 -0
- package/lib/sexpr/classes/GrLineLocked.ts +40 -0
- package/lib/sexpr/classes/GrLineStart.ts +61 -0
- package/lib/sexpr/classes/GrText.ts +202 -0
- package/lib/sexpr/classes/Image.ts +256 -0
- package/lib/sexpr/classes/InBom.ts +8 -0
- package/lib/sexpr/classes/Junction.ts +134 -0
- package/lib/sexpr/classes/KicadPcb.ts +313 -0
- package/lib/sexpr/classes/KicadSch.ts +303 -0
- package/lib/sexpr/classes/KicadSchGenerator.ts +32 -0
- package/lib/sexpr/classes/KicadSchGeneratorVersion.ts +30 -0
- package/lib/sexpr/classes/KicadSchVersion.ts +22 -0
- package/lib/sexpr/classes/Label.ts +136 -0
- package/lib/sexpr/classes/Layer.ts +51 -0
- package/lib/sexpr/classes/Layers.ts +47 -0
- package/lib/sexpr/classes/LibSymbols.ts +61 -0
- package/lib/sexpr/classes/NoConnect.ts +73 -0
- package/lib/sexpr/classes/OnBoard.ts +8 -0
- package/lib/sexpr/classes/PadChamfer.ts +50 -0
- package/lib/sexpr/classes/PadChamferRatio.ts +9 -0
- package/lib/sexpr/classes/PadClearance.ts +9 -0
- package/lib/sexpr/classes/PadDieLength.ts +9 -0
- package/lib/sexpr/classes/PadDrill.ts +145 -0
- package/lib/sexpr/classes/PadDrillOffset.ts +54 -0
- package/lib/sexpr/classes/PadLayers.ts +59 -0
- package/lib/sexpr/classes/PadNet.ts +56 -0
- package/lib/sexpr/classes/PadOptions.ts +182 -0
- package/lib/sexpr/classes/PadPinFunction.ts +9 -0
- package/lib/sexpr/classes/PadPinType.ts +9 -0
- package/lib/sexpr/classes/PadPrimitiveGrArc.ts +254 -0
- package/lib/sexpr/classes/PadPrimitiveGrCircle.ts +279 -0
- package/lib/sexpr/classes/PadPrimitiveGrLine.ts +126 -0
- package/lib/sexpr/classes/PadPrimitives.ts +289 -0
- package/lib/sexpr/classes/PadRectDelta.ts +57 -0
- package/lib/sexpr/classes/PadRoundrectRratio.ts +9 -0
- package/lib/sexpr/classes/PadSize.ts +54 -0
- package/lib/sexpr/classes/PadSolderMaskMargin.ts +9 -0
- package/lib/sexpr/classes/PadSolderPasteMargin.ts +9 -0
- package/lib/sexpr/classes/PadSolderPasteMarginRatio.ts +9 -0
- package/lib/sexpr/classes/PadTeardrops.ts +208 -0
- package/lib/sexpr/classes/PadThermalBridgeAngle.ts +9 -0
- package/lib/sexpr/classes/PadThermalGap.ts +9 -0
- package/lib/sexpr/classes/PadThermalWidth.ts +9 -0
- package/lib/sexpr/classes/PadZoneConnect.ts +9 -0
- package/lib/sexpr/classes/Paper.ts +119 -0
- package/lib/sexpr/classes/PcbGeneral.ts +75 -0
- package/lib/sexpr/classes/PcbGeneralLegacyTeardrops.ts +44 -0
- package/lib/sexpr/classes/PcbGeneralThickness.ts +9 -0
- package/lib/sexpr/classes/PcbGenerator.ts +16 -0
- package/lib/sexpr/classes/PcbGeneratorVersion.ts +16 -0
- package/lib/sexpr/classes/PcbLayerDefinition.ts +102 -0
- package/lib/sexpr/classes/PcbLayers.ts +34 -0
- package/lib/sexpr/classes/PcbNet.ts +56 -0
- package/lib/sexpr/classes/PcbVersion.ts +9 -0
- package/lib/sexpr/classes/Property.ts +246 -0
- package/lib/sexpr/classes/PropertyHide.ts +9 -0
- package/lib/sexpr/classes/PropertyUnlocked.ts +9 -0
- package/lib/sexpr/classes/Pts.ts +65 -0
- package/lib/sexpr/classes/RenderCache.ts +221 -0
- package/lib/sexpr/classes/SchematicText.ts +141 -0
- package/lib/sexpr/classes/Segment.ts +222 -0
- package/lib/sexpr/classes/SegmentEnd.ts +59 -0
- package/lib/sexpr/classes/SegmentLocked.ts +33 -0
- package/lib/sexpr/classes/SegmentNet.ts +62 -0
- package/lib/sexpr/classes/SegmentStart.ts +59 -0
- package/lib/sexpr/classes/Setup/PcbPlotParams.ts +729 -0
- package/lib/sexpr/classes/Setup/PcbPlotParamsBase.ts +9 -0
- package/lib/sexpr/classes/Setup/PcbPlotParamsNumericProperties.ts +105 -0
- package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesA.ts +104 -0
- package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesB.ts +105 -0
- package/lib/sexpr/classes/Setup/Setup.ts +573 -0
- package/lib/sexpr/classes/Setup/SetupPropertyTypes.ts +119 -0
- package/lib/sexpr/classes/Setup/Stackup.ts +140 -0
- package/lib/sexpr/classes/Setup/StackupLayer.ts +233 -0
- package/lib/sexpr/classes/Setup/StackupLayerProperties.ts +78 -0
- package/lib/sexpr/classes/Setup/StackupProperties.ts +41 -0
- package/lib/sexpr/classes/Setup/base.ts +167 -0
- package/lib/sexpr/classes/Setup/index.ts +14 -0
- package/lib/sexpr/classes/Setup/setupMultiValueProperties.ts +54 -0
- package/lib/sexpr/classes/Setup/setupNumericProperties.ts +151 -0
- package/lib/sexpr/classes/Setup/setupPropertyHandlers.ts +90 -0
- package/lib/sexpr/classes/Setup/setupStringProperties.ts +75 -0
- package/lib/sexpr/classes/Sheet.ts +205 -0
- package/lib/sexpr/classes/SheetFill.ts +44 -0
- package/lib/sexpr/classes/SheetInstances.ts +168 -0
- package/lib/sexpr/classes/SheetInstancesRoot.ts +165 -0
- package/lib/sexpr/classes/SheetPin.ts +122 -0
- package/lib/sexpr/classes/SheetProperty.ts +115 -0
- package/lib/sexpr/classes/SheetSize.ts +44 -0
- package/lib/sexpr/classes/Stroke.ts +58 -0
- package/lib/sexpr/classes/StrokeType.ts +34 -0
- package/lib/sexpr/classes/Symbol.ts +1541 -0
- package/lib/sexpr/classes/TextEffects.ts +444 -0
- package/lib/sexpr/classes/TitleBlock.ts +352 -0
- package/lib/sexpr/classes/Unit.ts +28 -0
- package/lib/sexpr/classes/Uuid.ts +8 -0
- package/lib/sexpr/classes/Via.ts +328 -0
- package/lib/sexpr/classes/ViaNet.ts +59 -0
- package/lib/sexpr/classes/Width.ts +8 -0
- package/lib/sexpr/classes/Wire.ts +91 -0
- package/lib/sexpr/classes/Xy.ts +35 -0
- package/lib/sexpr/classes/Zone.ts +41 -0
- package/lib/sexpr/index.ts +130 -0
- package/lib/sexpr/parseKicadSexpr.ts +5 -0
- package/lib/sexpr/parseToPrimitiveSExpr.ts +240 -0
- package/lib/sexpr/utils/indentLines.ts +3 -0
- package/lib/sexpr/utils/parseYesNo.ts +12 -0
- package/lib/sexpr/utils/quoteSExprString.ts +8 -0
- package/lib/sexpr/utils/strokeFromArgs.ts +19 -0
- package/lib/sexpr/utils/toNumberValue.ts +13 -0
- package/lib/sexpr/utils/toStringValue.ts +10 -0
- package/package.json +26 -0
- package/scripts/download-references.ts +66 -0
- package/tests/fixtures/expectEqualPrimitiveSExpr.ts +200 -0
- package/tests/sexpr/KicadPcbDemos.test.ts +48 -0
- package/tests/sexpr/KicadSchDemos.test.ts +49 -0
- package/tests/sexpr/classes/Footprint.test.ts +277 -0
- package/tests/sexpr/classes/FootprintPad.test.ts +71 -0
- package/tests/sexpr/classes/FpArc.test.ts +45 -0
- package/tests/sexpr/classes/FpCircle.test.ts +39 -0
- package/tests/sexpr/classes/FpPoly.test.ts +43 -0
- package/tests/sexpr/classes/FpRect.test.ts +40 -0
- package/tests/sexpr/classes/FpTextBox.test.ts +84 -0
- package/tests/sexpr/classes/Image.test.ts +50 -0
- package/tests/sexpr/classes/KicadSch.test.ts +97 -0
- package/tests/sexpr/classes/Paper.test.ts +30 -0
- package/tests/sexpr/classes/Property.test.ts +48 -0
- package/tests/sexpr/classes/Setup.test.ts +189 -0
- package/tests/sexpr/classes/Sheet.test.ts +107 -0
- package/tests/sexpr/classes/Stroke.test.ts +15 -0
- package/tests/sexpr/classes/Symbol.test.ts +96 -0
- package/tests/sexpr/classes/TextEffects.test.ts +56 -0
- package/tests/sexpr/classes/TitleBlock.test.ts +40 -0
- 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)
|