[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: PCB: Pad description obsolete?



> > The canonical list of flag names is in src/strflags.c in the
> > flagbits[] array.  Descriptions of the flags are in src/const.h under
> > "object flags".
> > 
> I don't know C so it is useless for me...

It can't be *that* useless:

  { PINFLAG, N("pin"), ALL_TYPES },
  { VIAFLAG, N("via"), ALL_TYPES },
  { FOUNDFLAG, N("found"), ALL_TYPES },
  { HOLEFLAG, N("hole"), PIN_TYPES },
  { RATFLAG, N("rat"), RATLINE_TYPE },
  { PININPOLYFLAG, N("pininpoly"), PIN_TYPES | PAD_TYPE },
  { CLEARPOLYFLAG, N("clearpoly"), POLYGON_TYPE },
  { HIDENAMEFLAG, N("hidename"), ELEMENT_TYPE },
  { DISPLAYNAMEFLAG, N("showname"), ELEMENT_TYPE },
  { CLEARLINEFLAG, N("clearline"), LINE_TYPE },
  { SELECTEDFLAG, N("selected"), ALL_TYPES },
  { ONSOLDERFLAG, N("onsolder"), ELEMENT_TYPE },
  { AUTOFLAG, N("auto"), ALL_TYPES },
  { SQUAREFLAG, N("square"), PIN_TYPES | PAD_TYPE },
  { RUBBERENDFLAG, N("rubberend"), LINE_TYPE },
  { WARNFLAG, N("warn"), PIN_TYPES | PAD_TYPE },
  { USETHERMALFLAG, N("usetherm"), PIN_TYPES | PAD_TYPE },
  { OCTAGONFLAG, N("octagon"), PIN_TYPES | PAD_TYPE },
  { DRCFLAG, N("drc"), ALL_TYPES },
  { LOCKFLAG, N("lock"), ALL_TYPES },
  { EDGE2FLAG, N("edge2"), ALL_TYPES }


#define	NOFLAG			0x0000
#define	PINFLAG			0x0001	/* is a pin */
#define	VIAFLAG			0x0002	/* is a via */
#define	FOUNDFLAG		0x0004	/* used by 'FindConnection()' */
#define HOLEFLAG		0x0008  /* pin or via is only a hole */
#define RATFLAG                 0x0010          /* indicates line is a rat line */
#define PININPOLYFLAG           0x0010          /* pin found inside poly - same as */
                                                /* rat line since not used on lines */
#define CLEARPOLYFLAG           0x0010          /* pins/vias clear these polygons */
#define HIDENAMEFLAG		0x0010	/* hide the element name */
#define	DISPLAYNAMEFLAG		0x0020	/* display the names of pins/pads */
					/* of an element */
#define CLEARLINEFLAG		0x0020	/* line doesn't touch polygons */
#define	SELECTEDFLAG		0x0040	/* object has been selected */
#define	ONSOLDERFLAG		0x0080	/* element is on bottom side */
#define AUTOFLAG		0x0080	/* line/via created by auto-router */
#define	SQUAREFLAG		0x0100	/* pin is square, not round */
#define RUBBERENDFLAG		0x0200	/* indicates one end already rubber */
					/* banding same as warn flag*/
					/* since pins/pads won't use it */
#define WARNFLAG		0x0200          /* Warning for pin/via/pad */
#define USETHERMALFLAG		0x0400          /* draw pin, via with thermal fingers */
#define ONSILKFLAG              0x0400  /* old files use this to indicate silk */
#define OCTAGONFLAG		0x0800		/* draw pin/via as octagon instead of round */
#define DRCFLAG			0x1000		/* flag like FOUND flag for DRC checking */
#define LOCKFLAG                0x2000  /* object locked in place */
#define EDGE2FLAG               0x4000  /* Padr.Point2 is closer to outside edge */
					/* also pinout text for pins is vertical */


#define	NO_TYPE			0x0000	/* no object */
#define	VIA_TYPE		0x0001
#define	ELEMENT_TYPE		0x0002
#define	LINE_TYPE		0x0004
#define	POLYGON_TYPE		0x0008
#define	TEXT_TYPE		0x0010
#define RATLINE_TYPE		0x0020

#define	PIN_TYPE		0x0100	/* objects that are part */
#define	PAD_TYPE		0x0200	/* 'pin' of SMD element */
#define	ELEMENTNAME_TYPE	0x0400	/* of others */
#define	POLYGONPOINT_TYPE	0x0800
#define	LINEPOINT_TYPE		0x1000
#define ELEMENTLINE_TYPE        0x2000
#define ARC_TYPE                0x4000
#define ELEMENTARC_TYPE		0x8000

#define PIN_TYPES     (VIA_TYPE | PIN_TYPE)
#define LOCK_TYPES    (VIA_TYPE | LINE_TYPE | ARC_TYPE | POLYGON_TYPE | ELEMENT_TYPE \
                      | TEXT_TYPE | ELEMENTNAME_TYPE)

#define	ALL_TYPES		(~0)	/* all bits set */