X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=packages%2Fswitches%2FSK12F17.py;fp=packages%2Fswitches%2FSK12F17.py;h=50bf21b202ab046936eebebac828b03567f5d679;hb=ed68b0e7cd37ebd3530bd650ffa883eff793e252;hp=0000000000000000000000000000000000000000;hpb=f7ebd35519a6796d74b60a59ac0c0d6259c234f7;p=hw%2Faltusmetrum diff --git a/packages/switches/SK12F17.py b/packages/switches/SK12F17.py new file mode 100755 index 0000000..50bf21b --- /dev/null +++ b/packages/switches/SK12F17.py @@ -0,0 +1,150 @@ +#!/usr/bin/python3 +# Copyright 2020 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for TDK beeper +# + +# dimensions in mm from SK-12F17-G.pdf +BodyX = 15 +BodyY = 5.6 +ActuatorX = 4 +ActuatorY = 7 + +MntX = 14 +MntY = 5 +PinSpacing = 3.00 + +Drill = 1.1 # diameter of drill hole +Thickness = 2 # outer diameter of copper annulus +Clearance = 1 # delta in diameter above Thickness for plane clearance +Mask = 2.2 # mask opening diameter + +SilkWidth = 10 # in units of 1/1000 inch +SilkNative = SilkWidth * 100 + +import sys + +# we're going to use the 1/100 of a mil fundamental unit form +def mm2mils100( mm ): + return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 ) + +print ('# author: Bdale Garbee') +print ('# email: bdale@gag.com') +print ('# dist-license: GPL 3') +print ('# use-license: unlimited') + +print ('Element[0x0 "SK-12F17" "" "" 0 0 0 0 0 100 0x0]') +print ("(") +print (' Pin[',\ + mm2mils100(-PinSpacing), \ + 0, \ + mm2mils100(Thickness), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + mm2mils100(Drill), \ + '"pin1" "1" 0x0101]') + +print (' Pin[',\ + 0, \ + 0, \ + mm2mils100(Thickness), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + mm2mils100(Drill), \ + '"pin2" "2" 0x0001]') + +print (' Pin[',\ + mm2mils100(PinSpacing), \ + 0, \ + mm2mils100(Thickness), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + mm2mils100(Drill), \ + '"pin3" "3" 0x0001]') + +print (' Pin[',\ + mm2mils100(MntX/2), \ + mm2mils100(MntY/2), \ + mm2mils100(Thickness), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + mm2mils100(Drill), \ + '"GND" "G" 0x0001]') + +print (' Pin[',\ + mm2mils100(MntX/2), \ + mm2mils100(-MntY/2), \ + mm2mils100(Thickness), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + mm2mils100(Drill), \ + '"GND" "G" 0x0001]') + +print (' Pin[',\ + mm2mils100(-MntX/2), \ + mm2mils100(MntY/2), \ + mm2mils100(Thickness), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + mm2mils100(Drill), \ + '"GND" "G" 0x0001]') + +print (' Pin[',\ + mm2mils100(-MntX/2), \ + mm2mils100(-MntY/2), \ + mm2mils100(Thickness), \ + mm2mils100(Clearance), \ + mm2mils100(Mask), \ + mm2mils100(Drill), \ + '"GND" "G" 0x0001]') + +print (' ElementLine[',\ + mm2mils100(-BodyX/2), \ + mm2mils100(-BodyY/2), \ + mm2mils100(-BodyX/2), \ + mm2mils100( BodyY/2), \ + SilkNative, ' ]') + +print (' ElementLine[',\ + mm2mils100(-BodyX/2), \ + mm2mils100(-BodyY/2), \ + mm2mils100(BodyX/2), \ + mm2mils100(- BodyY/2), \ + SilkNative, ' ]') + +print (' ElementLine[',\ + mm2mils100(BodyX/2), \ + mm2mils100(-BodyY/2), \ + mm2mils100(BodyX/2), \ + mm2mils100( BodyY/2), \ + SilkNative, ' ]') + +print (' ElementLine[',\ + mm2mils100(-BodyX/2), \ + mm2mils100(BodyY/2), \ + mm2mils100(BodyX/2), \ + mm2mils100(BodyY/2), \ + SilkNative, ' ]') + +print (' ElementLine[',\ + mm2mils100(-ActuatorX/2), \ + mm2mils100(BodyY/2 + ActuatorY), \ + mm2mils100(ActuatorX/2), \ + mm2mils100(BodyY/2 + ActuatorY), \ + SilkNative, ' ]') + +print (' ElementLine[',\ + mm2mils100(-ActuatorX/2), \ + mm2mils100(BodyY/2), \ + mm2mils100(-ActuatorX/2), \ + mm2mils100(BodyY/2 + ActuatorY), \ + SilkNative, ' ]') + +print (' ElementLine[',\ + mm2mils100(ActuatorX/2), \ + mm2mils100(BodyY/2), \ + mm2mils100(ActuatorX/2), \ + mm2mils100(BodyY/2 + ActuatorY), \ + SilkNative, ' ]') + +print (")")