KiCad PCB EDA Suite
drc_stuff.h File Reference
#include <vector>
#include <memory>

Go to the source code of this file.

Classes

class  DRC_ITEM_LIST
 Class DRC_ITEM_LIST provides an abstract interface of a DRC_ITEM* list manager. More...
 
class  DRC
 Class DRC is the Design Rule Checker, and performs all the DRC tests. More...
 

Macros

#define OK_DRC   0
 
#define BAD_DRC   1
 
#define DRCE_   1
 DRC error codes: More...
 
#define DRCE_UNCONNECTED_PADS   2
 pads are unconnected More...
 
#define DRCE_TRACK_NEAR_THROUGH_HOLE   3
 thru hole is too close to track More...
 
#define DRCE_TRACK_NEAR_PAD   4
 pad too close to track More...
 
#define DRCE_TRACK_NEAR_VIA   5
 track too close to via More...
 
#define DRCE_VIA_NEAR_VIA   6
 via too close to via More...
 
#define DRCE_VIA_NEAR_TRACK   7
 via too close to track More...
 
#define DRCE_TRACK_ENDS1   8
 2 parallel track segments too close: fine start point test More...
 
#define DRCE_TRACK_ENDS2   9
 2 parallel track segments too close: fine start point test More...
 
#define DRCE_TRACK_ENDS3   10
 2 parallel track segments too close: fine end point test More...
 
#define DRCE_TRACK_ENDS4   11
 2 parallel track segments too close: fine end point test More...
 
#define DRCE_TRACK_SEGMENTS_TOO_CLOSE   12
 2 parallel track segments too close: segm ends between segref ends More...
 
#define DRCE_TRACKS_CROSSING   13
 tracks are crossing More...
 
#define DRCE_ENDS_PROBLEM1   14
 track ends are too close More...
 
#define DRCE_ENDS_PROBLEM2   15
 track ends are too close More...
 
#define DRCE_ENDS_PROBLEM3   16
 track ends are too close More...
 
#define DRCE_ENDS_PROBLEM4   17
 track ends are too close More...
 
#define DRCE_ENDS_PROBLEM5   18
 track ends are too close More...
 
#define DRCE_PAD_NEAR_PAD1   19
 pad too close to pad More...
 
#define DRCE_VIA_HOLE_BIGGER   20
 via's hole is bigger than its diameter More...
 
#define DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR   21
 micro via's layer pair incorrect (layers must be adjacent) More...
 
#define COPPERAREA_INSIDE_COPPERAREA   22
 copper area outlines intersect More...
 
#define COPPERAREA_CLOSE_TO_COPPERAREA   23
 copper area outlines are too close More...
 
#define DRCE_SUSPICIOUS_NET_FOR_ZONE_OUTLINE   24
 copper area has a net but no pads in nets, which is suspicious More...
 
#define DRCE_HOLE_NEAR_PAD   25
 hole too close to pad More...
 
#define DRCE_HOLE_NEAR_TRACK   26
 hole too close to track More...
 
#define DRCE_TOO_SMALL_TRACK_WIDTH   27
 Too small track width. More...
 
#define DRCE_TOO_SMALL_VIA   28
 Too small via size. More...
 
#define DRCE_TOO_SMALL_MICROVIA   29
 Too small micro via size. More...
 
#define DRCE_TOO_SMALL_VIA_DRILL   30
 Too small via drill. More...
 
#define DRCE_TOO_SMALL_MICROVIA_DRILL   31
 Too small micro via drill. More...
 
#define DRCE_NETCLASS_TRACKWIDTH   32
 netclass has TrackWidth < board.m_designSettings->m_TrackMinWidth More...
 
#define DRCE_NETCLASS_CLEARANCE   33
 netclass has Clearance < board.m_designSettings->m_TrackClearance More...
 
#define DRCE_NETCLASS_VIASIZE   34
 netclass has ViaSize < board.m_designSettings->m_ViasMinSize More...
 
#define DRCE_NETCLASS_VIADRILLSIZE   35
 netclass has ViaDrillSize < board.m_designSettings->m_ViasMinDrill More...
 
#define DRCE_NETCLASS_uVIASIZE   36
 netclass has ViaSize < board.m_designSettings->m_MicroViasMinSize More...
 
#define DRCE_NETCLASS_uVIADRILLSIZE   37
 netclass has ViaSize < board.m_designSettings->m_MicroViasMinDrill More...
 
