convert Python footprint generators to Python 3
[hw/altusmetrum] / packages / rpsma-th.py
1 #!/usr/bin/python3
2 # Copyright 2022 by Bdale Garbee <bdale@gag.com>.  GPLv3
3 #
4 # Program to emit PCB footprint for
5 #   Molex 0732519761, RP-SMA Connector Jack, Male Pin Through Hole Solder 
6 #
7 # dimensions in mm from molex/732519760.pdf
8
9 PinDiam = 1.27
10 PinSpacing = 2.54
11
12 MntDiam = 1.59
13 MntSpacing = 5.08
14
15 SilkDiam = 9.00
16
17 LineWidth = 600
18 ThicknessDelta = 1.0
19 Clearance = .32
20 MaskDelta = 0.32
21
22 import sys
23
24 # we're going to use the 1/100 of a mil fundamental unit form
25 def mm2mils100( mm ):
26         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
27
28 print('# author: Bdale Garbee')
29 print('# email: bdale@gag.com')
30 print('# dist-license: GPL 3+')
31 print('# use-license: unlimited')
32
33 print('Element[0x0 "RP-SMA" "" "" 0 0 0 0 0 100 0x0]')
34 print("(")
35
36 print('   Pin[', \
37         0, \
38         0, \
39         mm2mils100(PinDiam+ThicknessDelta), \
40         mm2mils100(Clearance), \
41         mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
42         mm2mils100(PinDiam), \
43         '"1"', \
44         '"1"', \
45         "0x0001", ']')
46
47 print('   Pin[', \
48         mm2mils100(MntSpacing/2), \
49         mm2mils100(MntSpacing/2), \
50         mm2mils100(MntDiam+ThicknessDelta), \
51         mm2mils100(Clearance), \
52         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
53         mm2mils100(MntDiam), \
54         '"GND"', \
55         '"2"', \
56         "0x0001", ']')
57
58 print('   Pin[', \
59         mm2mils100(-MntSpacing/2), \
60         mm2mils100(MntSpacing/2), \
61         mm2mils100(MntDiam+ThicknessDelta), \
62         mm2mils100(Clearance), \
63         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
64         mm2mils100(MntDiam), \
65         '"GND"', \
66         '"2"', \
67         "0x0001", ']')
68
69 print('   Pin[', \
70         mm2mils100(MntSpacing/2), \
71         mm2mils100(-MntSpacing/2), \
72         mm2mils100(MntDiam+ThicknessDelta), \
73         mm2mils100(Clearance), \
74         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
75         mm2mils100(MntDiam), \
76         '"GND"', \
77         '"2"', \
78         "0x0001", ']')
79
80 print('   Pin[', \
81         mm2mils100(-MntSpacing/2), \
82         mm2mils100(-MntSpacing/2), \
83         mm2mils100(MntDiam+ThicknessDelta), \
84         mm2mils100(Clearance), \
85         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
86         mm2mils100(MntDiam), \
87         '"GND"', \
88         '"2"', \
89         "0x0001", ']')
90
91 print('   ElementArc[',\
92         0, \
93         0, \
94         mm2mils100(SilkDiam/2), \
95         mm2mils100(SilkDiam/2), \
96         0, \
97         360, \
98         LineWidth, \
99         ']')
100
101 print(")")