convert Python footprint generators to Python 3
[hw/altusmetrum] / packages / switches / PNswitchDPDT.py
1 #!/usr/bin/python3
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(")")