KiCad PCB EDA Suite
Loading...
Searching...
No Matches
drc_rules_release_vocabulary.h
Go to the documentation of this file.
1// Generated by tools/generate_drc_rules_vocabulary.py from the release tags. Do not edit it
2// by hand. It is committed because generating it needs every release tag, which a source
3// archive or a shallow clone does not have. Rerun the script and commit the result when a
4// release becomes a downgrade target.
5
6#ifndef DRC_RULES_RELEASE_VOCABULARY_H
7#define DRC_RULES_RELEASE_VOCABULARY_H
8
9#include <cstddef>
10#include <iterator>
11
12// clang-format off
13
17{
18 const char* m_targetId;
19 const char* const* m_tokens;
21 const char* const* m_functions;
23 const char* const* m_properties;
25 const char* const* m_units;
28};
29
30// KiCad 9.0, the words every release from 9.0.0 to 9.0.9.1 reads.
31inline constexpr const char* const KICAD9_0_DRC_RULE_TOKENS[] = {
32 "annular_width",
33 "assertion",
34 "board_edge",
35 "buried_via",
36 "clearance",
37 "condition",
38 "connection_width",
39 "constraint",
40 "courtyard_clearance",
41 "creepage",
42 "diff_pair_gap",
43 "diff_pair_uncoupled",
44 "disallow",
45 "edge_clearance",
46 "error",
47 "exclusion",
48 "footprint",
49 "graphic",
50 "hole",
51 "hole_clearance",
52 "hole_size",
53 "hole_to_hole",
54 "ignore",
55 "inner",
56 "layer",
57 "length",
58 "max",
59 "mechanical_clearance",
60 "mechanical_hole_clearance",
61 "micro_via",
62 "min",
63 "min_resolved_spokes",
64 "none",
65 "npth",
66 "opt",
67 "outer",
68 "pad",
69 "physical_clearance",
70 "physical_hole_clearance",
71 "pth",
72 "rule",
73 "severity",
74 "silk_clearance",
75 "skew",
76 "solid",
77 "text",
78 "text_height",
79 "text_thickness",
80 "thermal_relief_gap",
81 "thermal_reliefs",
82 "thermal_spoke_width",
83 "track",
84 "track_angle",
85 "track_segment_length",
86 "track_width",
87 "version",
88 "via",
89 "via_count",
90 "via_diameter",
91 "warning",
92 "within_diff_pairs",
93 "zone",
94 "zone_connection",
95};
96
97inline constexpr const char* const KICAD9_0_DRC_RULE_FUNCTIONS[] = {
98 "enclosedbyarea",
99 "existsonlayer",
100 "fromto",
101 "getfield",
102 "hascomponentclass",
103 "hasnetclass",
104 "indiffpair",
105 "insidearea",
106 "insidebackcourtyard",
107 "insidecourtyard",
108 "insidefrontcourtyard",
109 "intersectsarea",
110 "intersectsbackcourtyard",
111 "intersectscourtyard",
112 "intersectsfrontcourtyard",
113 "isblindburiedvia",
114 "iscoupleddiffpair",
115 "ismicrovia",
116 "isplated",
117 "memberof",
118 "memberoffootprint",
119 "memberofgroup",
120 "memberofsheet",
121};
122
123inline constexpr const char* const KICAD9_0_DRC_RULE_PROPERTIES[] = {
124 "allow_teardrops_to_span_two_tracks",
125 "arrow_direction",
126 "associated_layer",
127 "back_tenting",
128 "bold",
129 "border",
130 "border_style",
131 "border_width",
132 "cell_separators",
133 "center_x",
134 "center_y",
135 "clearance",
136 "clearance_override",
137 "component_class",
138 "componentclass",
139 "copper_layers",
140 "corner_radius_size",
141 "crossbar_height",
142 "curved_teardrops",
143 "diameter",
144 "do_not_populate",
145 "enable",
146 "enable_teardrops",
147 "end_x",
148 "end_y",
149 "exclude_from_bill_of_materials",
150 "exclude_from_position_files",
151 "exempt_from_courtyard_requirement",
152 "extension_line_overshoot",
153 "external_border",
154 "fabrication_property",
155 "fill_mode",
156 "filled",
157 "font",
158 "front_tenting",
159 "hatch_gap",
160 "hatch_width",
161 "header_border",
162 "height",
163 "hole",
164 "hole_shape",
165 "hole_size_x",
166 "hole_size_y",
167 "horizontal_justification",
168 "hyperlink",
169 "initial_side",
170 "italic",
171 "keep_aligned_with_dimension",
172 "keep_out_copper_pours",
173 "keep_out_footprints",
174 "keep_out_pads",
175 "keep_out_tracks",
176 "keep_out_vias",
177 "keep_upright",
178 "keywords",
179 "knockout",
180 "layer",
181 "layer_bottom",
182 "layer_top",
183 "leader_length",
184 "library_description",
185 "library_link",
186 "line_style",
187 "line_width",
188 "locked",
189 "margin_bottom",
190 "margin_left",
191 "margin_right",
192 "margin_top",
193 "max_amplitude",
194 "max_length",
195 "max_width",
196 "min_amplitude",
197 "min_spacing",
198 "minimum_width",
199 "mirrored",
200 "name",
201 "net",
202 "net_class",
203 "netclass",
204 "netname",
205 "not_in_schematic",
206 "number_box",
207 "override_custom_rules",
208 "override_text",
209 "pad_connections",
210 "pad_number",
211 "pad_shape",
212 "pad_to_die_length",
213 "pad_type",
214 "parent",
215 "pin_name",
216 "pin_type",
217 "position_x",
218 "position_y",
219 "precision",
220 "prefer_zone_connections",
221 "prefix",
222 "radius",
223 "reference",
224 "remove_islands",
225 "rounded",
226 "row_separators",
227 "separators_style",
228 "separators_width",
229 "shape",
230 "size",
231 "size_x",
232 "size_y",
233 "smoothing_effort",
234 "soldermask",
235 "soldermask_margin_override",
236 "solderpaste_margin_override",
237 "source_name",
238 "source_type",
239 "start_x",
240 "start_y",
241 "suffix",
242 "suppress_trailing_zeroes",
243 "target_length",
244 "target_skew",
245 "text",
246 "text_frame",
247 "thermal_relief_gap",
248 "thermal_relief_spoke_width",
249 "thermal_spoke_template",
250 "thickness",
251 "transform_offset_x",
252 "transform_offset_y",
253 "tuning_mode",
254 "type",
255 "units",
256 "units_format",
257 "update_order",
258 "value",
259 "vertical_justification",
260 "via_type",
261 "width",
262 "zone_connection_style",
263};
264
265inline constexpr const char* const KICAD9_0_DRC_RULE_UNITS[] = {
266 "in",
267 "mil",
268 "mm",
269};
270
271// KiCad 10.0, the words every release from 10.0.0 to 10.0.7 reads.
272inline constexpr const char* const KICAD10_0_DRC_RULE_TOKENS[] = {
273 "annular_width",
274 "assertion",
275 "assign_component_class",
276 "blind_via",
277 "board_edge",
278 "bridged_mask",
279 "buried_via",
280 "clearance",
281 "condition",
282 "connection_width",
283 "constraint",
284 "courtyard_clearance",
285 "creepage",
286 "diff_pair_gap",
287 "diff_pair_uncoupled",
288 "disallow",
289 "edge_clearance",
290 "error",
291 "exclusion",
292 "footprint",
293 "graphic",
294 "hole",
295 "hole_clearance",
296 "hole_size",
297 "hole_to_hole",
298 "ignore",
299 "inner",
300 "layer",
301 "length",
302 "max",
303 "mechanical_clearance",
304 "mechanical_hole_clearance",
305 "micro_via",
306 "min",
307 "min_resolved_spokes",
308 "none",
309 "npth",
310 "opt",
311 "outer",
312 "pad",
313 "physical_clearance",
314 "physical_hole_clearance",
315 "pth",
316 "rule",
317 "severity",
318 "silk_clearance",
319 "skew",
320 "solder_mask_expansion",
321 "solder_mask_sliver",
322 "solder_paste_abs_margin",
323 "solder_paste_rel_margin",
324 "solid",
325 "text",
326 "text_height",
327 "text_thickness",
328 "thermal_relief_gap",
329 "thermal_reliefs",
330 "thermal_spoke_width",
331 "through_via",
332 "track",
333 "track_angle",
334 "track_segment_length",
335 "track_width",
336 "version",
337 "via",
338 "via_count",
339 "via_dangling",
340 "via_diameter",
341 "warning",
342 "within_diff_pairs",
343 "zone",
344 "zone_connection",
345};
346
347inline constexpr const char* const KICAD10_0_DRC_RULE_FUNCTIONS[] = {
348 "enclosedbyarea",
349 "existsonlayer",
350 "fromto",
351 "getfield",
352 "hascomponentclass",
353 "hasexactnetclass",
354 "hasnetclass",
355 "indiffpair",
356 "insidearea",
357 "insidebackcourtyard",
358 "insidecourtyard",
359 "insidefrontcourtyard",
360 "intersectsarea",
361 "intersectsbackcourtyard",
362 "intersectscourtyard",
363 "intersectsfrontcourtyard",
364 "isblindburiedvia",
365 "isblindvia",
366 "isburiedvia",
367 "iscoupleddiffpair",
368 "ismicrovia",
369 "isplated",
370 "memberof",
371 "memberoffootprint",
372 "memberofgroup",
373 "memberofsheet",
374 "memberofsheetorchildren",
375};
376
377inline constexpr const char* const KICAD10_0_DRC_RULE_PROPERTIES[] = {
378 "allow_teardrops_to_span_two_tracks",
379 "arrow_direction",
380 "associated_layer",
381 "auto_thickness",
382 "back_covering",
383 "back_plugging",
384 "back_tenting",
385 "backdrill_mode",
386 "barcode_type",
387 "best_length_ratio",
388 "best_width_ratio",
389 "bold",
390 "border",
391 "border_style",
392 "border_width",
393 "bottom_backdrill_size",
394 "bottom_counterbore_depth",
395 "bottom_countersink_angle",
396 "capping",
397 "cell_separators",
398 "center_x",
399 "center_y",
400 "clearance",
401 "clearance_override",
402 "column_width",
403 "component_class",
404 "componentclass",
405 "copper_layers",
406 "corner_radius",
407 "corner_radius_ratio",
408 "corner_radius_size",
409 "crossbar_height",
410 "curved_teardrops",
411 "diameter",
412 "do_not_populate",
413 "enable",
414 "enable_teardrops",
415 "end_x",
416 "end_y",
417 "error_correction",
418 "exclude_from_bill_of_materials",
419 "exclude_from_position_files",
420 "exempt_from_courtyard_requirement",
421 "extension_line_overshoot",
422 "external_border",
423 "fabrication_property",
424 "fill",
425 "fill_mode",
426 "filling",
427 "font",
428 "front_covering",
429 "front_plugging",
430 "front_tenting",
431 "hatch_gap",
432 "hatch_minimum_hole_ratio",
433 "hatch_width",
434 "header_border",
435 "height",
436 "hole",
437 "hole_shape",
438 "hole_size_x",
439 "hole_size_y",
440 "horizontal_justification",
441 "hyperlink",
442 "initial_side",
443 "italic",
444 "keep_aligned_with_dimension",
445 "keep_out_footprints",
446 "keep_out_pads",
447 "keep_out_tracks",
448 "keep_out_vias",
449 "keep_out_zone_fills",
450 "keep_upright",
451 "keywords",
452 "knockout",
453 "layer",
454 "layer_bottom",
455 "layer_top",
456 "leader_length",
457 "library_description",
458 "library_link",
459 "line_style",
460 "line_width",
461 "locked",
462 "margin_bottom",
463 "margin_left",
464 "margin_right",
465 "margin_top",
466 "margin_x",
467 "margin_y",
468 "max_amplitude",
469 "max_length",
470 "max_width",
471 "max_width_ratio",
472 "min_amplitude",
473 "min_spacing",
474 "minimum_width",
475 "mirrored",
476 "name",
477 "net",
478 "net_class",
479 "netclass",
480 "netname",
481 "not_in_schematic",
482 "number_box",
483 "orientation",
484 "override_custom_rules",
485 "override_text",
486 "pad_connections",
487 "pad_number",
488 "pad_shape",
489 "pad_to_die_delay",
490 "pad_to_die_length",
491 "pad_type",
492 "parent",
493 "pin_name",
494 "pin_type",
495 "position_x",
496 "position_y",
497 "precision",
498 "prefer_zone_connections",
499 "prefix",
500 "radius",
501 "reference",
502 "remove_islands",
503 "rounded",
504 "row_height",
505 "row_separators",
506 "scale",
507 "separators_style",
508 "separators_width",
509 "shape",
510 "show_text",
511 "size",
512 "size_x",
513 "size_y",
514 "smoothing_amount",
515 "smoothing_effort",
516 "soldermask",
517 "soldermask_margin_override",
518 "solderpaste_margin_override",
519 "solderpaste_margin_ratio_override",
520 "source_name",
521 "source_type",
522 "start_x",
523 "start_y",
524 "suffix",
525 "suppress_trailing_zeroes",
526 "target_delay",
527 "target_length",
528 "target_skew",
529 "target_skew_delay",
530 "text",
531 "text_frame",
532 "text_size",
533 "thermal_relief_gap",
534 "thermal_relief_spoke_angle",
535 "thermal_relief_spoke_width",
536 "thermal_spoke_template",
537 "thickness",
538 "top_backdrill_size",
539 "top_counterbore_depth",
540 "top_countersink_angle",
541 "transform_offset_x",
542 "transform_offset_y",
543 "tuning_mode",
544 "type",
545 "units",
546 "units_format",
547 "update_order",
548 "vertical_justification",
549 "via_type",
550 "visible",
551 "width",
552 "zone_connection_style",
553};
554
555inline constexpr const char* const KICAD10_0_DRC_RULE_UNITS[] = {
556 "deg",
557 "fs",
558 "in",
559 "mil",
560 "mm",
561 "ps",
562};
563
590
591// clang-format on
592
593#endif // DRC_RULES_RELEASE_VOCABULARY_H
constexpr const char *const KICAD10_0_DRC_RULE_UNITS[]
constexpr DRC_RULE_VOCABULARY DRC_RULE_VOCABULARIES[]
constexpr const char *const KICAD10_0_DRC_RULE_TOKENS[]
constexpr const char *const KICAD9_0_DRC_RULE_UNITS[]
constexpr const char *const KICAD10_0_DRC_RULE_FUNCTIONS[]
constexpr const char *const KICAD10_0_DRC_RULE_PROPERTIES[]
constexpr const char *const KICAD9_0_DRC_RULE_PROPERTIES[]
constexpr const char *const KICAD9_0_DRC_RULE_TOKENS[]
constexpr const char *const KICAD9_0_DRC_RULE_FUNCTIONS[]
Everything a rules file could name in one release.