6 # PCB, interactive printed circuit board design
7 # Copyright (C) 2007 Dan McMahill
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; version 2 of the License.
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 # The symbols produced by this file may be used and redistributed
23 # without restriction as part of a PCB layout file. Distribution
24 # of footprints produced by this file as part of a footprint
25 # library is governed by the same license as this source file.
28 # Nichicon Specific Footprints
31 # Surface mount electrolytic capacitors. WT series.
36 # $4: pin width (1/100 mm) (max dimension "H" on datasheet * 100)
37 # $5: pin length (1/100 mm) (max dimension "A" on datasheet * 100)
38 # $6: gap between pins (1/100 mm) (min dimension "E" on datasheet * 100)
39 # $7: package width (1/100 mm) (max dimension "C" on datasheet * 100)
40 # $8: package height (1/100 mm) (max dimension "B" on datasheet * 100)
41 # $9: package vertical height (1/100mm) -- vertical height off board
42 # (max dimension "L" on datasheet * 100)
44 define(`PKG_NICHICON_WT_CAP',
46 # max pin width (perpendicular to axis of package) (1/100 mil)
47 define(`PINW', `eval($4*10000/254)')
49 # max pin length (parallel to axis of package) (1/100 mil)
50 define(`PINL', `eval($5*10000/254)')
52 # gap between the pads (1/100 mil)
53 define(`PINS', `eval($6*10000/254)')
55 # package width (1/100 mil)
56 define(`PACKW', `eval($7*10000/254)')
58 # package height (1/100 mil)
59 define(`PACKH', `eval($8*10000/254)')
61 # component veritcal height off board (1/100 mil)
62 define(`COMPH', `eval($9*10000/254)')
64 # pad width and length
65 define(`PADW', `eval(PINW + 2000)')
66 define(`PADL', `eval(PINL + 2000)')
68 # y values for drawing the pad. The Y center of the pad is 0.5*(PINL + PINS)
69 # we need a line segment of length PADL - PADW so we have end points:
70 # 0.5*(PINL + PINS) +/- 0.5*(PADL - PADW)
71 define(`PY1', `eval((PINL + PINS + PADL - PADW)/2)')
72 define(`PY2', `eval((PINL + PINS - PADL + PADW)/2)')
74 # width of soldermask relief (5 mil on each side)
75 define(`MASKW', `eval(PADW + 1000)')
77 # silkscreen width (1/100 mils)
78 define(`SILKW', `1000')
80 # how much space to leave around the part before the
81 # silk screen (1/100 mils)
82 define(`SILKS', `800')
84 # lower left corner for silk screen (1/100 mil)
85 define(`LLX', `eval( (PACKW + 2*SILKS + SILKW)/2)')
86 define(`LLY', `eval( (PACKH + 2*SILKS + SILKW)/2)')
88 # upper right corner for silk screen (1/100 mil)
89 define(`URX', `eval( (PADW + 2*SILKS + SILKW)/2)')
90 define(`URY', `eval( -LLY)')
92 # how much to notch the corners by in silk to indicate polarity
93 define(`NOTCH', `3000')
94 define(`NOTCHX', `eval(LLX - NOTCH)')
95 define(`NOTCHY', `eval(URY + NOTCH)')
97 # Element [SFlags "Desc" "Name" "Value" MX MY TX TY TDir TScale TSFlags]
98 Element[ "" "`$1'" "`$2'" "`$3'" 0 0 0 0 0 100 ""]
101 # Pad [rX1 rY1 rX2 rY2 Thickness Clearance Mask "Name" "Number" SFlags]
102 Pad[ 0 -PY1 0 -PY2 PADW 1000 MASKW "Plus" "1" "square"]
103 Pad[ 0 PY1 0 PY2 PADW 1000 MASKW "Minus" "2" "square"]
105 # Silk screen around package
106 # ElementLine[ x1 y1 x2 y2 width]
108 ElementLine[ LLX LLY URX LLY SILKW]
109 ElementLine[ LLX LLY LLX NOTCHY SILKW]
110 ElementLine[ LLX NOTCHY NOTCHX URY SILKW]
111 ElementLine[ NOTCHX URY URX URY SILKW]
113 ElementLine[ -LLX LLY -URX LLY SILKW]
114 ElementLine[ -LLX LLY -LLX NOTCHY SILKW]
115 ElementLine[ -LLX NOTCHY -NOTCHX URY SILKW]
116 ElementLine[ -NOTCHX URY -URX URY SILKW]
122 # -------------------------------------------------------------------
128 ## Nichicon WT series SMT Aluminum Electrolytic Capacitor
131 # See Nichicon publication CAT.8100S
133 # datasheet dimensions Hmax, Amax, E, Cmax, Bmax, Lmax
134 define(`PKG_NICHICON_WT_CAP_3_5p4', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
135 `80', `170', `80', `350', `350', `590')')
136 define(`PKG_NICHICON_WT_CAP_4_5p4', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
137 `80', `200', `100', `450', `450', `590')')
138 define(`PKG_NICHICON_WT_CAP_5_5p4', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
139 `80', `230', `130', `550', `550', `590')')
140 define(`PKG_NICHICON_WT_CAP_6p3_5p4', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
141 `80', `260', `220', `680', `680', `590')')
142 define(`PKG_NICHICON_WT_CAP_6p3_5p8', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
143 `80', `260', `220', `680', `680', `630')')
144 define(`PKG_NICHICON_WT_CAP_6p3_7p7', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
145 `80', `260', `220', `680', `680', `820')')
146 define(`PKG_NICHICON_WT_CAP_8_5p4', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
147 `80', `350', `230', `850', `850', `590')')
148 define(`PKG_NICHICON_WT_CAP_8_10', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
149 `110', `310', `310', `850', `850', `1050')')
150 define(`PKG_NICHICON_WT_CAP_10_10', `PKG_NICHICON_WT_CAP(`$1', `$2', `$3',
151 `110', `340', `450', `1050', `1050', `1050')')