#define DRCE_VIA_INSIDE_KEEPOUT   38
 Via in inside a keepout area. More...
 
#define DRCE_TRACK_INSIDE_KEEPOUT   39
 Track in inside a keepout area. More...
 
#define DRCE_PAD_INSIDE_KEEPOUT   40
 Pad in inside a keepout area. More...
 
#define DRCE_VIA_INSIDE_TEXT   41
 Via in inside a text area. More...
 
#define DRCE_TRACK_INSIDE_TEXT   42
 Track in inside a text area. More...
 
#define DRCE_PAD_INSIDE_TEXT   43
 Pad in inside a text area. More...
 
#define DRCE_OVERLAPPING_FOOTPRINTS   44
 footprint courtyards overlap More...
 
#define DRCE_MISSING_COURTYARD_IN_FOOTPRINT   45
 footprint has no courtyard defined More...
 
#define DRCE_MALFORMED_COURTYARD_IN_FOOTPRINT   46
 footprint has a courtyard but malformed More...
 

Typedefs

typedef std::vector< DRC_ITEM * > DRC_LIST
 

Macro Definition Documentation

#define COPPERAREA_CLOSE_TO_COPPERAREA   23

copper area outlines are too close

Definition at line 62 of file drc_stuff.h.

Referenced by DRC::doEdgeZoneDrc(), DRC_ITEM::GetErrorText(), and BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines().

#define COPPERAREA_INSIDE_COPPERAREA   22

copper area outlines intersect

Definition at line 61 of file drc_stuff.h.

Referenced by DRC::doEdgeZoneDrc(), DRC_ITEM::GetErrorText(), and BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines().

#define DRCE_   1

DRC error codes:

Definition at line 40 of file drc_stuff.h.

#define DRCE_ENDS_PROBLEM1   14

track ends are too close

Definition at line 53 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_ENDS_PROBLEM2   15

track ends are too close

Definition at line 54 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_ENDS_PROBLEM3   16

track ends are too close

Definition at line 55 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_ENDS_PROBLEM4   17

track ends are too close

Definition at line 56 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_ENDS_PROBLEM5   18

track ends are too close

Definition at line 57 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_HOLE_NEAR_PAD   25

hole too close to pad

Definition at line 64 of file drc_stuff.h.

Referenced by DRC::doPadToPadsDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_HOLE_NEAR_TRACK   26

hole too close to track

Definition at line 65 of file drc_stuff.h.

Referenced by DRC_ITEM::GetErrorText().

#define DRCE_MALFORMED_COURTYARD_IN_FOOTPRINT   46

footprint has a courtyard but malformed

(not convetrible to polygon)

Definition at line 85 of file drc_stuff.h.

Referenced by DRC::doFootprintOverlappingDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR   21

micro via's layer pair incorrect (layers must be adjacent)

Definition at line 60 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_MISSING_COURTYARD_IN_FOOTPRINT   45

footprint has no courtyard defined

Definition at line 84 of file drc_stuff.h.

Referenced by DRC::doFootprintOverlappingDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_NETCLASS_CLEARANCE   33

netclass has Clearance < board.m_designSettings->m_TrackClearance

Definition at line 72 of file drc_stuff.h.

Referenced by DRC::doNetClass(), and DRC_ITEM::GetErrorText().

#define DRCE_NETCLASS_TRACKWIDTH   32

netclass has TrackWidth < board.m_designSettings->m_TrackMinWidth

Definition at line 71 of file drc_stuff.h.

Referenced by DRC::doNetClass(), and DRC_ITEM::GetErrorText().

#define DRCE_NETCLASS_uVIADRILLSIZE   37

netclass has ViaSize < board.m_designSettings->m_MicroViasMinDrill

Definition at line 76 of file drc_stuff.h.

Referenced by DRC::doNetClass(), and DRC_ITEM::GetErrorText().

#define DRCE_NETCLASS_uVIASIZE   36

netclass has ViaSize < board.m_designSettings->m_MicroViasMinSize

Definition at line 75 of file drc_stuff.h.

Referenced by DRC::doNetClass(), and DRC_ITEM::GetErrorText().

#define DRCE_NETCLASS_VIADRILLSIZE   35

netclass has ViaDrillSize < board.m_designSettings->m_ViasMinDrill

Definition at line 74 of file drc_stuff.h.

Referenced by DRC::doNetClass(), and DRC_ITEM::GetErrorText().

