convert Python footprint generators to Python 3
[hw/altusmetrum] / packages / W3011A.py
1 #!/usr/bin/python3
2 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
3 #
4 # Program to emit PCB footprint for Pulse Electronics W3011A GPS chip antenna
5 #
6 #   dimensions in mm from W3011.pdf
7 PinWidth = 0.80
8 PinHeight = 0.65
9 PadHeight = 1.60
10 PinSpacing = 2.40
11 ClearWidth = 4.00
12 ClearHeight = 6.25
13
14 import sys
15
16 # we're going to use the 1/100 of a mil fundamental unit form
17 def mm2mils100( mm ):
18         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
19
20 print('# author: Bdale Garbee')
21 print('# email: bdale@gag.com')
22 print('# dist-license: GPL 3')
23 print('# use-license: unlimited')
24
25 print('Element[0x0 "W3011A" "" "" 0 0 0 0 0 100 0x0]')
26 print("(")
27 # pad 1 (signal trace)
28 print('   Pad[',\
29         mm2mils100(+PinSpacing/2+PinHeight/2), \
30         mm2mils100(1.60 - PinHeight/2), \
31         mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
32         mm2mils100(1.60 - PinHeight/2), \
33         mm2mils100(PinHeight), \
34         0, \
35         mm2mils100(PinHeight + 0.1), \
36         '"pin1" "1" 0x0100]')
37
38 print('   Pad[',\
39         mm2mils100(+PinSpacing/2+PinHeight/2), \
40         mm2mils100(PinHeight/2), \
41         mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
42         mm2mils100(PinHeight/2), \
43         mm2mils100(PinHeight), \
44         0, \
45         mm2mils100(PinHeight + 0.1), \
46         '"pin2" "2" 0x0100]')
47
48 print('   Pad[',\
49         mm2mils100(-PinSpacing/2-PinWidth/2), \
50         mm2mils100(PinWidth/2), \
51         mm2mils100(-PinSpacing/2-PinWidth/2), \
52         mm2mils100(PadHeight - PinWidth/2), \
53         mm2mils100(PinWidth), \
54         0, \
55         mm2mils100(PinWidth + 0.1), \
56         '"pin3" "3" 0x0100]')
57
58 print('   ElementLine[',\
59         mm2mils100(ClearWidth/2), \
60         mm2mils100(0), \
61         mm2mils100(ClearWidth/2), \
62         mm2mils100(ClearHeight), \
63         '1000 ]')
64
65 print('   ElementLine[',\
66         mm2mils100(-ClearWidth/2), \
67         mm2mils100(0), \
68         mm2mils100(-ClearWidth/2), \
69         mm2mils100(ClearHeight), \
70         '1000 ]')
71
72 print('   ElementLine[',\
73         mm2mils100(-ClearWidth/2-0.2), \
74         mm2mils100(0), \
75         mm2mils100(ClearWidth/2+0.2), \
76         mm2mils100(0), \
77         '1000 ]')
78
79 print('   ElementLine[',\
80         mm2mils100(-ClearWidth/2), \
81         mm2mils100(ClearHeight), \
82         mm2mils100(ClearWidth/2), \
83         mm2mils100(ClearHeight), \
84         '1000 ]')
85
86 print(")")