Index: doc/user/06_feature/drc_query/index.html =================================================================== --- doc/user/06_feature/drc_query/index.html (revision 34674) +++ doc/user/06_feature/drc_query/index.html (revision 34675) @@ -123,6 +123,91 @@ are executed each in its own, independent context, the order of rules does not matter. +

Stock DRC scripts

+

+The default drc_query config shipped with pcb-rnd contains a few stock DRC +rules. These are the most essential rules that most boards will need. (Users +are encouraged to + download furhter scripts +to extend the DRC system.) This chapter documents the stock DRC scripts and +the checks they perform. + +

hole_dia

+

+Lists holes with diameter smaller than the board-global minimum (set in $min_drill). +Note: only round holes (hole diameter) are checked, which are always in padstacks. +Slots (in padstacks) or mech/boundary layer explicit object are not checked. + +

hole_overlap

+

+Checks pairs of holes (as defined for hol_dia above) and list pairs that +have any overlap between their drilled hole. (Some fabs may refuse to drill +such holes because of increased risk of breaking drill bits.) + +

net_break

+

+Check every overlapping pair of copper objects within known nets. Throw a +DRC violation if the overlap offset is smaller than $min_copper_overlap. +(Although not very likely with modern CAM and fab proecsses, but insufficient +overlap may cause glitches or even broken net.) + + +

net_short

+

+Check every pair of copper objects within known nets. Throw a +DRC violation if two objects of different nets have non-copper gap less +than $min_copper_clearance. + +

min_copper_thickness

+

+Check each copper object with thickness (arcs and lines) and throw a +violation for those that are thicker than 0 but thinner than $min_copper_thickness. +(The exception for 0 is provided for compatibility. Please use the noexport +mechanism instead.) + +

min_silk_thickness

+

+Same as min_copper_thickness but runs on silk objects and uses $min_silk_thickness. + +

beyond_drawing_area

+

+List any object whose bounding box is fully beyond the drawing area in +any direction. This is useful for detecting copy&paste or object move +leftovers, especially if the leftover is a small object. + +

min_ring

+

+For each padstack calculate the neck size, which is the shortest straight line +that can be drawn from the inner (hole/slot) contour and the outer (copper) +contour of the padstack. If the neck size is below $min_ring, throw a violation. + +

fullpoly

+

+Lists any polygon that has the FULLPOLY flag and indeed has multiple islands. +The fullpoly feature is provided only for compatibility and should not be used: +it may break the DRC and connection finding in some common cases. + + +

ko_named

+

+Courtyard/keepout: warn for pairs of objects that overlap on layer groups +with purpose string starting with "ko.". The most common use is +part mechanical courtyard. Please refer to the + ko_id pool node +for detailed documentation. + +

invalid_polygons

+

+The polygon lib of pcb-rnd requires that polygon contours to be not self +intersecting. When pcb-rnd is configured with --debug, a lot of checks are +ran runtime and the code asserts/aborts as early as possible when detecting +invalid polygon contour. However, in production compilation these checks +are disabled. The only way an user of a production pcb-rnd can find all +invalid polygons on a board is running this test. Note: invalid polygons +will eventually break something on the board: the on-screen render, +an export render or polygon clipping. + +

Tutorial

Single expression scripts