This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
pcb:drc [2018/08/05 19:08] cparker |
pcb:drc [2018/09/02 16:23] cparker |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | This page will serve to document the design rule checker. | + | This page will serve to document the design rule checker. This is presently documented "as-is". |
===DRC Violations=== | ===DRC Violations=== | ||
Line 18: | Line 18: | ||
Executing the DRC() action will wipe out the selected, found, and DRC flags on most objects, although, apparently not elements. | Executing the DRC() action will wipe out the selected, found, and DRC flags on most objects, although, apparently not elements. | ||
+ | |||
+ | - Execute the DRC() action. | ||
+ | - Generate the "DRC doesn't catch everything" warning. | ||
+ | - Save layer state and turn on all layers. | ||
+ | - Clear the FOUNDFLAG, DRCFLAG, and SELECTEDFLAG on all objects. DRC uses these flags to find errors. | ||
+ | - InitConnectionLookup -- This resets all of the lists that are used for building the connectivity map. | ||
+ | - For every element pin, pad, and via, execute DRCFind. DRCFind builds a connection list starting from the given pin/pad/via four times. See below for a more detailed description of that process (if I get around to writing it). | ||
+ | - Apply a global bloat of value "Shrink", and build a connection list, with global drc set to false. This will set the DRCFLAG and SELECTEDFLAG on every object that is touching the given pin/pad/via. | ||
+ | - Apply a global bloat of value 0, and build a connection list with global "drc" set to true. | ||
+ | | ||
+ | |