2 # Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv3
4 # Program to emit PCB footprint for Amphenol SD connector
7 # dimensions in mm from amphenol/sd.pdf
14 Pad3Y = -8.60 + 5.00 + 1.70 + 1.70
15 Pad4Y = -8.60 + 5.00 + 1.70 + 1.70 + 1.65
16 Pad5Y = -8.60 + 15.00 - 2.50
18 Pad7Y = -8.60 + 15.00 + 2.43
19 Pad8Y = -8.60 + 15.00 + 2.43 + 1.70
21 PadCDY = -8.60 + 5.00 + 1.70
22 PadWPY = -8.60 + 15.00 + 2.43 + 1.70 + 3.35
26 MntY1 = 15.00 - 29.20 + (MntHeight / 2)
28 MntY2 = 15.00 - (MntHeight / 2)
36 BoxXLeft = -23.5 - 1.16
44 # we're going to use the 1/100 of a mil fundamental unit form
46 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
48 print '# author: Bdale Garbee'
49 print '# email: bdale@gag.com'
50 print '# dist-license: GPL 3'
51 print '# use-license: unlimited'
53 print 'Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]'
58 mm2mils100(MntX1 - MntWidth/2 + MntHeight/2), \
60 mm2mils100(MntX1 + MntWidth/2 - MntHeight/2), \
62 mm2mils100(MntHeight), \
64 mm2mils100(MntHeight + MaskAdd), \
68 mm2mils100(MntX2 - MntWidth/2 + MntHeight/2), \
70 mm2mils100(MntX2 + MntWidth/2 - MntHeight/2), \
72 mm2mils100(MntHeight), \
74 mm2mils100(MntHeight + MaskAdd), \
79 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
81 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
83 mm2mils100(PadHeight), \
85 mm2mils100(PadHeight + MaskAdd), \
89 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
91 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
93 mm2mils100(PadHeight), \
95 mm2mils100(PadHeight + MaskAdd), \
99 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
101 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
103 mm2mils100(PadHeight), \
105 mm2mils100(PadHeight + MaskAdd), \
109 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
111 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
113 mm2mils100(PadHeight), \
115 mm2mils100(PadHeight + MaskAdd), \
119 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
121 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
123 mm2mils100(PadHeight), \
125 mm2mils100(PadHeight + MaskAdd), \
129 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
131 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
133 mm2mils100(PadHeight), \
135 mm2mils100(PadHeight + MaskAdd), \
139 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
141 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
143 mm2mils100(PadHeight), \
145 mm2mils100(PadHeight + MaskAdd), \
149 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
151 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
153 mm2mils100(PadHeight), \
155 mm2mils100(PadHeight + MaskAdd), \
159 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
161 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
163 mm2mils100(PadHeight), \
165 mm2mils100(PadHeight + MaskAdd), \
169 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
170 mm2mils100(PadCDY), \
171 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
172 mm2mils100(PadCDY), \
173 mm2mils100(PadHeight), \
175 mm2mils100(PadHeight + MaskAdd), \
179 mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
180 mm2mils100(PadWPY), \
181 mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
182 mm2mils100(PadWPY), \
183 mm2mils100(PadHeight), \
185 mm2mils100(PadHeight + MaskAdd), \
191 mm2mils100(Hole1Y), \
192 mm2mils100(HoleDiam+0.3556), \
194 mm2mils100(HoleDiam+0.66), \
195 mm2mils100(HoleDiam), \
200 mm2mils100(Hole2Y), \
201 mm2mils100(HoleDiam+0.3556), \
203 mm2mils100(HoleDiam+0.66), \
204 mm2mils100(HoleDiam), \
208 BoxXLeft = -23.5 - 1.16
212 print ' ElementLine[', \
213 mm2mils100(BoxXLeft), \
214 mm2mils100(-BoxY/2), \
215 mm2mils100(BoxXLeft), \
216 mm2mils100(BoxY/2), \
219 print ' ElementLine[', \
220 mm2mils100(BoxXLeft + BoxX), \
221 mm2mils100(-BoxY/2), \
222 mm2mils100(BoxXLeft + BoxX), \
223 mm2mils100(BoxY/2), \
226 print ' ElementLine[', \
227 mm2mils100(BoxXLeft), \
228 mm2mils100(-BoxY/2), \
229 mm2mils100(BoxXLeft + BoxX), \
230 mm2mils100(-BoxY/2), \
233 print ' ElementLine[', \
234 mm2mils100(BoxXLeft), \
235 mm2mils100(BoxY/2), \
236 mm2mils100(BoxXLeft + BoxX), \
237 mm2mils100(BoxY/2), \