2cbdd4f869321fe76c0c47c0e6f4992093e6e0a2
[hw/altusmetrum] / packages / switches / PNswitchDPDT.py
1 #!/usr/bin/python2
2 # Copyright 2010 by Bdale Garbee <bdale@gag.com>.  GPLv2
3 #
4 # Program to emit PCB footprint for C&K PN22SJNA03QE DPDT switch
5 #
6
7 # dimensions in mm from footprint drawing at DigiKey
8 BodyWidth = 12                  # body outline
9 BodyHeight = 6.8
10 PinSpace = 2.49
11 PinDiam = 0.89
12 MntWidth = 11.40
13 MntHeight = 4.19
14 MntDiam = 1.50
15
16 import sys
17
18 # we're going to use the 1/100 of a mil fundamental unit form
19 def mm2mils100( mm ):
20         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
21
22 print '# author: Bdale Garbee'
23 print '# email: bdale@gag.com'
24 print '# dist-license: GPL 2'
25 print '# use-license: unlimited'
26
27 print 'Element[0x0 "PN22SJNA03QE" "" "" 0 0 0 0 0 100 0x0]'
28 print "("
29 print '   Pin[',\
30         mm2mils100(-PinSpace), \
31         mm2mils100(-PinSpace/2), \
32         mm2mils100(2), \
33         mm2mils100(1), \
34         mm2mils100(2.2), \
35         mm2mils100(PinDiam), \
36         '"pin1" "1" 0x0101]'
37
38 print '   Pin[',\
39         mm2mils100(0), \
40         mm2mils100(-PinSpace/2), \
41         mm2mils100(2), \
42         mm2mils100(1), \
43         mm2mils100(2.2), \
44         mm2mils100(PinDiam), \
45         '"pin2" "2" 0x0001]'
46
47 print '   Pin[',\
48         mm2mils100(PinSpace), \
49         mm2mils100(-PinSpace/2), \
50         mm2mils100(2), \
51         mm2mils100(1), \
52         mm2mils100(2.2), \
53         mm2mils100(PinDiam), \
54         '"pin3" "3" 0x0001]'
55
56 print '   Pin[',\
57         mm2mils100(PinSpace), \
58         mm2mils100(PinSpace/2), \
59         mm2mils100(2), \
60         mm2mils100(1), \
61         mm2mils100(2.2), \
62         mm2mils100(PinDiam), \
63         '"pin6" "6" 0x0001]'
64
65 print '   Pin[',\
66         mm2mils100(0), \
67         mm2mils100(PinSpace/2), \
68         mm2mils100(2), \
69         mm2mils100(1), \
70         mm2mils100(2.2), \
71         mm2mils100(PinDiam), \
72         '"pin5" "5" 0x0001]'
73
74 print '   Pin[',\
75         mm2mils100(-PinSpace), \
76         mm2mils100(PinSpace/2), \
77         mm2mils100(2), \
78         mm2mils100(1), \
79         mm2mils100(2.2), \
80         mm2mils100(PinDiam), \
81         '"pin4" "4" 0x0001]'
82
83 print '   Pin[',\
84         mm2mils100(-MntWidth/2), \
85         mm2mils100(MntHeight/2), \
86         mm2mils100(2), \
87         mm2mils100(1), \
88         mm2mils100(2.2), \
89         mm2mils100(MntDiam), \
90         '"pin7" "G" 0x0001]'
91
92 print '   Pin[',\
93         mm2mils100(MntWidth/2), \
94         mm2mils100(-MntHeight/2), \
95         mm2mils100(2), \
96         mm2mils100(1), \
97         mm2mils100(2.2), \
98         mm2mils100(MntDiam), \
99         '"pin8" "G" 0x0001]'
100
101 print '   ElementLine[',\
102         -mm2mils100(BodyWidth/2), \
103         -mm2mils100(BodyHeight/2), \
104         mm2mils100(BodyWidth/2), \
105         -mm2mils100(BodyHeight/2), \
106         500, \
107         ']'
108 print '   ElementLine[',\
109         -mm2mils100(BodyWidth/2), \
110         -mm2mils100(BodyHeight/2), \
111         -mm2mils100(BodyWidth/2), \
112         mm2mils100(BodyHeight/2), \
113         500, \
114         ']'
115 print '   ElementLine[',\
116         -mm2mils100(BodyWidth/2), \
117         mm2mils100(BodyHeight/2), \
118         mm2mils100(BodyWidth/2), \
119         mm2mils100(BodyHeight/2), \
120         500, \
121         ']'
122 print '   ElementLine[',\
123         mm2mils100(BodyWidth/2), \
124         mm2mils100(BodyHeight/2), \
125         mm2mils100(BodyWidth/2), \
126         -mm2mils100(BodyHeight/2), \
127         500, \
128         ']'
129
130 print ")"