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