6 # -------------------------------------------------------------------
7 # the definition for suface mount resistors and capacitors
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
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)
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)
45 ElementLine(XMIN YMIN XMIN YMAX 10)
46 ElementLine(XMAX YMAX XMAX YMIN 10)
51 ElementLine(XMIN YMIN XMAX YMIN 10)
52 ElementLine(XMAX YMAX XMIN YMAX 10)
60 # 30x30 mil pad, 15 mil metal-metal spacing=>
61 # 15 + 15 + 15 = 45 center-to-center
63 `COMMON_PKG_RCSMT(`$1', `$2', `$3', 30, 30, 45, 0, 10, "no")')
67 # 40x40 mil pad, 30 mil metal-metal spacing=>
68 # 30 + 20 + 20 = 70 center-to-center
70 `COMMON_PKG_RCSMT(`$1', `$2', `$3', 40, 40, 70, 10, 10)')
74 # 40x60 mil pad, 90 mil metal-metal spacing=>
75 # 90 + 20 + 20 = 130 center-to-center
77 `COMMON_PKG_RCSMT(`$1', `$2', `$3', 60, 40, 130, 10, 10)')