KiCad PCB EDA Suite
Loading...
Searching...
No Matches
api_pcb_enums.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2024 Jon Evans <[email protected]>
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software: you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#include <import_export.h>
22#include <api/api_enums.h>
23#include <api/board/board.pb.h>
24#include <api/board/board_types.pb.h>
25#include <api/board/board_commands.pb.h>
26#include <api/board/board_jobs.pb.h>
27#include <api/common/types/enums.pb.h>
28#include <wx/wx.h>
30
32#include <drc/drc_item.h>
33#include <padstack.h>
34#include <pcb_dimension.h>
35#include <pcb_track.h>
46#include <jobs/job_pcb_render.h>
47#include <drc/drc_rule.h>
48#include <plotprint_opts.h>
49#include <zones.h>
50#include <zone_settings.h>
52
53// Adding something new here? Add it to test_api_enums.cpp!
54
55using namespace kiapi::board;
56using namespace kiapi::board::commands;
57using namespace kiapi::board::jobs;
58
59template<>
60types::PadType ToProtoEnum( PAD_ATTRIB aValue )
61{
62 switch( aValue )
63 {
64 case PAD_ATTRIB::PTH: return types::PadType::PT_PTH;
65 case PAD_ATTRIB::SMD: return types::PadType::PT_SMD;
66 case PAD_ATTRIB::CONN: return types::PadType::PT_EDGE_CONNECTOR;
67 case PAD_ATTRIB::NPTH: return types::PadType::PT_NPTH;
68
69 default:
70 wxCHECK_MSG( false, types::PadType::PT_UNKNOWN,
71 "Unhandled case in ToProtoEnum<PAD_ATTRIB>");
72 }
73}
74
75
76template<>
77PAD_ATTRIB FromProtoEnum( types::PadType aValue )
78{
79 switch( aValue )
80 {
81 case types::PadType::PT_UNKNOWN:
82 case types::PadType::PT_PTH: return PAD_ATTRIB::PTH;
83 case types::PadType::PT_SMD: return PAD_ATTRIB::SMD;
84 case types::PadType::PT_EDGE_CONNECTOR: return PAD_ATTRIB::CONN;
85 case types::PadType::PT_NPTH: return PAD_ATTRIB::NPTH;
86
87 default:
88 wxCHECK_MSG( false, PAD_ATTRIB::PTH,
89 "Unhandled case in FromProtoEnum<types::PadType>" );
90 }
91}
92
93template<>
94types::DrillShape ToProtoEnum( PAD_DRILL_SHAPE aValue )
95{
96 switch( aValue )
97 {
98 case PAD_DRILL_SHAPE::CIRCLE: return types::DrillShape::DS_CIRCLE;
99 case PAD_DRILL_SHAPE::OBLONG: return types::DrillShape::DS_OBLONG;
100 case PAD_DRILL_SHAPE::UNDEFINED: return types::DrillShape::DS_UNDEFINED;
101 default:
102 wxCHECK_MSG( false, types::DrillShape::DS_UNKNOWN,
103 "Unhandled case in ToProtoEnum<PAD_DRILL_SHAPE>");
104 }
105}
106
107template<>
108PAD_DRILL_SHAPE FromProtoEnum( types::DrillShape aValue )
109{
110 switch( aValue )
111 {
112 case types::DrillShape::DS_CIRCLE: return PAD_DRILL_SHAPE::CIRCLE;
113 case types::DrillShape::DS_OBLONG: return PAD_DRILL_SHAPE::OBLONG;
114 case types::DrillShape::DS_UNKNOWN:
115 case types::DrillShape::DS_UNDEFINED: return PAD_DRILL_SHAPE::UNDEFINED;
116 default:
117 wxCHECK_MSG( false, PAD_DRILL_SHAPE::UNDEFINED,
118 "Unhandled case in FromProtoEnum<types::DrillShape>" );
119 }
120}
121
122template<>
123types::PadStackShape ToProtoEnum( PAD_SHAPE aValue )
124{
125 switch( aValue )
126 {
127 case PAD_SHAPE::CIRCLE: return types::PadStackShape::PSS_CIRCLE;
128 case PAD_SHAPE::RECTANGLE: return types::PadStackShape::PSS_RECTANGLE;
129 case PAD_SHAPE::OVAL: return types::PadStackShape::PSS_OVAL;
130 case PAD_SHAPE::TRAPEZOID: return types::PadStackShape::PSS_TRAPEZOID;
131 case PAD_SHAPE::ROUNDRECT: return types::PadStackShape::PSS_ROUNDRECT;
132 case PAD_SHAPE::CHAMFERED_RECT: return types::PadStackShape::PSS_CHAMFEREDRECT;
133 case PAD_SHAPE::CUSTOM: return types::PadStackShape::PSS_CUSTOM;
134
135 default:
136 wxCHECK_MSG( false, types::PadStackShape::PSS_UNKNOWN,
137 "Unhandled case in ToProtoEnum<PAD_SHAPE>");
138 }
139}
140
141
142template<>
143PAD_SHAPE FromProtoEnum( types::PadStackShape aValue )
144{
145 switch( aValue )
146 {
147 case types::PadStackShape::PSS_UNKNOWN:
148 case types::PadStackShape::PSS_CIRCLE: return PAD_SHAPE::CIRCLE;
149 case types::PadStackShape::PSS_RECTANGLE: return PAD_SHAPE::RECTANGLE;
150 case types::PadStackShape::PSS_OVAL: return PAD_SHAPE::OVAL;
151 case types::PadStackShape::PSS_TRAPEZOID: return PAD_SHAPE::TRAPEZOID;
152 case types::PadStackShape::PSS_ROUNDRECT: return PAD_SHAPE::ROUNDRECT;
153 case types::PadStackShape::PSS_CHAMFEREDRECT: return PAD_SHAPE::CHAMFERED_RECT;
154 case types::PadStackShape::PSS_CUSTOM: return PAD_SHAPE::CUSTOM;
155
156 default:
157 wxCHECK_MSG( false, PAD_SHAPE::CIRCLE,
158 "Unhandled case in FromProtoEnum<types::PadStackShape>" );
159 }
160}
161
162
163template<>
164types::PadStackType ToProtoEnum( PADSTACK::MODE aValue )
165{
166 switch( aValue )
167 {
168 case PADSTACK::MODE::NORMAL: return types::PadStackType::PST_NORMAL;
169 case PADSTACK::MODE::FRONT_INNER_BACK: return types::PadStackType::PST_FRONT_INNER_BACK;
170 case PADSTACK::MODE::CUSTOM: return types::PadStackType::PST_CUSTOM;
171
172 default:
173 wxCHECK_MSG( false, types::PadStackType::PST_UNKNOWN,
174 "Unhandled case in ToProtoEnum<PADSTACK::MODE>");
175 }
176}
177
178
179template<>
180PADSTACK::MODE FromProtoEnum( types::PadStackType aValue )
181{
182 switch( aValue )
183 {
184 case types::PadStackType::PST_UNKNOWN:
185 case types::PadStackType::PST_NORMAL: return PADSTACK::MODE::NORMAL;
186 case types::PadStackType::PST_FRONT_INNER_BACK: return PADSTACK::MODE::FRONT_INNER_BACK;
187 case types::PadStackType::PST_CUSTOM: return PADSTACK::MODE::CUSTOM;
188
189 default:
190 wxCHECK_MSG( false, PADSTACK::MODE::NORMAL,
191 "Unhandled case in FromProtoEnum<types::PadStackType>" );
192 }
193}
194
195
196template<>
197types::ViaType ToProtoEnum( VIATYPE aValue )
198{
199 switch( aValue )
200 {
201 case VIATYPE::THROUGH: return types::ViaType::VT_THROUGH;
202 case VIATYPE::BLIND: return types::ViaType::VT_BLIND; // Since V10
203 case VIATYPE::BURIED: return types::ViaType::VT_BURIED;
204 case VIATYPE::MICROVIA: return types::ViaType::VT_MICRO;
205
206 default:
207 wxCHECK_MSG( false, types::ViaType::VT_UNKNOWN,
208 "Unhandled case in ToProtoEnum<VIATYPE>");
209 }
210}
211
212
213template<>
214VIATYPE FromProtoEnum( types::ViaType aValue )
215{
216 switch( aValue )
217 {
218 case types::ViaType::VT_UNKNOWN:
219 case types::ViaType::VT_THROUGH: return VIATYPE::THROUGH;
220 case types::ViaType::VT_BLIND_BURIED: return VIATYPE::BLIND;
221 case types::ViaType::VT_BLIND: return VIATYPE::BLIND; // Since V10
222 case types::ViaType::VT_BURIED: return VIATYPE::BURIED;
223 case types::ViaType::VT_MICRO: return VIATYPE::MICROVIA;
224
225 default:
226 wxCHECK_MSG( false, VIATYPE::THROUGH,
227 "Unhandled case in FromProtoEnum<types::ViaType>" );
228 }
229}
230
231
232template<>
233types::ZoneConnectionStyle ToProtoEnum( ZONE_CONNECTION aValue )
234{
235 switch( aValue )
236 {
237 case ZONE_CONNECTION::INHERITED: return types::ZoneConnectionStyle::ZCS_INHERITED;
238 case ZONE_CONNECTION::NONE: return types::ZoneConnectionStyle::ZCS_NONE;
239 case ZONE_CONNECTION::THERMAL: return types::ZoneConnectionStyle::ZCS_THERMAL;
240 case ZONE_CONNECTION::FULL: return types::ZoneConnectionStyle::ZCS_FULL;
241 case ZONE_CONNECTION::THT_THERMAL: return types::ZoneConnectionStyle::ZCS_PTH_THERMAL;
242
243 default:
244 wxCHECK_MSG( false, types::ZoneConnectionStyle::ZCS_UNKNOWN,
245 "Unhandled case in ToProtoEnum<ZONE_CONNECTION>");
246 }
247}
248
249
250template<>
251ZONE_CONNECTION FromProtoEnum( types::ZoneConnectionStyle aValue )
252{
253 switch( aValue )
254 {
255 case types::ZoneConnectionStyle::ZCS_UNKNOWN: return ZONE_CONNECTION::INHERITED;
256 case types::ZoneConnectionStyle::ZCS_INHERITED: return ZONE_CONNECTION::INHERITED;
257 case types::ZoneConnectionStyle::ZCS_NONE: return ZONE_CONNECTION::NONE;
258 case types::ZoneConnectionStyle::ZCS_THERMAL: return ZONE_CONNECTION::THERMAL;
259 case types::ZoneConnectionStyle::ZCS_FULL: return ZONE_CONNECTION::FULL;
260 case types::ZoneConnectionStyle::ZCS_PTH_THERMAL: return ZONE_CONNECTION::THT_THERMAL;
261
262 default:
263 wxCHECK_MSG( false, ZONE_CONNECTION::INHERITED,
264 "Unhandled case in FromProtoEnum<types::ZoneConnectionStyle>" );
265 }
266}
267
268
269template<>
270CustomRuleConstraintType ToProtoEnum( DRC_CONSTRAINT_T aValue )
271{
272 switch( aValue )
273 {
274 case NULL_CONSTRAINT: return CustomRuleConstraintType::CRCT_UNKNOWN;
275 case CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_CLEARANCE;
276 case CREEPAGE_CONSTRAINT: return CustomRuleConstraintType::CRCT_CREEPAGE;
277 case HOLE_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_CLEARANCE;
278 case HOLE_TO_HOLE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_TO_HOLE;
279 case EDGE_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_EDGE_CLEARANCE;
280 case HOLE_SIZE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_SIZE;
281 case COURTYARD_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_COURTYARD_CLEARANCE;
282 case SILK_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_SILK_CLEARANCE;
283 case TEXT_HEIGHT_CONSTRAINT: return CustomRuleConstraintType::CRCT_TEXT_HEIGHT;
284 case TEXT_THICKNESS_CONSTRAINT: return CustomRuleConstraintType::CRCT_TEXT_THICKNESS;
285 case TRACK_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_WIDTH;
286 case TRACK_SEGMENT_LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_SEGMENT_LENGTH;
287 case ANNULAR_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_ANNULAR_WIDTH;
288 case ZONE_CONNECTION_CONSTRAINT: return CustomRuleConstraintType::CRCT_ZONE_CONNECTION;
289 case THERMAL_RELIEF_GAP_CONSTRAINT: return CustomRuleConstraintType::CRCT_THERMAL_RELIEF_GAP;
290 case THERMAL_SPOKE_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_THERMAL_SPOKE_WIDTH;
291 case MIN_RESOLVED_SPOKES_CONSTRAINT: return CustomRuleConstraintType::CRCT_MIN_RESOLVED_SPOKES;
292 case SOLDER_MASK_EXPANSION_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_MASK_EXPANSION;
293 case SOLDER_PASTE_ABS_MARGIN_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_PASTE_ABS_MARGIN;
294 case SOLDER_PASTE_REL_MARGIN_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_PASTE_REL_MARGIN;
295 case DISALLOW_CONSTRAINT: return CustomRuleConstraintType::CRCT_DISALLOW;
296 case VIA_DIAMETER_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_DIAMETER;
297 case LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_LENGTH;
298 case SKEW_CONSTRAINT: return CustomRuleConstraintType::CRCT_SKEW;
299 case DIFF_PAIR_GAP_CONSTRAINT: return CustomRuleConstraintType::CRCT_DIFF_PAIR_GAP;
300 case MAX_UNCOUPLED_CONSTRAINT: return CustomRuleConstraintType::CRCT_MAX_UNCOUPLED;
301 case DIFF_PAIR_INTRA_SKEW_CONSTRAINT: return CustomRuleConstraintType::CRCT_DIFF_PAIR_INTRA_SKEW;
302 case VIA_COUNT_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_COUNT;
303 case PHYSICAL_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_PHYSICAL_CLEARANCE;
304 case PHYSICAL_HOLE_CLEARANCE_CONSTRAINT:return CustomRuleConstraintType::CRCT_PHYSICAL_HOLE_CLEARANCE;
305 case ASSERTION_CONSTRAINT: return CustomRuleConstraintType::CRCT_ASSERTION;
306 case CONNECTION_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_CONNECTION_WIDTH;
307 case TRACK_ANGLE_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_ANGLE;
308 case VIA_DANGLING_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_DANGLING;
309 case BRIDGED_MASK_CONSTRAINT: return CustomRuleConstraintType::CRCT_BRIDGED_MASK;
310 case SOLDER_MASK_SLIVER_CONSTRAINT: return CustomRuleConstraintType::CRCT_SOLDER_MASK_SLIVER;
311 case NET_CHAIN_LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_NET_CHAIN_LENGTH;
313 return CustomRuleConstraintType::CRCT_NET_CHAIN_STUB_LENGTH;
315 return CustomRuleConstraintType::CRCT_NET_CHAIN_RETURN_PATH;
316
317 default:
318 wxCHECK_MSG( false, CustomRuleConstraintType::CRCT_UNKNOWN,
319 "Unhandled case in ToProtoEnum<DRC_CONSTRAINT_T>" );
320 }
321}
322
323
324template<>
325DRC_CONSTRAINT_T FromProtoEnum( CustomRuleConstraintType aValue )
326{
327 switch( aValue )
328 {
329 case CustomRuleConstraintType::CRCT_UNKNOWN: return NULL_CONSTRAINT;
330 case CustomRuleConstraintType::CRCT_CLEARANCE: return CLEARANCE_CONSTRAINT;
331 case CustomRuleConstraintType::CRCT_CREEPAGE: return CREEPAGE_CONSTRAINT;
332 case CustomRuleConstraintType::CRCT_HOLE_CLEARANCE: return HOLE_CLEARANCE_CONSTRAINT;
333 case CustomRuleConstraintType::CRCT_HOLE_TO_HOLE: return HOLE_TO_HOLE_CONSTRAINT;
334 case CustomRuleConstraintType::CRCT_EDGE_CLEARANCE: return EDGE_CLEARANCE_CONSTRAINT;
335 case CustomRuleConstraintType::CRCT_HOLE_SIZE: return HOLE_SIZE_CONSTRAINT;
336 case CustomRuleConstraintType::CRCT_COURTYARD_CLEARANCE: return COURTYARD_CLEARANCE_CONSTRAINT;
337 case CustomRuleConstraintType::CRCT_SILK_CLEARANCE: return SILK_CLEARANCE_CONSTRAINT;
338 case CustomRuleConstraintType::CRCT_TEXT_HEIGHT: return TEXT_HEIGHT_CONSTRAINT;
339 case CustomRuleConstraintType::CRCT_TEXT_THICKNESS: return TEXT_THICKNESS_CONSTRAINT;
340 case CustomRuleConstraintType::CRCT_TRACK_WIDTH: return TRACK_WIDTH_CONSTRAINT;
341 case CustomRuleConstraintType::CRCT_TRACK_SEGMENT_LENGTH: return TRACK_SEGMENT_LENGTH_CONSTRAINT;
342 case CustomRuleConstraintType::CRCT_ANNULAR_WIDTH: return ANNULAR_WIDTH_CONSTRAINT;
343 case CustomRuleConstraintType::CRCT_ZONE_CONNECTION: return ZONE_CONNECTION_CONSTRAINT;
344 case CustomRuleConstraintType::CRCT_THERMAL_RELIEF_GAP: return THERMAL_RELIEF_GAP_CONSTRAINT;
345 case CustomRuleConstraintType::CRCT_THERMAL_SPOKE_WIDTH: return THERMAL_SPOKE_WIDTH_CONSTRAINT;
346 case CustomRuleConstraintType::CRCT_MIN_RESOLVED_SPOKES: return MIN_RESOLVED_SPOKES_CONSTRAINT;
347 case CustomRuleConstraintType::CRCT_SOLDER_MASK_EXPANSION: return SOLDER_MASK_EXPANSION_CONSTRAINT;
348 case CustomRuleConstraintType::CRCT_SOLDER_PASTE_ABS_MARGIN:return SOLDER_PASTE_ABS_MARGIN_CONSTRAINT;
349 case CustomRuleConstraintType::CRCT_SOLDER_PASTE_REL_MARGIN:return SOLDER_PASTE_REL_MARGIN_CONSTRAINT;
350 case CustomRuleConstraintType::CRCT_DISALLOW: return DISALLOW_CONSTRAINT;
351 case CustomRuleConstraintType::CRCT_VIA_DIAMETER: return VIA_DIAMETER_CONSTRAINT;
352 case CustomRuleConstraintType::CRCT_LENGTH: return LENGTH_CONSTRAINT;
353 case CustomRuleConstraintType::CRCT_SKEW: return SKEW_CONSTRAINT;
354 case CustomRuleConstraintType::CRCT_DIFF_PAIR_GAP: return DIFF_PAIR_GAP_CONSTRAINT;
355 case CustomRuleConstraintType::CRCT_MAX_UNCOUPLED: return MAX_UNCOUPLED_CONSTRAINT;
356 case CustomRuleConstraintType::CRCT_DIFF_PAIR_INTRA_SKEW: return DIFF_PAIR_INTRA_SKEW_CONSTRAINT;
357 case CustomRuleConstraintType::CRCT_VIA_COUNT: return VIA_COUNT_CONSTRAINT;
358 case CustomRuleConstraintType::CRCT_PHYSICAL_CLEARANCE: return PHYSICAL_CLEARANCE_CONSTRAINT;
359 case CustomRuleConstraintType::CRCT_PHYSICAL_HOLE_CLEARANCE:return PHYSICAL_HOLE_CLEARANCE_CONSTRAINT;
360 case CustomRuleConstraintType::CRCT_ASSERTION: return ASSERTION_CONSTRAINT;
361 case CustomRuleConstraintType::CRCT_CONNECTION_WIDTH: return CONNECTION_WIDTH_CONSTRAINT;
362 case CustomRuleConstraintType::CRCT_TRACK_ANGLE: return TRACK_ANGLE_CONSTRAINT;
363 case CustomRuleConstraintType::CRCT_VIA_DANGLING: return VIA_DANGLING_CONSTRAINT;
364 case CustomRuleConstraintType::CRCT_BRIDGED_MASK: return BRIDGED_MASK_CONSTRAINT;
365 case CustomRuleConstraintType::CRCT_SOLDER_MASK_SLIVER: return SOLDER_MASK_SLIVER_CONSTRAINT;
366 case CustomRuleConstraintType::CRCT_NET_CHAIN_LENGTH: return NET_CHAIN_LENGTH_CONSTRAINT;
367 case CustomRuleConstraintType::CRCT_NET_CHAIN_STUB_LENGTH: return NET_CHAIN_STUB_LENGTH_CONSTRAINT;
368 case CustomRuleConstraintType::CRCT_NET_CHAIN_RETURN_PATH: return NET_CHAIN_RETURN_PATH_CONSTRAINT;
369
370 default:
371 wxCHECK_MSG( false, NULL_CONSTRAINT,
372 "Unhandled case in FromProtoEnum<CustomRuleConstraintType>" );
373 }
374}
375
376
377template<>
378CustomRuleConstraintOption ToProtoEnum( DRC_CONSTRAINT::OPTIONS aValue )
379{
380 switch( aValue )
381 {
382 case DRC_CONSTRAINT::OPTIONS::SKEW_WITHIN_DIFF_PAIRS: return CustomRuleConstraintOption::CRCO_SKEW_WITHIN_DIFF_PAIRS;
383 case DRC_CONSTRAINT::OPTIONS::SPACE_DOMAIN: return CustomRuleConstraintOption::CRCO_SPACE_DOMAIN;
384 case DRC_CONSTRAINT::OPTIONS::TIME_DOMAIN: return CustomRuleConstraintOption::CRCO_TIME_DOMAIN;
385
386 default:
387 wxCHECK_MSG( false, CustomRuleConstraintOption::CRCO_UNKNOWN,
388 "Unhandled case in ToProtoEnum<DRC_CONSTRAINT::OPTIONS>" );
389 }
390}
391
392
393template<>
394DRC_CONSTRAINT::OPTIONS FromProtoEnum( CustomRuleConstraintOption aValue )
395{
396 switch( aValue )
397 {
398 case CustomRuleConstraintOption::CRCO_SKEW_WITHIN_DIFF_PAIRS:
400
401 case CustomRuleConstraintOption::CRCO_SPACE_DOMAIN:
403
404 case CustomRuleConstraintOption::CRCO_TIME_DOMAIN:
406
407 case CustomRuleConstraintOption::CRCO_UNKNOWN:
408 default:
410 "Unhandled case in FromProtoEnum<CustomRuleConstraintOption>" );
411 }
412}
413
414
415template<>
416CustomRuleDisallowType ToProtoEnum( DRC_DISALLOW_T aValue )
417{
418 switch( aValue )
419 {
420 case DRC_DISALLOW_THROUGH_VIAS: return CustomRuleDisallowType::CRDT_THROUGH_VIAS;
421 case DRC_DISALLOW_MICRO_VIAS: return CustomRuleDisallowType::CRDT_MICRO_VIAS;
422 case DRC_DISALLOW_BLIND_VIAS: return CustomRuleDisallowType::CRDT_BLIND_VIAS;
423 case DRC_DISALLOW_BURIED_VIAS: return CustomRuleDisallowType::CRDT_BURIED_VIAS;
424 case DRC_DISALLOW_TRACKS: return CustomRuleDisallowType::CRDT_TRACKS;
425 case DRC_DISALLOW_PADS: return CustomRuleDisallowType::CRDT_PADS;
426 case DRC_DISALLOW_ZONES: return CustomRuleDisallowType::CRDT_ZONES;
427 case DRC_DISALLOW_TEXTS: return CustomRuleDisallowType::CRDT_TEXTS;
428 case DRC_DISALLOW_GRAPHICS: return CustomRuleDisallowType::CRDT_GRAPHICS;
429 case DRC_DISALLOW_HOLES: return CustomRuleDisallowType::CRDT_HOLES;
430 case DRC_DISALLOW_FOOTPRINTS: return CustomRuleDisallowType::CRDT_FOOTPRINTS;
431
432 default:
433 wxCHECK_MSG( false, CustomRuleDisallowType::CRDT_UNKNOWN,
434 "Unhandled case in ToProtoEnum<DRC_DISALLOW_T>" );
435 }
436}
437
438
439template<>
440DRC_DISALLOW_T FromProtoEnum( CustomRuleDisallowType aValue )
441{
442 switch( aValue )
443 {
444 case CustomRuleDisallowType::CRDT_THROUGH_VIAS: return DRC_DISALLOW_THROUGH_VIAS;
445 case CustomRuleDisallowType::CRDT_MICRO_VIAS: return DRC_DISALLOW_MICRO_VIAS;
446 case CustomRuleDisallowType::CRDT_BLIND_VIAS: return DRC_DISALLOW_BLIND_VIAS;
447 case CustomRuleDisallowType::CRDT_BURIED_VIAS: return DRC_DISALLOW_BURIED_VIAS;
448 case CustomRuleDisallowType::CRDT_TRACKS: return DRC_DISALLOW_TRACKS;
449 case CustomRuleDisallowType::CRDT_PADS: return DRC_DISALLOW_PADS;
450 case CustomRuleDisallowType::CRDT_ZONES: return DRC_DISALLOW_ZONES;
451 case CustomRuleDisallowType::CRDT_TEXTS: return DRC_DISALLOW_TEXTS;
452 case CustomRuleDisallowType::CRDT_GRAPHICS: return DRC_DISALLOW_GRAPHICS;
453 case CustomRuleDisallowType::CRDT_HOLES: return DRC_DISALLOW_HOLES;
454 case CustomRuleDisallowType::CRDT_FOOTPRINTS: return DRC_DISALLOW_FOOTPRINTS;
455
456 case CustomRuleDisallowType::CRDT_UNKNOWN:
457 default:
458 wxCHECK_MSG( false, DRC_DISALLOW_THROUGH_VIAS,
459 "Unhandled case in FromProtoEnum<CustomRuleDisallowType>" );
460 }
461}
462
463
464template<>
465types::UnconnectedLayerRemoval ToProtoEnum( UNCONNECTED_LAYER_MODE aValue )
466{
467 switch( aValue )
468 {
470 return types::UnconnectedLayerRemoval::ULR_KEEP;
471
473 return types::UnconnectedLayerRemoval::ULR_REMOVE;
474
476 return types::UnconnectedLayerRemoval::ULR_REMOVE_EXCEPT_START_AND_END;
477
479 return types::UnconnectedLayerRemoval::ULR_START_END_ONLY;
480
481 default:
482 wxCHECK_MSG( false, types::UnconnectedLayerRemoval::ULR_UNKNOWN,
483 "Unhandled case in ToProtoEnum<PADSTACK::UNCONNECTED_LAYER_MODE>");
484 }
485}
486
487
488template<>
489UNCONNECTED_LAYER_MODE FromProtoEnum( types::UnconnectedLayerRemoval aValue )
490{
491 switch( aValue )
492 {
493 case types::UnconnectedLayerRemoval::ULR_UNKNOWN:
494 case types::UnconnectedLayerRemoval::ULR_KEEP:
496
497 case types::UnconnectedLayerRemoval::ULR_REMOVE:
499
500 case types::UnconnectedLayerRemoval::ULR_REMOVE_EXCEPT_START_AND_END:
502
503 case types::UnconnectedLayerRemoval::ULR_START_END_ONLY:
505
506 default:
507 wxCHECK_MSG( false, UNCONNECTED_LAYER_MODE::KEEP_ALL,
508 "Unhandled case in FromProtoEnum<types::UnconnectedLayerRemoval>");
509 }
510}
511
512
513template<>
514types::IslandRemovalMode ToProtoEnum( ISLAND_REMOVAL_MODE aValue )
515{
516 switch( aValue )
517 {
518 case ISLAND_REMOVAL_MODE::ALWAYS: return types::IslandRemovalMode::IRM_ALWAYS;
519 case ISLAND_REMOVAL_MODE::NEVER: return types::IslandRemovalMode::IRM_NEVER;
520 case ISLAND_REMOVAL_MODE::AREA: return types::IslandRemovalMode::IRM_AREA;
521
522 default:
523 wxCHECK_MSG( false, types::IslandRemovalMode::IRM_UNKNOWN,
524 "Unhandled case in ToProtoEnum<ISLAND_REMOVAL_MODE>");
525 }
526}
527
528
529template<>
530ISLAND_REMOVAL_MODE FromProtoEnum( types::IslandRemovalMode aValue )
531{
532 switch( aValue )
533 {
534 case types::IslandRemovalMode::IRM_UNKNOWN:
535 case types::IslandRemovalMode::IRM_ALWAYS: return ISLAND_REMOVAL_MODE::ALWAYS;
536 case types::IslandRemovalMode::IRM_NEVER: return ISLAND_REMOVAL_MODE::NEVER;
537 case types::IslandRemovalMode::IRM_AREA: return ISLAND_REMOVAL_MODE::AREA;
538
539 default:
540 wxCHECK_MSG( false, ISLAND_REMOVAL_MODE::ALWAYS,
541 "Unhandled case in FromProtoEnum<types::IslandRemovalMode>" );
542 }
543}
544
545
546template<>
547types::ZoneFillMode ToProtoEnum( ZONE_FILL_MODE aValue )
548{
549 switch( aValue )
550 {
551 case ZONE_FILL_MODE::POLYGONS: return types::ZoneFillMode::ZFM_SOLID;
552 case ZONE_FILL_MODE::HATCH_PATTERN: return types::ZoneFillMode::ZFM_HATCHED;
553 case ZONE_FILL_MODE::COPPER_THIEVING: return types::ZoneFillMode::ZFM_COPPER_THIEVING;
554
555 default:
556 wxCHECK_MSG( false, types::ZoneFillMode::ZFM_UNKNOWN,
557 "Unhandled case in ToProtoEnum<ZONE_FILL_MODE>");
558 }
559}
560
561
562template<>
563ZONE_FILL_MODE FromProtoEnum( types::ZoneFillMode aValue )
564{
565 switch( aValue )
566 {
567 case types::ZoneFillMode::ZFM_UNKNOWN:
568 case types::ZoneFillMode::ZFM_SOLID: return ZONE_FILL_MODE::POLYGONS;
569 case types::ZoneFillMode::ZFM_HATCHED: return ZONE_FILL_MODE::HATCH_PATTERN;
570 case types::ZoneFillMode::ZFM_COPPER_THIEVING: return ZONE_FILL_MODE::COPPER_THIEVING;
571
572 default:
573 wxCHECK_MSG( false, ZONE_FILL_MODE::POLYGONS,
574 "Unhandled case in FromProtoEnum<types::ZoneFillMode>" );
575 }
576}
577
578
579template<>
580types::ThievingPattern ToProtoEnum( THIEVING_PATTERN aValue )
581{
582 switch( aValue )
583 {
584 case THIEVING_PATTERN::DOTS: return types::ThievingPattern::TP_DOTS;
585 case THIEVING_PATTERN::SQUARES: return types::ThievingPattern::TP_SQUARES;
586 case THIEVING_PATTERN::HATCH: return types::ThievingPattern::TP_CROSSHATCH;
587
588 default:
589 wxCHECK_MSG( false, types::ThievingPattern::TP_UNKNOWN,
590 "Unhandled case in ToProtoEnum<THIEVING_PATTERN>" );
591 }
592}
593
594
595template<>
596THIEVING_PATTERN FromProtoEnum( types::ThievingPattern aValue )
597{
598 switch( aValue )
599 {
600 case types::ThievingPattern::TP_UNKNOWN:
601 case types::ThievingPattern::TP_DOTS: return THIEVING_PATTERN::DOTS;
602 case types::ThievingPattern::TP_SQUARES: return THIEVING_PATTERN::SQUARES;
603 case types::ThievingPattern::TP_CROSSHATCH: return THIEVING_PATTERN::HATCH;
604
605 default:
606 wxCHECK_MSG( false, THIEVING_PATTERN::DOTS,
607 "Unhandled case in FromProtoEnum<types::ThievingPattern>" );
608 }
609}
610
611
612template<>
613types::ZoneBorderStyle ToProtoEnum( ZONE_BORDER_DISPLAY_STYLE aValue )
614{
615 switch( aValue )
616 {
617 case ZONE_BORDER_DISPLAY_STYLE::NO_HATCH: return types::ZoneBorderStyle::ZBS_SOLID;
618 case ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_FULL: return types::ZoneBorderStyle::ZBS_DIAGONAL_FULL;
619 case ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_EDGE: return types::ZoneBorderStyle::ZBS_DIAGONAL_EDGE;
620 case ZONE_BORDER_DISPLAY_STYLE::INVISIBLE_BORDER: return types::ZoneBorderStyle::ZBS_INVISIBLE;
621
622 default:
623 wxCHECK_MSG( false, types::ZoneBorderStyle::ZBS_UNKNOWN,
624 "Unhandled case in ToProtoEnum<ZONE_BORDER_DISPLAY_STYLE>");
625 }
626}
627
628
629template<>
630ZONE_BORDER_DISPLAY_STYLE FromProtoEnum( types::ZoneBorderStyle aValue )
631{
632 switch( aValue )
633 {
634 case types::ZoneBorderStyle::ZBS_SOLID: return ZONE_BORDER_DISPLAY_STYLE::NO_HATCH;
635 case types::ZoneBorderStyle::ZBS_DIAGONAL_FULL: return ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_FULL;
636 case types::ZoneBorderStyle::ZBS_UNKNOWN:
637 case types::ZoneBorderStyle::ZBS_DIAGONAL_EDGE: return ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_EDGE;
638 case types::ZoneBorderStyle::ZBS_INVISIBLE: return ZONE_BORDER_DISPLAY_STYLE::INVISIBLE_BORDER;
639
640 default:
642 "Unhandled case in FromProtoEnum<types::ZoneHatchBorderMode>" );
643 }
644}
645
646
647template<>
648types::PlacementRuleSourceType ToProtoEnum( PLACEMENT_SOURCE_T aValue )
649{
650 switch( aValue )
651 {
653 return types::PlacementRuleSourceType::PRST_SHEET_NAME;
654
656 return types::PlacementRuleSourceType::PRST_COMPONENT_CLASS;
657
659 return types::PlacementRuleSourceType::PRST_GROUP;
660
662 return types::PlacementRuleSourceType::PRST_DESIGN_BLOCK;
663
664 default:
665 wxCHECK_MSG( false, types::PlacementRuleSourceType::PRST_UNKNOWN,
666 "Unhandled case in ToProtoEnum<PLACEMENT_SOURCE_T>");
667 }
668}
669
670
671template<>
672PLACEMENT_SOURCE_T FromProtoEnum( types::PlacementRuleSourceType aValue )
673{
674 switch( aValue )
675 {
676 case types::PlacementRuleSourceType::PRST_UNKNOWN:
677 case types::PlacementRuleSourceType::PRST_SHEET_NAME:
679
680 case types::PlacementRuleSourceType::PRST_COMPONENT_CLASS:
682
683 case types::PlacementRuleSourceType::PRST_GROUP:
685
686 case types::PlacementRuleSourceType::PRST_DESIGN_BLOCK:
688
689 default:
690 wxCHECK_MSG( false, PLACEMENT_SOURCE_T::SHEETNAME,
691 "Unhandled case in FromProtoEnum<types::PlacementRuleSourceType>" );
692 }
693}
694
695
696template<>
697types::TeardropType ToProtoEnum( TEARDROP_TYPE aValue )
698{
699 switch( aValue )
700 {
701 case TEARDROP_TYPE::TD_NONE: return types::TeardropType::TDT_NONE;
702 case TEARDROP_TYPE::TD_UNSPECIFIED: return types::TeardropType::TDT_UNSPECIFIED;
703 case TEARDROP_TYPE::TD_VIAPAD: return types::TeardropType::TDT_VIA_PAD;
704 case TEARDROP_TYPE::TD_TRACKEND: return types::TeardropType::TDT_TRACK_END;
705
706 default:
707 wxCHECK_MSG( false, types::TeardropType::TDT_UNKNOWN,
708 "Unhandled case in ToProtoEnum<TEARDROP_TYPE>");
709 }
710}
711
712
713template<>
714TEARDROP_TYPE FromProtoEnum( types::TeardropType aValue )
715{
716 switch( aValue )
717 {
718 case types::TeardropType::TDT_UNKNOWN:
719 case types::TeardropType::TDT_NONE: return TEARDROP_TYPE::TD_NONE;
720 case types::TeardropType::TDT_UNSPECIFIED: return TEARDROP_TYPE::TD_UNSPECIFIED;
721 case types::TeardropType::TDT_VIA_PAD: return TEARDROP_TYPE::TD_VIAPAD;
722 case types::TeardropType::TDT_TRACK_END: return TEARDROP_TYPE::TD_TRACKEND;
723
724 default:
725 wxCHECK_MSG( false, TEARDROP_TYPE::TD_NONE,
726 "Unhandled case in FromProtoEnum<types::ZoneHatchBorderMode>" );
727 }
728}
729
730
731template<>
732kiapi::board::TeardropTarget ToProtoEnum( TARGET_TD aValue )
733{
734 switch( aValue )
735 {
736 case TARGET_ROUND: return kiapi::board::TeardropTarget::TDT_ROUND;
737 case TARGET_RECT: return kiapi::board::TeardropTarget::TDT_RECT;
738 case TARGET_TRACK: return kiapi::board::TeardropTarget::TDT_TRACK;
739
740 default:
741 wxCHECK_MSG( false, kiapi::board::TeardropTarget::TDT_UNKNOWN,
742 "Unhandled case in ToProtoEnum<TARGET_TD>" );
743 }
744}
745
746
747template<>
748TARGET_TD FromProtoEnum( kiapi::board::TeardropTarget aValue )
749{
750 switch( aValue )
751 {
752 case kiapi::board::TeardropTarget::TDT_ROUND: return TARGET_ROUND;
753 case kiapi::board::TeardropTarget::TDT_RECT: return TARGET_RECT;
754 case kiapi::board::TeardropTarget::TDT_TRACK: return TARGET_TRACK;
755
756 case kiapi::board::TeardropTarget::TDT_UNKNOWN:
757 default:
758 return TARGET_UNKNOWN;
759 }
760}
761
762
763template<>
764types::DimensionTextBorderStyle ToProtoEnum( DIM_TEXT_BORDER aValue )
765{
766 switch( aValue )
767 {
768 case DIM_TEXT_BORDER::NONE: return types::DimensionTextBorderStyle::DTBS_NONE;
769 case DIM_TEXT_BORDER::RECTANGLE: return types::DimensionTextBorderStyle::DTBS_RECTANGLE;
770 case DIM_TEXT_BORDER::CIRCLE: return types::DimensionTextBorderStyle::DTBS_CIRCLE;
771 case DIM_TEXT_BORDER::ROUNDRECT: return types::DimensionTextBorderStyle::DTBS_ROUNDRECT;
772
773 default:
774 wxCHECK_MSG( false, types::DimensionTextBorderStyle::DTBS_UNKNOWN,
775 "Unhandled case in ToProtoEnum<DIM_TEXT_BORDER>");
776 }
777}
778
779
780template<>
781DIM_TEXT_BORDER FromProtoEnum( types::DimensionTextBorderStyle aValue )
782{
783 switch( aValue )
784 {
785 case types::DimensionTextBorderStyle::DTBS_UNKNOWN:
786 case types::DimensionTextBorderStyle::DTBS_NONE: return DIM_TEXT_BORDER::NONE;
787 case types::DimensionTextBorderStyle::DTBS_RECTANGLE: return DIM_TEXT_BORDER::RECTANGLE;
788 case types::DimensionTextBorderStyle::DTBS_CIRCLE: return DIM_TEXT_BORDER::CIRCLE;
789 case types::DimensionTextBorderStyle::DTBS_ROUNDRECT: return DIM_TEXT_BORDER::ROUNDRECT;
790
791 default:
792 wxCHECK_MSG( false, DIM_TEXT_BORDER::NONE,
793 "Unhandled case in FromProtoEnum<types::DimensionTextBorderStyle>" );
794 }
795}
796
797
798template<>
799types::DimensionUnitFormat ToProtoEnum( DIM_UNITS_FORMAT aValue )
800{
801 switch( aValue )
802 {
803 case DIM_UNITS_FORMAT::NO_SUFFIX: return types::DimensionUnitFormat::DUF_NO_SUFFIX;
804 case DIM_UNITS_FORMAT::BARE_SUFFIX: return types::DimensionUnitFormat::DUF_BARE_SUFFIX;
805 case DIM_UNITS_FORMAT::PAREN_SUFFIX: return types::DimensionUnitFormat::DUF_PAREN_SUFFIX;
806
807 default:
808 wxCHECK_MSG( false, types::DimensionUnitFormat::DUF_UNKNOWN,
809 "Unhandled case in ToProtoEnum<DIM_UNITS_FORMAT>");
810 }
811}
812
813
814template<>
815DIM_UNITS_FORMAT FromProtoEnum( types::DimensionUnitFormat aValue )
816{
817 switch( aValue )
818 {
819 case types::DimensionUnitFormat::DUF_UNKNOWN:
820 case types::DimensionUnitFormat::DUF_NO_SUFFIX: return DIM_UNITS_FORMAT::NO_SUFFIX;
821 case types::DimensionUnitFormat::DUF_BARE_SUFFIX: return DIM_UNITS_FORMAT::BARE_SUFFIX;
822 case types::DimensionUnitFormat::DUF_PAREN_SUFFIX: return DIM_UNITS_FORMAT::PAREN_SUFFIX;
823
824 default:
825 wxCHECK_MSG( false, DIM_UNITS_FORMAT::NO_SUFFIX,
826 "Unhandled case in FromProtoEnum<types::DimensionUnitFormat>" );
827 }
828}
829
830
831template<>
832types::DimensionArrowDirection ToProtoEnum( DIM_ARROW_DIRECTION aValue )
833{
834 switch( aValue )
835 {
836 case DIM_ARROW_DIRECTION::INWARD: return types::DimensionArrowDirection::DAD_INWARD;
837 case DIM_ARROW_DIRECTION::OUTWARD: return types::DimensionArrowDirection::DAD_OUTWARD;
838
839 default:
840 wxCHECK_MSG( false, types::DimensionArrowDirection::DAD_UNKNOWN,
841 "Unhandled case in ToProtoEnum<DIM_ARROW_DIRECTION>");
842 }
843}
844
845
846template<>
847DIM_ARROW_DIRECTION FromProtoEnum( types::DimensionArrowDirection aValue )
848{
849 switch( aValue )
850 {
851 case types::DimensionArrowDirection::DAD_INWARD: return DIM_ARROW_DIRECTION::INWARD;
852 case types::DimensionArrowDirection::DAD_UNKNOWN:
853 case types::DimensionArrowDirection::DAD_OUTWARD: return DIM_ARROW_DIRECTION::OUTWARD;
854
855 default:
856 wxCHECK_MSG( false, DIM_ARROW_DIRECTION::OUTWARD,
857 "Unhandled case in FromProtoEnum<types::DimensionArrowDirection>" );
858 }
859}
860
861
862template<>
863types::DimensionPrecision ToProtoEnum( DIM_PRECISION aValue )
864{
865 switch( aValue )
866 {
867 case DIM_PRECISION::X: return types::DimensionPrecision::DP_FIXED_0;
868 case DIM_PRECISION::X_X: return types::DimensionPrecision::DP_FIXED_1;
869 case DIM_PRECISION::X_XX: return types::DimensionPrecision::DP_FIXED_2;
870 case DIM_PRECISION::X_XXX: return types::DimensionPrecision::DP_FIXED_3;
871 case DIM_PRECISION::X_XXXX: return types::DimensionPrecision::DP_FIXED_4;
872 case DIM_PRECISION::X_XXXXX: return types::DimensionPrecision::DP_FIXED_5;
873 case DIM_PRECISION::V_VV: return types::DimensionPrecision::DP_SCALED_IN_2;
874 case DIM_PRECISION::V_VVV: return types::DimensionPrecision::DP_SCALED_IN_3;
875 case DIM_PRECISION::V_VVVV: return types::DimensionPrecision::DP_SCALED_IN_4;
876 case DIM_PRECISION::V_VVVVV: return types::DimensionPrecision::DP_SCALED_IN_5;
877
878 default:
879 wxCHECK_MSG( false, types::DimensionPrecision::DP_UNKNOWN,
880 "Unhandled case in ToProtoEnum<DIM_PRECISION>");
881 }
882}
883
884
885template<>
886DIM_PRECISION FromProtoEnum( types::DimensionPrecision aValue )
887{
888 switch( aValue )
889 {
890 case types::DimensionPrecision::DP_FIXED_0: return DIM_PRECISION::X;
891 case types::DimensionPrecision::DP_FIXED_1: return DIM_PRECISION::X_X;
892 case types::DimensionPrecision::DP_FIXED_2: return DIM_PRECISION::X_XX;
893 case types::DimensionPrecision::DP_FIXED_3: return DIM_PRECISION::X_XXX;
894 case types::DimensionPrecision::DP_FIXED_4: return DIM_PRECISION::X_XXXX;
895 case types::DimensionPrecision::DP_FIXED_5: return DIM_PRECISION::X_XXXXX;
896 case types::DimensionPrecision::DP_UNKNOWN:
897 case types::DimensionPrecision::DP_SCALED_IN_2: return DIM_PRECISION::V_VV;
898 case types::DimensionPrecision::DP_SCALED_IN_3: return DIM_PRECISION::V_VVV;
899 case types::DimensionPrecision::DP_SCALED_IN_4: return DIM_PRECISION::V_VVVV;
900 case types::DimensionPrecision::DP_SCALED_IN_5: return DIM_PRECISION::V_VVVVV;
901
902 default:
903 wxCHECK_MSG( false, DIM_PRECISION::V_VV,
904 "Unhandled case in FromProtoEnum<types::DimensionPrecision>" );
905 }
906}
907
908
909template<>
910types::DimensionTextPosition ToProtoEnum( DIM_TEXT_POSITION aValue )
911{
912 switch( aValue )
913 {
914 case DIM_TEXT_POSITION::OUTSIDE: return types::DimensionTextPosition::DTP_OUTSIDE;
915 case DIM_TEXT_POSITION::INLINE: return types::DimensionTextPosition::DTP_INLINE;
916 case DIM_TEXT_POSITION::MANUAL: return types::DimensionTextPosition::DTP_MANUAL;
917
918 default:
919 wxCHECK_MSG( false, types::DimensionTextPosition::DTP_UNKNOWN,
920 "Unhandled case in ToProtoEnum<DIM_TEXT_POSITION>");
921 }
922}
923
924
925template<>
926DIM_TEXT_POSITION FromProtoEnum( types::DimensionTextPosition aValue )
927{
928 switch( aValue )
929 {
930 case types::DimensionTextPosition::DTP_UNKNOWN:
931 case types::DimensionTextPosition::DTP_OUTSIDE: return DIM_TEXT_POSITION::OUTSIDE;
932 case types::DimensionTextPosition::DTP_INLINE: return DIM_TEXT_POSITION::INLINE;
933 case types::DimensionTextPosition::DTP_MANUAL: return DIM_TEXT_POSITION::MANUAL;
934
935 default:
936 wxCHECK_MSG( false, DIM_TEXT_POSITION::OUTSIDE,
937 "Unhandled case in FromProtoEnum<types::DimensionTextPosition>" );
938 }
939}
940
941
942template<>
943types::DimensionUnit ToProtoEnum( DIM_UNITS_MODE aValue )
944{
945 switch( aValue )
946 {
947 case DIM_UNITS_MODE::INCH: return types::DimensionUnit::DU_INCHES;
948 case DIM_UNITS_MODE::MILS: return types::DimensionUnit::DU_MILS;
949 case DIM_UNITS_MODE::MM: return types::DimensionUnit::DU_MILLIMETERS;
950 case DIM_UNITS_MODE::AUTOMATIC: return types::DimensionUnit::DU_AUTOMATIC;
951
952 default:
953 wxCHECK_MSG( false, types::DimensionUnit::DU_UNKNOWN,
954 "Unhandled case in ToProtoEnum<DIM_UNITS_MODE>");
955 }
956}
957
958
959template<>
960DIM_UNITS_MODE FromProtoEnum( types::DimensionUnit aValue )
961{
962 switch( aValue )
963 {
964 case types::DimensionUnit::DU_INCHES: return DIM_UNITS_MODE::INCH;
965 case types::DimensionUnit::DU_MILS: return DIM_UNITS_MODE::MILS;
966 case types::DimensionUnit::DU_MILLIMETERS: return DIM_UNITS_MODE::MM;
967 case types::DimensionUnit::DU_UNKNOWN:
968 case types::DimensionUnit::DU_AUTOMATIC: return DIM_UNITS_MODE::AUTOMATIC;
969
970 default:
971 wxCHECK_MSG( false, DIM_UNITS_MODE::AUTOMATIC,
972 "Unhandled case in FromProtoEnum<types::DimensionUnit>" );
973 }
974}
975
976
977template<>
978commands::InactiveLayerDisplayMode ToProtoEnum( HIGH_CONTRAST_MODE aValue )
979{
980 switch( aValue )
981 {
982 case HIGH_CONTRAST_MODE::NORMAL: return commands::InactiveLayerDisplayMode::ILDM_NORMAL;
983 case HIGH_CONTRAST_MODE::DIMMED: return commands::InactiveLayerDisplayMode::ILDM_DIMMED;
984 case HIGH_CONTRAST_MODE::HIDDEN: return commands::InactiveLayerDisplayMode::ILDM_HIDDEN;
985
986 default:
987 wxCHECK_MSG( false, commands::InactiveLayerDisplayMode::ILDM_NORMAL,
988 "Unhandled case in ToProtoEnum<HIGH_CONTRAST_MODE>");
989 }
990}
991
992
993template<>
994HIGH_CONTRAST_MODE FromProtoEnum( commands::InactiveLayerDisplayMode aValue )
995{
996 switch( aValue )
997 {
998 case commands::InactiveLayerDisplayMode::ILDM_DIMMED: return HIGH_CONTRAST_MODE::DIMMED;
999 case commands::InactiveLayerDisplayMode::ILDM_HIDDEN: return HIGH_CONTRAST_MODE::HIDDEN;
1000 case commands::InactiveLayerDisplayMode::ILDM_UNKNOWN:
1001 case commands::InactiveLayerDisplayMode::ILDM_NORMAL: return HIGH_CONTRAST_MODE::NORMAL;
1002
1003 default:
1004 wxCHECK_MSG( false, HIGH_CONTRAST_MODE::NORMAL,
1005 "Unhandled case in FromProtoEnum<commands::InactiveLayerDisplayMode>" );
1006 }
1007}
1008
1009
1010template<>
1011commands::NetColorDisplayMode ToProtoEnum( NET_COLOR_MODE aValue )
1012{
1013 switch( aValue )
1014 {
1015 case NET_COLOR_MODE::ALL: return commands::NetColorDisplayMode::NCDM_ALL;
1016 case NET_COLOR_MODE::RATSNEST: return commands::NetColorDisplayMode::NCDM_RATSNEST;
1017 case NET_COLOR_MODE::OFF: return commands::NetColorDisplayMode::NCDM_OFF;
1018
1019 default:
1020 wxCHECK_MSG( false, commands::NetColorDisplayMode::NCDM_UNKNOWN,
1021 "Unhandled case in ToProtoEnum<NET_COLOR_MODE>");
1022 }
1023}
1024
1025
1026template<>
1027NET_COLOR_MODE FromProtoEnum( commands::NetColorDisplayMode aValue )
1028{
1029 switch( aValue )
1030 {
1031 case commands::NetColorDisplayMode::NCDM_ALL: return NET_COLOR_MODE::ALL;
1032 case commands::NetColorDisplayMode::NCDM_OFF: return NET_COLOR_MODE::OFF;
1033 case commands::NetColorDisplayMode::NCDM_UNKNOWN:
1034 case commands::NetColorDisplayMode::NCDM_RATSNEST: return NET_COLOR_MODE::RATSNEST;
1035
1036 default:
1037 wxCHECK_MSG( false, NET_COLOR_MODE::RATSNEST,
1038 "Unhandled case in FromProtoEnum<commands::NetColorDisplayMode>" );
1039 }
1040}
1041
1042
1043template<>
1044commands::RatsnestDisplayMode ToProtoEnum( RATSNEST_MODE aValue )
1045{
1046 switch( aValue )
1047 {
1048 case RATSNEST_MODE::ALL: return commands::RatsnestDisplayMode::RDM_ALL_LAYERS;
1049 case RATSNEST_MODE::VISIBLE: return commands::RatsnestDisplayMode::RDM_VISIBLE_LAYERS;
1050
1051 default:
1052 wxCHECK_MSG( false, commands::RatsnestDisplayMode::RDM_UNKNOWN,
1053 "Unhandled case in ToProtoEnum<RATSNEST_MODE>");
1054 }
1055}
1056
1057
1058template<>
1059RATSNEST_MODE FromProtoEnum( commands::RatsnestDisplayMode aValue )
1060{
1061 switch( aValue )
1062 {
1063 case commands::RatsnestDisplayMode::RDM_VISIBLE_LAYERS: return RATSNEST_MODE::VISIBLE;
1064 case commands::RatsnestDisplayMode::RDM_UNKNOWN:
1065 case commands::RatsnestDisplayMode::RDM_ALL_LAYERS: return RATSNEST_MODE::ALL;
1066
1067 default:
1068 wxCHECK_MSG( false, RATSNEST_MODE::ALL,
1069 "Unhandled case in FromProtoEnum<commands::RatsnestDisplayMode>" );
1070 }
1071}
1072
1073
1074template<>
1075BoardStackupLayerType ToProtoEnum( BOARD_STACKUP_ITEM_TYPE aValue )
1076{
1077 switch( aValue )
1078 {
1079 case BS_ITEM_TYPE_UNDEFINED: return BoardStackupLayerType::BSLT_UNDEFINED;
1080 case BS_ITEM_TYPE_COPPER: return BoardStackupLayerType::BSLT_COPPER;
1081 case BS_ITEM_TYPE_DIELECTRIC: return BoardStackupLayerType::BSLT_DIELECTRIC;
1082 case BS_ITEM_TYPE_SOLDERPASTE: return BoardStackupLayerType::BSLT_SOLDERPASTE;
1083 case BS_ITEM_TYPE_SOLDERMASK: return BoardStackupLayerType::BSLT_SOLDERMASK;
1084 case BS_ITEM_TYPE_SILKSCREEN: return BoardStackupLayerType::BSLT_SILKSCREEN;
1085
1086 default:
1087 wxCHECK_MSG( false, BoardStackupLayerType::BSLT_UNKNOWN,
1088 "Unhandled case in ToProtoEnum<BOARD_STACKUP_ITEM_TYPE>");
1089 }
1090}
1091
1092
1093template<>
1094BOARD_STACKUP_ITEM_TYPE FromProtoEnum( BoardStackupLayerType aValue )
1095{
1096 switch( aValue )
1097 {
1098 case BoardStackupLayerType::BSLT_UNDEFINED: return BS_ITEM_TYPE_UNDEFINED;
1099 case BoardStackupLayerType::BSLT_COPPER: return BS_ITEM_TYPE_COPPER;
1100 case BoardStackupLayerType::BSLT_DIELECTRIC: return BS_ITEM_TYPE_DIELECTRIC;
1101 case BoardStackupLayerType::BSLT_SOLDERPASTE: return BS_ITEM_TYPE_SOLDERPASTE;
1102 case BoardStackupLayerType::BSLT_SOLDERMASK: return BS_ITEM_TYPE_SOLDERMASK;
1103 case BoardStackupLayerType::BSLT_SILKSCREEN: return BS_ITEM_TYPE_SILKSCREEN;
1104
1105 default:
1106 wxCHECK_MSG( false, BS_ITEM_TYPE_UNDEFINED,
1107 "Unhandled case in FromProtoEnum<BoardStackupLayerType>" );
1108 }
1109}
1110
1111
1112template<>
1113DrcSeverity ToProtoEnum( SEVERITY aValue )
1114{
1115 switch( aValue )
1116 {
1117 case RPT_SEVERITY_WARNING: return DrcSeverity::DRS_WARNING;
1118 case RPT_SEVERITY_ERROR: return DrcSeverity::DRS_ERROR;
1119 case RPT_SEVERITY_EXCLUSION: return DrcSeverity::DRS_EXCLUSION;
1120 case RPT_SEVERITY_IGNORE: return DrcSeverity::DRS_IGNORE;
1121 case RPT_SEVERITY_INFO: return DrcSeverity::DRS_INFO;
1122 case RPT_SEVERITY_ACTION: return DrcSeverity::DRS_ACTION;
1123 case RPT_SEVERITY_DEBUG: return DrcSeverity::DRS_DEBUG;
1124 case RPT_SEVERITY_UNDEFINED: return DrcSeverity::DRS_UNDEFINED;
1125 default:
1126 wxCHECK_MSG( false, DrcSeverity::DRS_UNDEFINED,
1127 "Unhandled case in ToProtoEnum<SEVERITY>");
1128 }
1129}
1130
1131
1132template<>
1133SEVERITY FromProtoEnum( DrcSeverity aValue )
1134{
1135 switch( aValue )
1136 {
1137 case DrcSeverity::DRS_WARNING: return RPT_SEVERITY_WARNING;
1138 case DrcSeverity::DRS_ERROR: return RPT_SEVERITY_ERROR;
1139 case DrcSeverity::DRS_EXCLUSION: return RPT_SEVERITY_EXCLUSION;
1140 case DrcSeverity::DRS_IGNORE: return RPT_SEVERITY_IGNORE;
1141 case DrcSeverity::DRS_INFO: return RPT_SEVERITY_INFO;
1142 case DrcSeverity::DRS_ACTION: return RPT_SEVERITY_ACTION;
1143 case DrcSeverity::DRS_DEBUG: return RPT_SEVERITY_DEBUG;
1144 case DrcSeverity::DRS_UNKNOWN:
1145 default:
1147 }
1148}
1149
1150
1151template<>
1152PlotDrillMarks ToProtoEnum( DRILL_MARKS aValue )
1153{
1154 switch( aValue )
1155 {
1156 case DRILL_MARKS::NO_DRILL_SHAPE: return PlotDrillMarks::PDM_NONE;
1157 case DRILL_MARKS::SMALL_DRILL_SHAPE: return PlotDrillMarks::PDM_SMALL;
1158 case DRILL_MARKS::FULL_DRILL_SHAPE: return PlotDrillMarks::PDM_FULL;
1159 default:
1160 wxCHECK_MSG( false, PlotDrillMarks::PDM_UNKNOWN,
1161 "Unhandled case in ToProtoEnum<DRILL_MARKS>" );
1162 }
1163}
1164
1165
1166template<>
1167DRILL_MARKS FromProtoEnum( PlotDrillMarks aValue )
1168{
1169 switch( aValue )
1170 {
1171 case PlotDrillMarks::PDM_NONE: return DRILL_MARKS::NO_DRILL_SHAPE;
1172 case PlotDrillMarks::PDM_SMALL: return DRILL_MARKS::SMALL_DRILL_SHAPE;
1173 case PlotDrillMarks::PDM_FULL: return DRILL_MARKS::FULL_DRILL_SHAPE;
1174 case PlotDrillMarks::PDM_UNKNOWN:
1175 default:
1177 }
1178}
1179
1180
1181template<>
1183{
1184 switch( aValue )
1185 {
1186 case JOB_EXPORT_PCB_3D::FORMAT::STEP: return Board3DFormat::B3D_STEP;
1187 case JOB_EXPORT_PCB_3D::FORMAT::STEPZ: return Board3DFormat::B3D_STEPZ;
1188 case JOB_EXPORT_PCB_3D::FORMAT::BREP: return Board3DFormat::B3D_BREP;
1189 case JOB_EXPORT_PCB_3D::FORMAT::XAO: return Board3DFormat::B3D_XAO;
1190 case JOB_EXPORT_PCB_3D::FORMAT::GLB: return Board3DFormat::B3D_GLB;
1191 case JOB_EXPORT_PCB_3D::FORMAT::VRML: return Board3DFormat::B3D_VRML;
1192 case JOB_EXPORT_PCB_3D::FORMAT::PLY: return Board3DFormat::B3D_PLY;
1193 case JOB_EXPORT_PCB_3D::FORMAT::STL: return Board3DFormat::B3D_STL;
1194 case JOB_EXPORT_PCB_3D::FORMAT::U3D: return Board3DFormat::B3D_U3D;
1195 case JOB_EXPORT_PCB_3D::FORMAT::PDF: return Board3DFormat::B3D_PDF;
1196 default:
1197 wxCHECK_MSG( false, Board3DFormat::B3D_UNKNOWN,
1198 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_3D::FORMAT>" );
1199 }
1200}
1201
1202
1203template<>
1205{
1206 switch( aValue )
1207 {
1208 case Board3DFormat::B3D_STEP: return JOB_EXPORT_PCB_3D::FORMAT::STEP;
1209 case Board3DFormat::B3D_STEPZ: return JOB_EXPORT_PCB_3D::FORMAT::STEPZ;
1210 case Board3DFormat::B3D_BREP: return JOB_EXPORT_PCB_3D::FORMAT::BREP;
1211 case Board3DFormat::B3D_XAO: return JOB_EXPORT_PCB_3D::FORMAT::XAO;
1212 case Board3DFormat::B3D_GLB: return JOB_EXPORT_PCB_3D::FORMAT::GLB;
1213 case Board3DFormat::B3D_VRML: return JOB_EXPORT_PCB_3D::FORMAT::VRML;
1214 case Board3DFormat::B3D_PLY: return JOB_EXPORT_PCB_3D::FORMAT::PLY;
1215 case Board3DFormat::B3D_STL: return JOB_EXPORT_PCB_3D::FORMAT::STL;
1216 case Board3DFormat::B3D_U3D: return JOB_EXPORT_PCB_3D::FORMAT::U3D;
1217 case Board3DFormat::B3D_PDF: return JOB_EXPORT_PCB_3D::FORMAT::PDF;
1218 case Board3DFormat::B3D_UNKNOWN:
1219 default:
1221 }
1222}
1223
1224
1225template<>
1226kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_3D::VRML_UNITS aValue )
1227{
1228 switch( aValue )
1229 {
1230 case JOB_EXPORT_PCB_3D::VRML_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1231 case JOB_EXPORT_PCB_3D::VRML_UNITS::MM: return kiapi::common::types::Units::U_MM;
1232 case JOB_EXPORT_PCB_3D::VRML_UNITS::METERS: return kiapi::common::types::Units::U_METERS;
1233 case JOB_EXPORT_PCB_3D::VRML_UNITS::TENTHS: return kiapi::common::types::Units::U_TENTHS;
1234 default:
1235 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1236 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_3D::VRML_UNITS>" );
1237 }
1238}
1239
1240
1241template<>
1242JOB_EXPORT_PCB_3D::VRML_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1243{
1244 switch( aValue )
1245 {
1246 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_3D::VRML_UNITS::INCH;
1247 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_3D::VRML_UNITS::MM;
1248 case kiapi::common::types::Units::U_METERS: return JOB_EXPORT_PCB_3D::VRML_UNITS::METERS;
1249 case kiapi::common::types::Units::U_TENTHS: return JOB_EXPORT_PCB_3D::VRML_UNITS::TENTHS;
1250 case kiapi::common::types::Units::U_UNKNOWN:
1251 default:
1253 }
1254}
1255
1256
1257template<>
1259{
1260 switch( aValue )
1261 {
1262 case JOB_PCB_RENDER::FORMAT::PNG: return RenderFormat::RF_PNG;
1263 case JOB_PCB_RENDER::FORMAT::JPEG: return RenderFormat::RF_JPEG;
1264 default:
1265 wxCHECK_MSG( false, RenderFormat::RF_UNKNOWN,
1266 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::FORMAT>" );
1267 }
1268}
1269
1270
1271template<>
1273{
1274 switch( aValue )
1275 {
1276 case RenderFormat::RF_PNG: return JOB_PCB_RENDER::FORMAT::PNG;
1277 case RenderFormat::RF_JPEG:return JOB_PCB_RENDER::FORMAT::JPEG;
1278 case RenderFormat::RF_UNKNOWN:
1279 default:
1281 }
1282}
1283
1284
1285template<>
1287{
1288 switch( aValue )
1289 {
1290 case JOB_PCB_RENDER::QUALITY::BASIC: return RenderQuality::RQ_BASIC;
1291 case JOB_PCB_RENDER::QUALITY::HIGH: return RenderQuality::RQ_HIGH;
1292 case JOB_PCB_RENDER::QUALITY::USER: return RenderQuality::RQ_USER;
1293 case JOB_PCB_RENDER::QUALITY::JOB_SETTINGS: return RenderQuality::RQ_JOB_SETTINGS;
1294 default:
1295 wxCHECK_MSG( false, RenderQuality::RQ_UNKNOWN,
1296 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::QUALITY>" );
1297 }
1298}
1299
1300
1301template<>
1303{
1304 switch( aValue )
1305 {
1306 case RenderQuality::RQ_BASIC: return JOB_PCB_RENDER::QUALITY::BASIC;
1307 case RenderQuality::RQ_HIGH: return JOB_PCB_RENDER::QUALITY::HIGH;
1308 case RenderQuality::RQ_USER: return JOB_PCB_RENDER::QUALITY::USER;
1309 case RenderQuality::RQ_JOB_SETTINGS: return JOB_PCB_RENDER::QUALITY::JOB_SETTINGS;
1310 case RenderQuality::RQ_UNKNOWN:
1311 default:
1313 }
1314}
1315
1316
1317template<>
1318RenderBackgroundStyle ToProtoEnum( JOB_PCB_RENDER::BG_STYLE aValue )
1319{
1320 switch( aValue )
1321 {
1322 case JOB_PCB_RENDER::BG_STYLE::DEFAULT: return RenderBackgroundStyle::RBS_DEFAULT;
1323 case JOB_PCB_RENDER::BG_STYLE::TRANSPARENT: return RenderBackgroundStyle::RBS_TRANSPARENT;
1324 case JOB_PCB_RENDER::BG_STYLE::OPAQUE: return RenderBackgroundStyle::RBS_OPAQUE;
1325 default:
1326 wxCHECK_MSG( false, RenderBackgroundStyle::RBS_UNKNOWN,
1327 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::BG_STYLE>" );
1328 }
1329}
1330
1331
1332template<>
1333JOB_PCB_RENDER::BG_STYLE FromProtoEnum( RenderBackgroundStyle aValue )
1334{
1335 switch( aValue )
1336 {
1337 case RenderBackgroundStyle::RBS_DEFAULT: return JOB_PCB_RENDER::BG_STYLE::DEFAULT;
1338 case RenderBackgroundStyle::RBS_TRANSPARENT: return JOB_PCB_RENDER::BG_STYLE::TRANSPARENT;
1339 case RenderBackgroundStyle::RBS_OPAQUE: return JOB_PCB_RENDER::BG_STYLE::OPAQUE;
1340 case RenderBackgroundStyle::RBS_UNKNOWN:
1341 default:
1343 }
1344}
1345
1346
1347template<>
1349{
1350 switch( aValue )
1351 {
1352 case JOB_PCB_RENDER::SIDE::TOP: return RenderSide::RS_TOP;
1353 case JOB_PCB_RENDER::SIDE::BOTTOM: return RenderSide::RS_BOTTOM;
1354 case JOB_PCB_RENDER::SIDE::LEFT: return RenderSide::RS_LEFT;
1355 case JOB_PCB_RENDER::SIDE::RIGHT: return RenderSide::RS_RIGHT;
1356 case JOB_PCB_RENDER::SIDE::FRONT: return RenderSide::RS_FRONT;
1357 case JOB_PCB_RENDER::SIDE::BACK: return RenderSide::RS_BACK;
1358 default:
1359 wxCHECK_MSG( false, RenderSide::RS_UNKNOWN,
1360 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::SIDE>" );
1361 }
1362}
1363
1364
1365template<>
1367{
1368 switch( aValue )
1369 {
1370 case RenderSide::RS_TOP: return JOB_PCB_RENDER::SIDE::TOP;
1371 case RenderSide::RS_BOTTOM: return JOB_PCB_RENDER::SIDE::BOTTOM;
1372 case RenderSide::RS_LEFT: return JOB_PCB_RENDER::SIDE::LEFT;
1373 case RenderSide::RS_RIGHT: return JOB_PCB_RENDER::SIDE::RIGHT;
1374 case RenderSide::RS_FRONT: return JOB_PCB_RENDER::SIDE::FRONT;
1375 case RenderSide::RS_BACK: return JOB_PCB_RENDER::SIDE::BACK;
1376 case RenderSide::RS_UNKNOWN:
1377 default:
1379 }
1380}
1381
1382
1383template<>
1384BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_SVG::GEN_MODE aValue )
1385{
1386 switch( aValue )
1387 {
1388 case JOB_EXPORT_PCB_SVG::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1389 case JOB_EXPORT_PCB_SVG::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1390 default:
1391 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1392 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_SVG::GEN_MODE>" );
1393 }
1394}
1395
1396
1397template<>
1398JOB_EXPORT_PCB_SVG::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1399{
1400 switch( aValue )
1401 {
1402 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1404 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1406 case BoardJobPaginationMode::BJPM_UNKNOWN:
1407 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1408 default:
1410 }
1411}
1412
1413
1414template<>
1415BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_DXF::GEN_MODE aValue )
1416{
1417 switch( aValue )
1418 {
1419 case JOB_EXPORT_PCB_DXF::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1420 case JOB_EXPORT_PCB_DXF::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1421 default:
1422 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1423 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DXF::GEN_MODE>" );
1424 }
1425}
1426
1427
1428template<>
1429JOB_EXPORT_PCB_DXF::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1430{
1431 switch( aValue )
1432 {
1433 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1435 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1437 case BoardJobPaginationMode::BJPM_UNKNOWN:
1438 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1439 default:
1441 }
1442}
1443
1444
1445template<>
1446BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_PDF::GEN_MODE aValue )
1447{
1448 switch( aValue )
1449 {
1451 return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1453 return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE;
1455 return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1456 default:
1457 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1458 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_PDF::GEN_MODE>" );
1459 }
1460}
1461
1462
1463template<>
1464JOB_EXPORT_PCB_PDF::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1465{
1466 switch( aValue )
1467 {
1468 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1470 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1472 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1474 case BoardJobPaginationMode::BJPM_UNKNOWN:
1475 default:
1477 }
1478}
1479
1480
1481template<>
1482BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_PS::GEN_MODE aValue )
1483{
1484 switch( aValue )
1485 {
1486 case JOB_EXPORT_PCB_PS::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1487 case JOB_EXPORT_PCB_PS::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1488 default:
1489 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1490 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_PS::GEN_MODE>" );
1491 }
1492}
1493
1494
1495template<>
1496JOB_EXPORT_PCB_PS::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1497{
1498 switch( aValue )
1499 {
1500 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1502 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1504 case BoardJobPaginationMode::BJPM_UNKNOWN:
1505 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1506 default:
1508 }
1509}
1510
1511
1512template<>
1514{
1515 switch( aValue )
1516 {
1517 case JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::EXCELLON: return DrillFormat::DF_EXCELLON;
1518 case JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::GERBER: return DrillFormat::DF_GERBER;
1519 default:
1520 wxCHECK_MSG( false, DrillFormat::DF_UNKNOWN,
1521 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_FORMAT>" );
1522 }
1523}
1524
1525
1526template<>
1528{
1529 switch( aValue )
1530 {
1531 case DrillFormat::DF_EXCELLON: return JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::EXCELLON;
1532 case DrillFormat::DF_GERBER: return JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::GERBER;
1533 case DrillFormat::DF_UNKNOWN:
1534 default:
1536 }
1537}
1538
1539
1540template<>
1542{
1543 switch( aValue )
1544 {
1545 case JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::ABS: return DrillOrigin::DO_ABSOLUTE;
1546 case JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::PLOT: return DrillOrigin::DO_PLOT;
1547 default:
1548 wxCHECK_MSG( false, DrillOrigin::DO_UNKNOWN,
1549 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN>" );
1550 }
1551}
1552
1553
1554template<>
1556{
1557 switch( aValue )
1558 {
1559 case DrillOrigin::DO_ABSOLUTE: return JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::ABS;
1560 case DrillOrigin::DO_PLOT: return JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::PLOT;
1561 case DrillOrigin::DO_UNKNOWN:
1562 default:
1564 }
1565}
1566
1567
1568template<>
1570{
1571 switch( aValue )
1572 {
1574 return DrillZerosFormat::DZF_DECIMAL;
1576 return DrillZerosFormat::DZF_SUPPRESS_LEADING;
1578 return DrillZerosFormat::DZF_SUPPRESS_TRAILING;
1580 return DrillZerosFormat::DZF_KEEP_ZEROS;
1581 default:
1582 wxCHECK_MSG( false, DrillZerosFormat::DZF_UNKNOWN,
1583 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::ZEROS_FORMAT>" );
1584 }
1585}
1586
1587
1588template<>
1590{
1591 switch( aValue )
1592 {
1593 case DrillZerosFormat::DZF_DECIMAL:
1595 case DrillZerosFormat::DZF_SUPPRESS_LEADING:
1597 case DrillZerosFormat::DZF_SUPPRESS_TRAILING:
1599 case DrillZerosFormat::DZF_KEEP_ZEROS:
1601 case DrillZerosFormat::DZF_UNKNOWN:
1602 default:
1604 }
1605}
1606
1607
1608template<>
1610{
1611 switch( aValue )
1612 {
1614 return DrillMapFormat::DMF_POSTSCRIPT;
1616 return DrillMapFormat::DMF_GERBER_X2;
1618 return DrillMapFormat::DMF_DXF;
1620 return DrillMapFormat::DMF_SVG;
1622 return DrillMapFormat::DMF_PDF;
1623 default:
1624 wxCHECK_MSG( false, DrillMapFormat::DMF_UNKNOWN,
1625 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::MAP_FORMAT>" );
1626 }
1627}
1628
1629
1630template<>
1632{
1633 switch( aValue )
1634 {
1635 case DrillMapFormat::DMF_POSTSCRIPT:
1637 case DrillMapFormat::DMF_GERBER_X2:
1639 case DrillMapFormat::DMF_DXF:
1641 case DrillMapFormat::DMF_SVG:
1643 case DrillMapFormat::DMF_PDF:
1645 case DrillMapFormat::DMF_UNKNOWN:
1646 default:
1648 }
1649}
1650
1651
1652template<>
1653kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_DRILL::DRILL_UNITS aValue )
1654{
1655 switch( aValue )
1656 {
1657 case JOB_EXPORT_PCB_DRILL::DRILL_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1658 case JOB_EXPORT_PCB_DRILL::DRILL_UNITS::MM: return kiapi::common::types::Units::U_MM;
1659 default:
1660 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1661 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_UNITS>" );
1662 }
1663}
1664
1665
1666template<>
1667JOB_EXPORT_PCB_DRILL::DRILL_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1668{
1669 switch( aValue )
1670 {
1671 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_DRILL::DRILL_UNITS::INCH;
1672 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_DRILL::DRILL_UNITS::MM;
1673 case kiapi::common::types::Units::U_UNKNOWN:
1674 case kiapi::common::types::Units::U_METERS:
1675 case kiapi::common::types::Units::U_TENTHS:
1676 default:
1678 }
1679}
1680
1681
1682template<>
1684{
1685 switch( aValue )
1686 {
1687 case JOB_EXPORT_PCB_POS::SIDE::FRONT: return PositionSide::PS_FRONT;
1688 case JOB_EXPORT_PCB_POS::SIDE::BACK: return PositionSide::PS_BACK;
1689 case JOB_EXPORT_PCB_POS::SIDE::BOTH: return PositionSide::PS_BOTH;
1690 default:
1691 wxCHECK_MSG( false, PositionSide::PS_UNKNOWN,
1692 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::SIDE>" );
1693 }
1694}
1695
1696
1697template<>
1699{
1700 switch( aValue )
1701 {
1702 case PositionSide::PS_FRONT: return JOB_EXPORT_PCB_POS::SIDE::FRONT;
1703 case PositionSide::PS_BACK: return JOB_EXPORT_PCB_POS::SIDE::BACK;
1704 case PositionSide::PS_BOTH: return JOB_EXPORT_PCB_POS::SIDE::BOTH;
1705 case PositionSide::PS_UNKNOWN:
1706 default:
1708 }
1709}
1710
1711
1712template<>
1714{
1715 switch( aValue )
1716 {
1717 case JOB_EXPORT_PCB_POS::FORMAT::ASCII: return PositionFormat::PF_ASCII;
1718 case JOB_EXPORT_PCB_POS::FORMAT::CSV: return PositionFormat::PF_CSV;
1719 case JOB_EXPORT_PCB_POS::FORMAT::GERBER: return PositionFormat::PF_GERBER;
1720 default:
1721 wxCHECK_MSG( false, PositionFormat::PF_UNKNOWN,
1722 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::FORMAT>" );
1723 }
1724}
1725
1726
1727template<>
1729{
1730 switch( aValue )
1731 {
1732 case PositionFormat::PF_ASCII: return JOB_EXPORT_PCB_POS::FORMAT::ASCII;
1733 case PositionFormat::PF_CSV: return JOB_EXPORT_PCB_POS::FORMAT::CSV;
1734 case PositionFormat::PF_GERBER: return JOB_EXPORT_PCB_POS::FORMAT::GERBER;
1735 case PositionFormat::PF_UNKNOWN:
1736 default:
1738 }
1739}
1740
1741
1742template<>
1744{
1745 switch( aValue )
1746 {
1747 case JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::B: return Ipc2581Version::IPC2581V_B;
1748 case JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::C: return Ipc2581Version::IPC2581V_C;
1749 default:
1750 wxCHECK_MSG( false, Ipc2581Version::IPC2581V_UNKNOWN,
1751 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION>" );
1752 }
1753}
1754
1755
1756template<>
1758{
1759 switch( aValue )
1760 {
1761 case Ipc2581Version::IPC2581V_B: return JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::B;
1762 case Ipc2581Version::IPC2581V_C: return JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::C;
1763 case Ipc2581Version::IPC2581V_UNKNOWN:
1764 default:
1766 }
1767}
1768
1769
1770template<>
1772{
1773 switch( aValue )
1774 {
1775 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::NONE: return OdbCompression::ODBC_NONE;
1776 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::ZIP: return OdbCompression::ODBC_ZIP;
1777 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::TGZ: return OdbCompression::ODBC_TGZ;
1778 default:
1779 wxCHECK_MSG( false, OdbCompression::ODBC_UNKNOWN,
1780 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_ODB::ODB_COMPRESSION>" );
1781 }
1782}
1783
1784
1785template<>
1787{
1788 switch( aValue )
1789 {
1790 case OdbCompression::ODBC_NONE: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::NONE;
1791 case OdbCompression::ODBC_ZIP: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::ZIP;
1792 case OdbCompression::ODBC_TGZ: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::TGZ;
1793 case OdbCompression::ODBC_UNKNOWN:
1794 default:
1796 }
1797}
1798
1799
1800template<>
1802{
1803 switch( aValue )
1804 {
1805 case JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::REPORT: return StatsOutputFormat::SOF_REPORT;
1806 case JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::JSON: return StatsOutputFormat::SOF_JSON;
1807 default:
1808 wxCHECK_MSG( false, StatsOutputFormat::SOF_UNKNOWN,
1809 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT>" );
1810 }
1811}
1812
1813
1814template<>
1816{
1817 switch( aValue )
1818 {
1819 case StatsOutputFormat::SOF_REPORT: return JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::REPORT;
1820 case StatsOutputFormat::SOF_JSON: return JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::JSON;
1821 case StatsOutputFormat::SOF_UNKNOWN:
1822 default:
1824 }
1825}
1826
1827
1828template<>
1829kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_DXF::DXF_UNITS aValue )
1830{
1831 switch( aValue )
1832 {
1833 case JOB_EXPORT_PCB_DXF::DXF_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1834 case JOB_EXPORT_PCB_DXF::DXF_UNITS::MM: return kiapi::common::types::Units::U_MM;
1835 default:
1836 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1837 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DXF::DXF_UNITS>" );
1838 }
1839}
1840
1841
1842template<>
1843JOB_EXPORT_PCB_DXF::DXF_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1844{
1845 switch( aValue )
1846 {
1847 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_DXF::DXF_UNITS::INCH;
1848 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_DXF::DXF_UNITS::MM;
1849 case kiapi::common::types::Units::U_UNKNOWN:
1850 case kiapi::common::types::Units::U_METERS:
1851 case kiapi::common::types::Units::U_TENTHS:
1852 default:
1854 }
1855}
1856
1857
1858template<>
1859kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_POS::UNITS aValue )
1860{
1861 switch( aValue )
1862 {
1863 case JOB_EXPORT_PCB_POS::UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1864 case JOB_EXPORT_PCB_POS::UNITS::MM: return kiapi::common::types::Units::U_MM;
1865 default:
1866 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1867 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::UNITS>" );
1868 }
1869}
1870
1871
1872template<>
1873JOB_EXPORT_PCB_POS::UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1874{
1875 switch( aValue )
1876 {
1877 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_POS::UNITS::INCH;
1878 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_POS::UNITS::MM;
1879 case kiapi::common::types::Units::U_UNKNOWN:
1880 case kiapi::common::types::Units::U_METERS:
1881 case kiapi::common::types::Units::U_TENTHS:
1882 default:
1884 }
1885}
1886
1887
1888template<>
1889kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS aValue )
1890{
1891 switch( aValue )
1892 {
1893 case JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1894 case JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::MM: return kiapi::common::types::Units::U_MM;
1895 default:
1896 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1897 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS>" );
1898 }
1899}
1900
1901
1902template<>
1903JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1904{
1905 switch( aValue )
1906 {
1907 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::INCH;
1908 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::MM;
1909 case kiapi::common::types::Units::U_UNKNOWN:
1910 case kiapi::common::types::Units::U_METERS:
1911 case kiapi::common::types::Units::U_TENTHS:
1912 default:
1914 }
1915}
1916
1917
1918template<>
1919kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_ODB::ODB_UNITS aValue )
1920{
1921 switch( aValue )
1922 {
1923 case JOB_EXPORT_PCB_ODB::ODB_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1924 case JOB_EXPORT_PCB_ODB::ODB_UNITS::MM: return kiapi::common::types::Units::U_MM;
1925 default:
1926 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1927 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_ODB::ODB_UNITS>" );
1928 }
1929}
1930
1931
1932template<>
1933JOB_EXPORT_PCB_ODB::ODB_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1934{
1935 switch( aValue )
1936 {
1937 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_ODB::ODB_UNITS::INCH;
1938 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_ODB::ODB_UNITS::MM;
1939 case kiapi::common::types::Units::U_UNKNOWN:
1940 case kiapi::common::types::Units::U_METERS:
1941 case kiapi::common::types::Units::U_TENTHS:
1942 default:
1944 }
1945}
1946
1947
1948template<>
1949kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_STATS::UNITS aValue )
1950{
1951 switch( aValue )
1952 {
1953 case JOB_EXPORT_PCB_STATS::UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1954 case JOB_EXPORT_PCB_STATS::UNITS::MM: return kiapi::common::types::Units::U_MM;
1955 default:
1956 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1957 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_STATS::UNITS>" );
1958 }
1959}
1960
1961
1962template<>
1963JOB_EXPORT_PCB_STATS::UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1964{
1965 switch( aValue )
1966 {
1967 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_STATS::UNITS::INCH;
1968 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_STATS::UNITS::MM;
1969 case kiapi::common::types::Units::U_UNKNOWN:
1970 case kiapi::common::types::Units::U_METERS:
1971 case kiapi::common::types::Units::U_TENTHS:
1972 default:
1974 }
1975}
1976
1977
1978template<>
1979DrcErrorType ToProtoEnum( PCB_DRC_CODE aValue )
1980{
1981 switch( aValue )
1982 {
1983 case DRCE_UNCONNECTED_ITEMS: return DrcErrorType::DRCET_UNCONNECTED_ITEMS;
1984 case DRCE_SHORTING_ITEMS: return DrcErrorType::DRCET_SHORTING_ITEMS;
1985 case DRCE_ALLOWED_ITEMS: return DrcErrorType::DRCET_ALLOWED_ITEMS;
1986 case DRCE_TEXT_ON_EDGECUTS: return DrcErrorType::DRCET_TEXT_ON_EDGECUTS;
1987 case DRCE_CLEARANCE: return DrcErrorType::DRCET_CLEARANCE;
1988 case DRCE_CREEPAGE: return DrcErrorType::DRCET_CREEPAGE;
1989 case DRCE_TRACKS_CROSSING: return DrcErrorType::DRCET_TRACKS_CROSSING;
1990 case DRCE_EDGE_CLEARANCE: return DrcErrorType::DRCET_EDGE_CLEARANCE;
1991 case DRCE_ZONES_INTERSECT: return DrcErrorType::DRCET_ZONES_INTERSECT;
1992 case DRCE_ISOLATED_COPPER: return DrcErrorType::DRCET_ISOLATED_COPPER;
1993 case DRCE_STARVED_THERMAL: return DrcErrorType::DRCET_STARVED_THERMAL;
1994 case DRCE_DANGLING_VIA: return DrcErrorType::DRCET_DANGLING_VIA;
1995 case DRCE_DANGLING_TRACK: return DrcErrorType::DRCET_DANGLING_TRACK;
1996 case DRCE_DRILLED_HOLES_TOO_CLOSE: return DrcErrorType::DRCET_DRILLED_HOLES_TOO_CLOSE;
1997 case DRCE_DRILLED_HOLES_COLOCATED: return DrcErrorType::DRCET_DRILLED_HOLES_COLOCATED;
1998 case DRCE_HOLE_CLEARANCE: return DrcErrorType::DRCET_HOLE_CLEARANCE;
1999 case DRCE_CONNECTION_WIDTH: return DrcErrorType::DRCET_CONNECTION_WIDTH;
2000 case DRCE_TRACK_WIDTH: return DrcErrorType::DRCET_TRACK_WIDTH;
2001 case DRCE_TRACK_ANGLE: return DrcErrorType::DRCET_TRACK_ANGLE;
2002 case DRCE_TRACK_SEGMENT_LENGTH: return DrcErrorType::DRCET_TRACK_SEGMENT_LENGTH;
2003 case DRCE_ANNULAR_WIDTH: return DrcErrorType::DRCET_ANNULAR_WIDTH;
2004 case DRCE_DRILL_OUT_OF_RANGE: return DrcErrorType::DRCET_DRILL_OUT_OF_RANGE;
2005 case DRCE_VIA_DIAMETER: return DrcErrorType::DRCET_VIA_DIAMETER;
2006 case DRCE_PADSTACK: return DrcErrorType::DRCET_PADSTACK;
2007 case DRCE_PADSTACK_INVALID: return DrcErrorType::DRCET_PADSTACK_INVALID;
2008 case DRCE_MICROVIA_DRILL_OUT_OF_RANGE: return DrcErrorType::DRCET_MICROVIA_DRILL_OUT_OF_RANGE;
2009 case DRCE_OVERLAPPING_FOOTPRINTS: return DrcErrorType::DRCET_OVERLAPPING_FOOTPRINTS;
2010 case DRCE_MISSING_COURTYARD: return DrcErrorType::DRCET_MISSING_COURTYARD;
2011 case DRCE_MALFORMED_COURTYARD: return DrcErrorType::DRCET_MALFORMED_COURTYARD;
2012 case DRCE_PTH_IN_COURTYARD: return DrcErrorType::DRCET_PTH_IN_COURTYARD;
2013 case DRCE_NPTH_IN_COURTYARD: return DrcErrorType::DRCET_NPTH_IN_COURTYARD;
2014 case DRCE_DISABLED_LAYER_ITEM: return DrcErrorType::DRCET_DISABLED_LAYER_ITEM;
2015 case DRCE_INVALID_OUTLINE: return DrcErrorType::DRCET_INVALID_OUTLINE;
2016 case DRCE_MISSING_FOOTPRINT: return DrcErrorType::DRCET_MISSING_FOOTPRINT;
2017 case DRCE_DUPLICATE_FOOTPRINT: return DrcErrorType::DRCET_DUPLICATE_FOOTPRINT;
2018 case DRCE_NET_CONFLICT: return DrcErrorType::DRCET_NET_CONFLICT;
2019 case DRCE_EXTRA_FOOTPRINT: return DrcErrorType::DRCET_EXTRA_FOOTPRINT;
2020 case DRCE_SCHEMATIC_PARITY: return DrcErrorType::DRCET_SCHEMATIC_PARITY;
2021 case DRCE_SCHEMATIC_FIELDS_PARITY: return DrcErrorType::DRCET_SCHEMATIC_FIELDS_PARITY;
2022 case DRCE_FOOTPRINT_FILTERS: return DrcErrorType::DRCET_FOOTPRINT_FILTERS;
2023 case DRCE_LIB_FOOTPRINT_ISSUES: return DrcErrorType::DRCET_LIB_FOOTPRINT_ISSUES;
2024 case DRCE_LIB_FOOTPRINT_MISMATCH: return DrcErrorType::DRCET_LIB_FOOTPRINT_MISMATCH;
2025 case DRCE_UNRESOLVED_VARIABLE: return DrcErrorType::DRCET_UNRESOLVED_VARIABLE;
2026 case DRCE_ASSERTION_FAILURE: return DrcErrorType::DRCET_ASSERTION_FAILURE;
2027 case DRCE_GENERIC_WARNING: return DrcErrorType::DRCET_GENERIC_WARNING;
2028 case DRCE_GENERIC_ERROR: return DrcErrorType::DRCET_GENERIC_ERROR;
2029 case DRCE_COPPER_SLIVER: return DrcErrorType::DRCET_COPPER_SLIVER;
2030 case DRCE_SILK_CLEARANCE: return DrcErrorType::DRCET_SILK_CLEARANCE;
2031 case DRCE_SILK_MASK_CLEARANCE: return DrcErrorType::DRCET_SILK_MASK_CLEARANCE;
2032 case DRCE_SILK_EDGE_CLEARANCE: return DrcErrorType::DRCET_SILK_EDGE_CLEARANCE;
2033 case DRCE_SOLDERMASK_BRIDGE: return DrcErrorType::DRCET_SOLDERMASK_BRIDGE;
2034 case DRCE_TEXT_HEIGHT: return DrcErrorType::DRCET_TEXT_HEIGHT;
2035 case DRCE_TEXT_THICKNESS: return DrcErrorType::DRCET_TEXT_THICKNESS;
2036 case DRCE_LENGTH_OUT_OF_RANGE: return DrcErrorType::DRCET_LENGTH_OUT_OF_RANGE;
2037 case DRCE_SKEW_OUT_OF_RANGE: return DrcErrorType::DRCET_SKEW_OUT_OF_RANGE;
2038 case DRCE_VIA_COUNT_OUT_OF_RANGE: return DrcErrorType::DRCET_VIA_COUNT_OUT_OF_RANGE;
2039 case DRCE_DIFF_PAIR_GAP_OUT_OF_RANGE: return DrcErrorType::DRCET_DIFF_PAIR_GAP_OUT_OF_RANGE;
2040 case DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG: return DrcErrorType::DRCET_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG;
2041 case DRCE_FOOTPRINT: return DrcErrorType::DRCET_FOOTPRINT;
2042 case DRCE_FOOTPRINT_TYPE_MISMATCH: return DrcErrorType::DRCET_FOOTPRINT_TYPE_MISMATCH;
2043 case DRCE_PAD_TH_WITH_NO_HOLE: return DrcErrorType::DRCET_PAD_TH_WITH_NO_HOLE;
2044 case DRCE_MIRRORED_TEXT_ON_FRONT_LAYER: return DrcErrorType::DRCET_MIRRORED_TEXT_ON_FRONT_LAYER;
2045 case DRCE_NONMIRRORED_TEXT_ON_BACK_LAYER: return DrcErrorType::DRCET_NONMIRRORED_TEXT_ON_BACK_LAYER;
2046 case DRCE_MISSING_TUNING_PROFILE: return DrcErrorType::DRCET_MISSING_TUNING_PROFILE;
2047 case DRCE_TUNING_PROFILE_IMPLICIT_RULES: return DrcErrorType::DRCET_TUNING_PROFILE_IMPLICIT_RULES;
2048 case DRCE_TRACK_ON_POST_MACHINED_LAYER: return DrcErrorType::DRCET_TRACK_ON_POST_MACHINED_LAYER;
2049 case DRCE_TRACK_NOT_CENTERED_ON_VIA: return DrcErrorType::DRCET_TRACK_NOT_CENTERED_ON_VIA;
2050 default:
2051 wxCHECK_MSG( false, DrcErrorType::DRCET_UNKNOWN,
2052 "Unhandled case in ToProtoEnum<PCB_DRC_CODE>" );
2053 }
2054}
2055
2056
2057template<>
2058PCB_DRC_CODE FromProtoEnum( DrcErrorType aValue )
2059{
2060 switch( aValue )
2061 {
2062 case DrcErrorType::DRCET_UNCONNECTED_ITEMS: return DRCE_UNCONNECTED_ITEMS;
2063 case DrcErrorType::DRCET_SHORTING_ITEMS: return DRCE_SHORTING_ITEMS;
2064 case DrcErrorType::DRCET_ALLOWED_ITEMS: return DRCE_ALLOWED_ITEMS;
2065 case DrcErrorType::DRCET_TEXT_ON_EDGECUTS: return DRCE_TEXT_ON_EDGECUTS;
2066 case DrcErrorType::DRCET_CLEARANCE: return DRCE_CLEARANCE;
2067 case DrcErrorType::DRCET_CREEPAGE: return DRCE_CREEPAGE;
2068 case DrcErrorType::DRCET_TRACKS_CROSSING: return DRCE_TRACKS_CROSSING;
2069 case DrcErrorType::DRCET_EDGE_CLEARANCE: return DRCE_EDGE_CLEARANCE;
2070 case DrcErrorType::DRCET_ZONES_INTERSECT: return DRCE_ZONES_INTERSECT;
2071 case DrcErrorType::DRCET_ISOLATED_COPPER: return DRCE_ISOLATED_COPPER;
2072 case DrcErrorType::DRCET_STARVED_THERMAL: return DRCE_STARVED_THERMAL;
2073 case DrcErrorType::DRCET_DANGLING_VIA: return DRCE_DANGLING_VIA;
2074 case DrcErrorType::DRCET_DANGLING_TRACK: return DRCE_DANGLING_TRACK;
2075 case DrcErrorType::DRCET_DRILLED_HOLES_TOO_CLOSE: return DRCE_DRILLED_HOLES_TOO_CLOSE;
2076 case DrcErrorType::DRCET_DRILLED_HOLES_COLOCATED: return DRCE_DRILLED_HOLES_COLOCATED;
2077 case DrcErrorType::DRCET_HOLE_CLEARANCE: return DRCE_HOLE_CLEARANCE;
2078 case DrcErrorType::DRCET_CONNECTION_WIDTH: return DRCE_CONNECTION_WIDTH;
2079 case DrcErrorType::DRCET_TRACK_WIDTH: return DRCE_TRACK_WIDTH;
2080 case DrcErrorType::DRCET_TRACK_ANGLE: return DRCE_TRACK_ANGLE;
2081 case DrcErrorType::DRCET_TRACK_SEGMENT_LENGTH: return DRCE_TRACK_SEGMENT_LENGTH;
2082 case DrcErrorType::DRCET_ANNULAR_WIDTH: return DRCE_ANNULAR_WIDTH;
2083 case DrcErrorType::DRCET_DRILL_OUT_OF_RANGE: return DRCE_DRILL_OUT_OF_RANGE;
2084 case DrcErrorType::DRCET_VIA_DIAMETER: return DRCE_VIA_DIAMETER;
2085 case DrcErrorType::DRCET_PADSTACK: return DRCE_PADSTACK;
2086 case DrcErrorType::DRCET_PADSTACK_INVALID: return DRCE_PADSTACK_INVALID;
2087 case DrcErrorType::DRCET_MICROVIA_DRILL_OUT_OF_RANGE: return DRCE_MICROVIA_DRILL_OUT_OF_RANGE;
2088 case DrcErrorType::DRCET_OVERLAPPING_FOOTPRINTS: return DRCE_OVERLAPPING_FOOTPRINTS;
2089 case DrcErrorType::DRCET_MISSING_COURTYARD: return DRCE_MISSING_COURTYARD;
2090 case DrcErrorType::DRCET_MALFORMED_COURTYARD: return DRCE_MALFORMED_COURTYARD;
2091 case DrcErrorType::DRCET_PTH_IN_COURTYARD: return DRCE_PTH_IN_COURTYARD;
2092 case DrcErrorType::DRCET_NPTH_IN_COURTYARD: return DRCE_NPTH_IN_COURTYARD;
2093 case DrcErrorType::DRCET_DISABLED_LAYER_ITEM: return DRCE_DISABLED_LAYER_ITEM;
2094 case DrcErrorType::DRCET_INVALID_OUTLINE: return DRCE_INVALID_OUTLINE;
2095 case DrcErrorType::DRCET_MISSING_FOOTPRINT: return DRCE_MISSING_FOOTPRINT;
2096 case DrcErrorType::DRCET_DUPLICATE_FOOTPRINT: return DRCE_DUPLICATE_FOOTPRINT;
2097 case DrcErrorType::DRCET_NET_CONFLICT: return DRCE_NET_CONFLICT;
2098 case DrcErrorType::DRCET_EXTRA_FOOTPRINT: return DRCE_EXTRA_FOOTPRINT;
2099 case DrcErrorType::DRCET_SCHEMATIC_PARITY: return DRCE_SCHEMATIC_PARITY;
2100 case DrcErrorType::DRCET_SCHEMATIC_FIELDS_PARITY: return DRCE_SCHEMATIC_FIELDS_PARITY;
2101 case DrcErrorType::DRCET_FOOTPRINT_FILTERS: return DRCE_FOOTPRINT_FILTERS;
2102 case DrcErrorType::DRCET_LIB_FOOTPRINT_ISSUES: return DRCE_LIB_FOOTPRINT_ISSUES;
2103 case DrcErrorType::DRCET_LIB_FOOTPRINT_MISMATCH: return DRCE_LIB_FOOTPRINT_MISMATCH;
2104 case DrcErrorType::DRCET_UNRESOLVED_VARIABLE: return DRCE_UNRESOLVED_VARIABLE;
2105 case DrcErrorType::DRCET_ASSERTION_FAILURE: return DRCE_ASSERTION_FAILURE;
2106 case DrcErrorType::DRCET_GENERIC_WARNING: return DRCE_GENERIC_WARNING;
2107 case DrcErrorType::DRCET_GENERIC_ERROR: return DRCE_GENERIC_ERROR;
2108 case DrcErrorType::DRCET_COPPER_SLIVER: return DRCE_COPPER_SLIVER;
2109 case DrcErrorType::DRCET_SILK_CLEARANCE: return DRCE_SILK_CLEARANCE;
2110 case DrcErrorType::DRCET_SILK_MASK_CLEARANCE: return DRCE_SILK_MASK_CLEARANCE;
2111 case DrcErrorType::DRCET_SILK_EDGE_CLEARANCE: return DRCE_SILK_EDGE_CLEARANCE;
2112 case DrcErrorType::DRCET_SOLDERMASK_BRIDGE: return DRCE_SOLDERMASK_BRIDGE;
2113 case DrcErrorType::DRCET_TEXT_HEIGHT: return DRCE_TEXT_HEIGHT;
2114 case DrcErrorType::DRCET_TEXT_THICKNESS: return DRCE_TEXT_THICKNESS;
2115 case DrcErrorType::DRCET_LENGTH_OUT_OF_RANGE: return DRCE_LENGTH_OUT_OF_RANGE;
2116 case DrcErrorType::DRCET_SKEW_OUT_OF_RANGE: return DRCE_SKEW_OUT_OF_RANGE;
2117 case DrcErrorType::DRCET_VIA_COUNT_OUT_OF_RANGE: return DRCE_VIA_COUNT_OUT_OF_RANGE;
2118 case DrcErrorType::DRCET_DIFF_PAIR_GAP_OUT_OF_RANGE: return DRCE_DIFF_PAIR_GAP_OUT_OF_RANGE;
2119 case DrcErrorType::DRCET_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG: return DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG;
2120 case DrcErrorType::DRCET_FOOTPRINT: return DRCE_FOOTPRINT;
2121 case DrcErrorType::DRCET_FOOTPRINT_TYPE_MISMATCH: return DRCE_FOOTPRINT_TYPE_MISMATCH;
2122 case DrcErrorType::DRCET_PAD_TH_WITH_NO_HOLE: return DRCE_PAD_TH_WITH_NO_HOLE;
2123 case DrcErrorType::DRCET_MIRRORED_TEXT_ON_FRONT_LAYER: return DRCE_MIRRORED_TEXT_ON_FRONT_LAYER;
2124 case DrcErrorType::DRCET_NONMIRRORED_TEXT_ON_BACK_LAYER: return DRCE_NONMIRRORED_TEXT_ON_BACK_LAYER;
2125 case DrcErrorType::DRCET_MISSING_TUNING_PROFILE: return DRCE_MISSING_TUNING_PROFILE;
2126 case DrcErrorType::DRCET_TUNING_PROFILE_IMPLICIT_RULES: return DRCE_TUNING_PROFILE_IMPLICIT_RULES;
2127 case DrcErrorType::DRCET_TRACK_ON_POST_MACHINED_LAYER: return DRCE_TRACK_ON_POST_MACHINED_LAYER;
2128 case DrcErrorType::DRCET_TRACK_NOT_CENTERED_ON_VIA: return DRCE_TRACK_NOT_CENTERED_ON_VIA;
2129
2130 case DrcErrorType::DRCET_UNKNOWN:
2131 default:
2132 return static_cast<PCB_DRC_CODE>( 0 );
2133 }
2134}
2135
2136
2137// Adding something new here? Add it to test_api_enums.cpp!
types::PadType ToProtoEnum(PAD_ATTRIB aValue)
PAD_ATTRIB FromProtoEnum(types::PadType aValue)
HIGH_CONTRAST_MODE
Determine how inactive layers should be displayed.
@ NORMAL
Inactive layers are shown normally (no high-contrast mode)
@ HIDDEN
Inactive layers are hidden.
@ DIMMED
Inactive layers are dimmed (old high-contrast mode)
@ RATSNEST
Net/netclass colors are shown on ratsnest lines only.
@ ALL
Net/netclass colors are shown on all net copper.
@ OFF
Net (and netclass) colors are not shown.
@ VISIBLE
Ratsnest lines are drawn to items on visible layers only.
@ ALL
Ratsnest lines are drawn to items on all layers (default)
BOARD_STACKUP_ITEM_TYPE
@ BS_ITEM_TYPE_UNDEFINED
@ BS_ITEM_TYPE_COPPER
@ BS_ITEM_TYPE_SILKSCREEN
@ BS_ITEM_TYPE_DIELECTRIC
@ BS_ITEM_TYPE_SOLDERPASTE
@ BS_ITEM_TYPE_SOLDERMASK
@ ALL_LAYERS_ONE_FILE
DEPRECATED MODE.
@ ONE_PAGE_PER_LAYER_ONE_FILE
The most traditional output mode KiCad has had.
MODE
! Copper geometry mode: controls how many unique copper layer shapes this padstack has
Definition padstack.h:170
@ NORMAL
Shape is the same on all layers.
Definition padstack.h:171
@ CUSTOM
Shapes can be defined on arbitrary layers.
Definition padstack.h:173
@ FRONT_INNER_BACK
Up to three shapes can be defined (F_Cu, inner copper layers, B_Cu)
Definition padstack.h:172
PCB_DRC_CODE
Definition drc_item.h:38
@ DRCE_DISABLED_LAYER_ITEM
Definition drc_item.h:72
@ DRCE_SKEW_OUT_OF_RANGE
Definition drc_item.h:107
@ DRCE_DIFF_PAIR_GAP_OUT_OF_RANGE
Definition drc_item.h:109
@ DRCE_CREEPAGE
Definition drc_item.h:45
@ DRCE_TUNING_PROFILE_IMPLICIT_RULES
Definition drc_item.h:116
@ DRCE_HOLE_CLEARANCE
Definition drc_item.h:55
@ DRCE_SILK_EDGE_CLEARANCE
Definition drc_item.h:99
@ DRCE_ZONES_INTERSECT
Definition drc_item.h:48
@ DRCE_FOOTPRINT_FILTERS
Definition drc_item.h:80
@ DRCE_SILK_MASK_CLEARANCE
Definition drc_item.h:97
@ DRCE_VIA_DIAMETER
Definition drc_item.h:62
@ DRCE_UNCONNECTED_ITEMS
Definition drc_item.h:40
@ DRCE_TRACK_WIDTH
Definition drc_item.h:56
@ DRCE_PADSTACK
Definition drc_item.h:63
@ DRCE_MIRRORED_TEXT_ON_FRONT_LAYER
Definition drc_item.h:112
@ DRCE_LIB_FOOTPRINT_ISSUES
Definition drc_item.h:83
@ DRCE_OVERLAPPING_FOOTPRINTS
Definition drc_item.h:66
@ DRCE_INVALID_OUTLINE
Definition drc_item.h:73
@ DRCE_TRACK_ON_POST_MACHINED_LAYER
Definition drc_item.h:118
@ DRCE_TEXT_ON_EDGECUTS
Definition drc_item.h:43
@ DRCE_DRILL_OUT_OF_RANGE
Definition drc_item.h:61
@ DRCE_EDGE_CLEARANCE
Definition drc_item.h:47
@ DRCE_STARVED_THERMAL
Definition drc_item.h:50
@ DRCE_TRACK_SEGMENT_LENGTH
Definition drc_item.h:58
@ DRCE_SCHEMATIC_FIELDS_PARITY
Definition drc_item.h:122
@ DRCE_MISSING_COURTYARD
Definition drc_item.h:67
@ DRCE_TRACK_ANGLE
Definition drc_item.h:57
@ DRCE_TRACK_NOT_CENTERED_ON_VIA
Definition drc_item.h:120
@ DRCE_CLEARANCE
Definition drc_item.h:44
@ DRCE_ISOLATED_COPPER
Definition drc_item.h:49
@ DRCE_GENERIC_ERROR
Definition drc_item.h:91
@ DRCE_MISSING_TUNING_PROFILE
Definition drc_item.h:115
@ DRCE_DRILLED_HOLES_TOO_CLOSE
Definition drc_item.h:53
@ DRCE_ALLOWED_ITEMS
Definition drc_item.h:42
@ DRCE_COPPER_SLIVER
Definition drc_item.h:93
@ DRCE_PTH_IN_COURTYARD
Definition drc_item.h:70
@ DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG
Definition drc_item.h:110
@ DRCE_MICROVIA_DRILL_OUT_OF_RANGE
Definition drc_item.h:65
@ DRCE_SHORTING_ITEMS
Definition drc_item.h:41
@ DRCE_MALFORMED_COURTYARD
Definition drc_item.h:68
@ DRCE_DANGLING_VIA
Definition drc_item.h:51
@ DRCE_PADSTACK_INVALID
Definition drc_item.h:64
@ DRCE_UNRESOLVED_VARIABLE
Definition drc_item.h:88
@ DRCE_FOOTPRINT_TYPE_MISMATCH
Definition drc_item.h:82
@ DRCE_NONMIRRORED_TEXT_ON_BACK_LAYER
Definition drc_item.h:113
@ DRCE_DUPLICATE_FOOTPRINT
Definition drc_item.h:76
@ DRCE_DANGLING_TRACK
Definition drc_item.h:52
@ DRCE_TEXT_HEIGHT
Definition drc_item.h:101
@ DRCE_ASSERTION_FAILURE
Definition drc_item.h:89
@ DRCE_SOLDERMASK_BRIDGE
Definition drc_item.h:94
@ DRCE_DRILLED_HOLES_COLOCATED
Definition drc_item.h:54
@ DRCE_EXTRA_FOOTPRINT
Definition drc_item.h:77
@ DRCE_SILK_CLEARANCE
Definition drc_item.h:100
@ DRCE_LENGTH_OUT_OF_RANGE
Definition drc_item.h:104
@ DRCE_LIB_FOOTPRINT_MISMATCH
Definition drc_item.h:84
@ DRCE_NET_CONFLICT
Definition drc_item.h:78
@ DRCE_MISSING_FOOTPRINT
Definition drc_item.h:75
@ DRCE_PAD_TH_WITH_NO_HOLE
Definition drc_item.h:85
@ DRCE_FOOTPRINT
Definition drc_item.h:86
@ DRCE_GENERIC_WARNING
Definition drc_item.h:90
@ DRCE_TEXT_THICKNESS
Definition drc_item.h:102
@ DRCE_NPTH_IN_COURTYARD
Definition drc_item.h:71
@ DRCE_CONNECTION_WIDTH
Definition drc_item.h:60
@ DRCE_SCHEMATIC_PARITY
Definition drc_item.h:79
@ DRCE_TRACKS_CROSSING
Definition drc_item.h:46
@ DRCE_VIA_COUNT_OUT_OF_RANGE
Definition drc_item.h:108
@ DRCE_ANNULAR_WIDTH
Definition drc_item.h:59
DRC_DISALLOW_T
Definition drc_rule.h:98
@ DRC_DISALLOW_PADS
Definition drc_rule.h:104
@ DRC_DISALLOW_BURIED_VIAS
Definition drc_rule.h:102
@ DRC_DISALLOW_BLIND_VIAS
Definition drc_rule.h:101
@ DRC_DISALLOW_TEXTS
Definition drc_rule.h:106
@ DRC_DISALLOW_ZONES
Definition drc_rule.h:105
@ DRC_DISALLOW_HOLES
Definition drc_rule.h:108
@ DRC_DISALLOW_GRAPHICS
Definition drc_rule.h:107
@ DRC_DISALLOW_THROUGH_VIAS
Definition drc_rule.h:99
@ DRC_DISALLOW_FOOTPRINTS
Definition drc_rule.h:109
@ DRC_DISALLOW_TRACKS
Definition drc_rule.h:103
@ DRC_DISALLOW_MICRO_VIAS
Definition drc_rule.h:100
DRC_CONSTRAINT_T
Definition drc_rule.h:53
@ ANNULAR_WIDTH_CONSTRAINT
Definition drc_rule.h:67
@ BRIDGED_MASK_CONSTRAINT
Definition drc_rule.h:92
@ COURTYARD_CLEARANCE_CONSTRAINT
Definition drc_rule.h:61
@ VIA_DIAMETER_CONSTRAINT
Definition drc_rule.h:76
@ ZONE_CONNECTION_CONSTRAINT
Definition drc_rule.h:68
@ DIFF_PAIR_GAP_CONSTRAINT
Definition drc_rule.h:82
@ NET_CHAIN_LENGTH_CONSTRAINT
Definition drc_rule.h:78
@ VIA_DANGLING_CONSTRAINT
Definition drc_rule.h:91
@ SOLDER_MASK_SLIVER_CONSTRAINT
Definition drc_rule.h:93
@ NET_CHAIN_STUB_LENGTH_CONSTRAINT
Definition drc_rule.h:79
@ DISALLOW_CONSTRAINT
Definition drc_rule.h:75
@ TRACK_WIDTH_CONSTRAINT
Definition drc_rule.h:65
@ SILK_CLEARANCE_CONSTRAINT
Definition drc_rule.h:62
@ EDGE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:59
@ MIN_RESOLVED_SPOKES_CONSTRAINT
Definition drc_rule.h:71
@ TRACK_SEGMENT_LENGTH_CONSTRAINT
Definition drc_rule.h:66
@ TEXT_THICKNESS_CONSTRAINT
Definition drc_rule.h:64
@ LENGTH_CONSTRAINT
Definition drc_rule.h:77
@ VIA_COUNT_CONSTRAINT
Definition drc_rule.h:85
@ NET_CHAIN_RETURN_PATH_CONSTRAINT
Definition drc_rule.h:80
@ PHYSICAL_HOLE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:87
@ CLEARANCE_CONSTRAINT
Definition drc_rule.h:55
@ NULL_CONSTRAINT
Definition drc_rule.h:54
@ THERMAL_SPOKE_WIDTH_CONSTRAINT
Definition drc_rule.h:70
@ CONNECTION_WIDTH_CONSTRAINT
Definition drc_rule.h:89
@ THERMAL_RELIEF_GAP_CONSTRAINT
Definition drc_rule.h:69
@ MAX_UNCOUPLED_CONSTRAINT
Definition drc_rule.h:83
@ ASSERTION_CONSTRAINT
Definition drc_rule.h:88
@ SKEW_CONSTRAINT
Definition drc_rule.h:81
@ HOLE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:57
@ SOLDER_PASTE_ABS_MARGIN_CONSTRAINT
Definition drc_rule.h:73
@ SOLDER_MASK_EXPANSION_CONSTRAINT
Definition drc_rule.h:72
@ TRACK_ANGLE_CONSTRAINT
Definition drc_rule.h:90
@ HOLE_SIZE_CONSTRAINT
Definition drc_rule.h:60
@ TEXT_HEIGHT_CONSTRAINT
Definition drc_rule.h:63
@ CREEPAGE_CONSTRAINT
Definition drc_rule.h:56
@ DIFF_PAIR_INTRA_SKEW_CONSTRAINT
Definition drc_rule.h:84
@ PHYSICAL_CLEARANCE_CONSTRAINT
Definition drc_rule.h:86
@ SOLDER_PASTE_REL_MARGIN_CONSTRAINT
Definition drc_rule.h:74
@ HOLE_TO_HOLE_CONSTRAINT
Definition drc_rule.h:58
PAD_DRILL_SHAPE
The set of pad drill shapes, used with PAD::{Set,Get}DrillShape()
Definition padstack.h:69
PAD_ATTRIB
The set of pad shapes, used with PAD::{Set,Get}Attribute().
Definition padstack.h:97
@ NPTH
like PAD_PTH, but not plated mechanical use only, no connection allowed
Definition padstack.h:103
@ SMD
Smd pad, appears on the solder paste layer (default)
Definition padstack.h:99
@ PTH
Plated through hole pad.
Definition padstack.h:98
@ CONN
Like smd, does not appear on the solder paste layer (default) Note: also has a special attribute in G...
Definition padstack.h:100
PAD_SHAPE
The set of pad shapes, used with PAD::{Set,Get}Shape()
Definition padstack.h:52
@ CHAMFERED_RECT
Definition padstack.h:60
@ ROUNDRECT
Definition padstack.h:57
@ TRAPEZOID
Definition padstack.h:56
@ RECTANGLE
Definition padstack.h:54
UNCONNECTED_LAYER_MODE
Definition padstack.h:128
DIM_TEXT_POSITION
Where to place the text on a dimension.
@ OUTSIDE
Text appears outside the dimension line (default)
@ MANUAL
Text placement is manually set by the user.
@ INLINE
Text appears in line with the dimension line.
DIM_UNITS_FORMAT
How to display the units in a dimension's text.
DIM_UNITS_MODE
Used for storing the units selection in the file because EDA_UNITS alone doesn't cut it.
DIM_ARROW_DIRECTION
Used for dimension's arrow.
DIM_TEXT_BORDER
Frame to show around dimension text.
DIM_PRECISION
VIATYPE
DRILL_MARKS
Plots and prints can show holes in pads and vias 3 options are available:
SEVERITY
@ RPT_SEVERITY_WARNING
@ RPT_SEVERITY_ERROR
@ RPT_SEVERITY_UNDEFINED
@ RPT_SEVERITY_EXCLUSION
@ RPT_SEVERITY_IGNORE
@ RPT_SEVERITY_DEBUG
@ RPT_SEVERITY_INFO
@ RPT_SEVERITY_ACTION
@ TARGET_UNKNOWN
@ TARGET_ROUND
@ TARGET_RECT
@ TARGET_TRACK
TEARDROP_TYPE
define the type of a teardrop: on a via or pad, or a track end
Class ZONE_SETTINGS used to handle zones parameters in dialogs.
THIEVING_PATTERN
Shape stamped onto the grid for a copper-thieving fill.
ISLAND_REMOVAL_MODE
Whether or not to remove isolated islands from a zone.
ZONE_FILL_MODE
ZONE_BORDER_DISPLAY_STYLE
Zone border styles.
PLACEMENT_SOURCE_T
ZONE_CONNECTION
How pads are covered by copper in zone.
Definition zones.h:47
@ THERMAL
Use thermal relief for pads.
Definition zones.h:50
@ THT_THERMAL
Thermal relief only for THT pads.
Definition zones.h:52
@ NONE
Pads are not covered.
Definition zones.h:49
@ FULL
pads are covered by copper
Definition zones.h:51