hid/common/draw_helpers.c: Fix thindraw for "fullpoly" polygons
[geda-pcb/pcjc2.git] / example / libraries / example.inc
blob32c43b49c0e7b9ba84708dceb56f67d4330db9f8
1 # -*- m4 -*-
3 # Example .inc file
6 # -------------------------------------------------------------------
7 # the definition for suface mount resistors and capacitors
8 # $1: canonical name
9 # $2: name on PCB
10 # $3: value
11 # $4: pad width   (in direction perpendicular to part)
12 # $5: pad length  (in direction parallel with part)
13 # $6: pad spacing (center to center)
14 # $7: distance from edge of pad to silk (in direction
15 #     perpendicular to part)
16 # $8: distance from edge of pad to silk (in direction
17 #     parallel with part)
18 # $9: Set to "no" to skip silk screen on the sides of the part
20 define(`COMMON_PKG_RCSMT',
21         `define(`XMIN', `eval( -1*`$6'/2 - `$5'/2 - `$8')')     
22         define(`XMAX', `eval(  `$6'/2 + `$5'/2 + `$8')')
23         define(`YMIN', `eval(-1*`$4'/2 - `$7')')        
24         define(`YMAX', `eval(   `$4'/2 + `$7')')
25 Element(0x00 "$1" "$2" "$3" eval(XMIN+20) eval(YMAX+20) 0 100 0x00)
27         ifelse(0, eval($4>$5),
28         # Pads which have the perpendicular pad dimension less
29         # than or equal to the parallel pad dimension   
30         Pad(eval(-1*(   $6 + $5 - $4)/2) 0 
31             eval((-1*$6 + $5 - $4)/2) 0 eval($4) "1" 0x100)
32         Pad(eval(-1*(-1*$6 + $5 - $4)/2) 0 
33             eval((   $6 + $5 - $4)/2) 0 eval($4) "2" 0x100)
34         ,
35         # Pads which have the perpendicular pad dimension greater
36         # than or equal to the parallel pad dimension 
37         Pad(eval(-1*$6/2) eval(-1*($4 - $5)/2) 
38             eval(-1*$6/2)  eval(($4 - $5)/2) eval($5) "1" 0x100)
39         Pad(eval(   $6/2) eval(-1*($4 - $5)/2) 
40             eval(   $6/2)  eval(($4 - $5)/2) eval($5) "2" 0x100)
41         )
43         # silk screen
44         # ends
45         ElementLine(XMIN YMIN XMIN YMAX 10)
46         ElementLine(XMAX YMAX XMAX YMIN 10)
47         # sides
48 ifelse($9,"no",
49         #skip side silk
50         ,
51         ElementLine(XMIN YMIN XMAX YMIN 10)
52         ElementLine(XMAX YMAX XMIN YMAX 10)
54         Mark(0 0)
55 )')
58 # 0402 package
60 # 30x30 mil pad, 15 mil metal-metal spacing=> 
61 # 15 + 15 + 15 = 45 center-to-center
62 define(`PKG_RC0402', 
63   `COMMON_PKG_RCSMT(`$1', `$2', `$3', 30, 30, 45, 0, 10, "no")')
65 # 0603 package
67 # 40x40 mil pad, 30 mil metal-metal spacing=>
68 #  30 + 20 + 20 = 70 center-to-center
69 define(`PKG_RC0603', 
70   `COMMON_PKG_RCSMT(`$1', `$2', `$3', 40, 40, 70, 10, 10)')
72 # 1206 package
74 # 40x60 mil pad, 90 mil metal-metal spacing=> 
75 #  90 + 20 + 20 = 130 center-to-center
76 define(`PKG_RC1206', 
77   `COMMON_PKG_RCSMT(`$1', `$2', `$3', 60, 40, 130, 10, 10)')