#define DRCE_NETCLASS_VIASIZE   34

netclass has ViaSize < board.m_designSettings->m_ViasMinSize

Definition at line 73 of file drc_stuff.h.

Referenced by DRC::doNetClass(), and DRC_ITEM::GetErrorText().

#define DRCE_OVERLAPPING_FOOTPRINTS   44

footprint courtyards overlap

Definition at line 83 of file drc_stuff.h.

Referenced by DRC::doFootprintOverlappingDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_PAD_INSIDE_KEEPOUT   40

Pad in inside a keepout area.

Definition at line 79 of file drc_stuff.h.

Referenced by DRC_ITEM::GetErrorText().

#define DRCE_PAD_INSIDE_TEXT   43

Pad in inside a text area.

Definition at line 82 of file drc_stuff.h.

Referenced by DRC_ITEM::GetErrorText(), and DRC::testTexts().

#define DRCE_PAD_NEAR_PAD1   19

pad too close to pad

Definition at line 58 of file drc_stuff.h.

Referenced by DRC::doPadToPadsDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_SUSPICIOUS_NET_FOR_ZONE_OUTLINE   24

copper area has a net but no pads in nets, which is suspicious

Definition at line 63 of file drc_stuff.h.

Referenced by DRC_ITEM::GetErrorText(), and DRC::testZones().

#define DRCE_TOO_SMALL_MICROVIA   29

Too small micro via size.

Definition at line 68 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TOO_SMALL_MICROVIA_DRILL   31

Too small micro via drill.

Definition at line 70 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TOO_SMALL_TRACK_WIDTH   27

Too small track width.

Definition at line 66 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TOO_SMALL_VIA   28

Too small via size.

Definition at line 67 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TOO_SMALL_VIA_DRILL   30

Too small via drill.

Definition at line 69 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_ENDS1   8

2 parallel track segments too close: fine start point test

Definition at line 47 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_ENDS2   9

2 parallel track segments too close: fine start point test

Definition at line 48 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_ENDS3   10

2 parallel track segments too close: fine end point test

Definition at line 49 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_ENDS4   11

2 parallel track segments too close: fine end point test

Definition at line 50 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_INSIDE_KEEPOUT   39

Track in inside a keepout area.

Definition at line 78 of file drc_stuff.h.

Referenced by DRC::doTrackKeepoutDrc(), DRC_ITEM::GetErrorText(), and DRC::testKeepoutAreas().

#define DRCE_TRACK_INSIDE_TEXT   42

Track in inside a text area.

Definition at line 81 of file drc_stuff.h.

Referenced by DRC_ITEM::GetErrorText(), and DRC::testTexts().

#define DRCE_TRACK_NEAR_PAD   4

pad too close to track

Definition at line 43 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_NEAR_THROUGH_HOLE   3

thru hole is too close to track

Definition at line 42 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_NEAR_VIA   5

track too close to via

Definition at line 44 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACK_SEGMENTS_TOO_CLOSE   12

2 parallel track segments too close: segm ends between segref ends

Definition at line 51 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_TRACKS_CROSSING   13

tracks are crossing

Definition at line 52 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_UNCONNECTED_PADS   2

pads are unconnected

Definition at line 41 of file drc_stuff.h.

Referenced by DRC_ITEM::GetErrorText(), and DRC::testUnconnected().

#define DRCE_VIA_HOLE_BIGGER   20

via's hole is bigger than its diameter

Definition at line 59 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_VIA_INSIDE_KEEPOUT   38

Via in inside a keepout area.

Definition at line 77 of file drc_stuff.h.

Referenced by DRC::doTrackKeepoutDrc(), DRC_ITEM::GetErrorText(), and DRC::testKeepoutAreas().

#define DRCE_VIA_INSIDE_TEXT   41

Via in inside a text area.

Definition at line 80 of file drc_stuff.h.

Referenced by DRC_ITEM::GetErrorText(), and DRC::testTexts().

#define DRCE_VIA_NEAR_TRACK   7

via too close to track

Definition at line 46 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define DRCE_VIA_NEAR_VIA   6

via too close to via

Definition at line 45 of file drc_stuff.h.

Referenced by DRC::doTrackDrc(), and DRC_ITEM::GetErrorText().

#define OK_DRC   0

Typedef Documentation

typedef std::vector<DRC_ITEM*> DRC_LIST

Definition at line 146 of file drc_stuff.h.