2 # Copyright 2020 by Bdale Garbee <bdale@gag.com>. GPLv2
4 # Program to emit PCB footprint for TDK beeper
7 # dimensions in mm from SK-12F17-G.pdf
17 Drill = 1.1 # diameter of drill hole
18 Thickness = 2 # outer diameter of copper annulus
19 Clearance = 1 # delta in diameter above Thickness for plane clearance
20 Mask = 2.2 # mask opening diameter
22 SilkWidth = 10 # in units of 1/1000 inch
23 SilkNative = SilkWidth * 100
27 # we're going to use the 1/100 of a mil fundamental unit form
29 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
31 print ('# author: Bdale Garbee')
32 print ('# email: bdale@gag.com')
33 print ('# dist-license: GPL 3')
34 print ('# use-license: unlimited')
36 print ('Element[0x0 "SK-12F17" "" "" 0 0 0 0 0 100 0x0]')
39 mm2mils100(-PinSpacing), \
41 mm2mils100(Thickness), \
42 mm2mils100(Clearance), \
50 mm2mils100(Thickness), \
51 mm2mils100(Clearance), \
57 mm2mils100(PinSpacing), \
59 mm2mils100(Thickness), \
60 mm2mils100(Clearance), \
68 mm2mils100(Thickness), \
69 mm2mils100(Clearance), \
76 mm2mils100(-MntY/2), \
77 mm2mils100(Thickness), \
78 mm2mils100(Clearance), \
84 mm2mils100(-MntX/2), \
86 mm2mils100(Thickness), \
87 mm2mils100(Clearance), \
93 mm2mils100(-MntX/2), \
94 mm2mils100(-MntY/2), \
95 mm2mils100(Thickness), \
96 mm2mils100(Clearance), \
101 print (' ElementLine[',\
102 mm2mils100(-BodyX/2), \
103 mm2mils100(-BodyY/2), \
104 mm2mils100(-BodyX/2), \
105 mm2mils100( BodyY/2), \
108 print (' ElementLine[',\
109 mm2mils100(-BodyX/2), \
110 mm2mils100(-BodyY/2), \
111 mm2mils100(BodyX/2), \
112 mm2mils100(- BodyY/2), \
115 print (' ElementLine[',\
116 mm2mils100(BodyX/2), \
117 mm2mils100(-BodyY/2), \
118 mm2mils100(BodyX/2), \
119 mm2mils100( BodyY/2), \
122 print (' ElementLine[',\
123 mm2mils100(-BodyX/2), \
124 mm2mils100(BodyY/2), \
125 mm2mils100(BodyX/2), \
126 mm2mils100(BodyY/2), \
129 print (' ElementLine[',\
130 mm2mils100(-ActuatorX/2), \
131 mm2mils100(BodyY/2 + ActuatorY), \
132 mm2mils100(ActuatorX/2), \
133 mm2mils100(BodyY/2 + ActuatorY), \
136 print (' ElementLine[',\
137 mm2mils100(-ActuatorX/2), \
138 mm2mils100(BodyY/2), \
139 mm2mils100(-ActuatorX/2), \
140 mm2mils100(BodyY/2 + ActuatorY), \
143 print (' ElementLine[',\
144 mm2mils100(ActuatorX/2), \
145 mm2mils100(BodyY/2), \
146 mm2mils100(ActuatorX/2), \
147 mm2mils100(BodyY/2 + ActuatorY), \