f086a30793cd0ca0bba2e3565a0e4ebf38f69767
[hw/altusmetrum] / packages / te-connectivity / bnc-th.py
1 #!/usr/bin/python2
2 # Copyright 2017 by Bdale Garbee <bdale@gag.com>.  GPLv2+
3 #
4 # Program to emit PCB footprint for
5 #   TE Connectivity (AMP) through-hole BNC connectors 5227673 & 5227677
6 #
7 #   This footprint is meant to allow the right-angle connector to be installed
8 #   on the "top" surface of the board, and the straight connector to be 
9 #   installed on the top or bottom of the board.
10 #
11 # dimensions in mm from ENG_CD_5227673_A.pdf & ENG_CD_5227677_A1.pdf
12
13 PinDiam = 0.89
14 PinSpacing = 2.54
15
16 MntDiam = 2.01
17 MntSpacing = 10.16
18 Mnt2Edge = 7.75
19
20 SilkBox = 14.76
21
22 LineWidth = 600
23 ThicknessDelta = 1.0
24 Clearance = .32
25 MaskDelta = 0.32
26
27 import sys
28
29 # we're going to use the 1/100 of a mil fundamental unit form
30 def mm2mils100( mm ):
31         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
32
33 print '# author: Bdale Garbee'
34 print '# email: bdale@gag.com'
35 print '# dist-license: GPL 2+'
36 print '# use-license: unlimited'
37
38 print 'Element[0x0 "AMP BNC" "" "" 0 0 0 0 0 100 0x0]'
39 print "("
40
41 print '   Pin[', \
42         0, \
43         0, \
44         mm2mils100(PinDiam+ThicknessDelta), \
45         mm2mils100(Clearance), \
46         mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
47         mm2mils100(PinDiam), \
48         '"1"', \
49         '"1"', \
50         "0x0001", ']'
51
52 print '   Pin[', \
53         0, \
54         mm2mils100(-PinSpacing), \
55         mm2mils100(PinDiam+ThicknessDelta), \
56         mm2mils100(Clearance), \
57         mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
58         mm2mils100(PinDiam), \
59         '"GND"', \
60         '"2"', \
61         "0x0001", ']'
62
63 print '   Pin[', \
64         mm2mils100(MntSpacing/2), \
65         mm2mils100(MntSpacing/2), \
66         mm2mils100(MntDiam+ThicknessDelta), \
67         mm2mils100(Clearance), \
68         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
69         mm2mils100(MntDiam), \
70         '"GND"', \
71         '"2"', \
72         "0x0001", ']'
73
74 print '   Pin[', \
75         mm2mils100(-MntSpacing/2), \
76         mm2mils100(MntSpacing/2), \
77         mm2mils100(MntDiam+ThicknessDelta), \
78         mm2mils100(Clearance), \
79         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
80         mm2mils100(MntDiam), \
81         '"GND"', \
82         '"2"', \
83         "0x0001", ']'
84
85 print '   Pin[', \
86         mm2mils100(MntSpacing/2), \
87         mm2mils100(-MntSpacing/2), \
88         mm2mils100(MntDiam+ThicknessDelta), \
89         mm2mils100(Clearance), \
90         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
91         mm2mils100(MntDiam), \
92         '"GND"', \
93         '"2"', \
94         "0x0001", ']'
95
96 print '   Pin[', \
97         mm2mils100(-MntSpacing/2), \
98         mm2mils100(-MntSpacing/2), \
99         mm2mils100(MntDiam+ThicknessDelta), \
100         mm2mils100(Clearance), \
101         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
102         mm2mils100(MntDiam), \
103         '"GND"', \
104         '"2"', \
105         "0x0001", ']'
106
107
108 print '   ElementLine[', \
109         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
110         mm2mils100(SilkBox/2), \
111         mm2mils100(MntSpacing/2+Mnt2Edge), \
112         mm2mils100(SilkBox/2), \
113         LineWidth, ']'
114
115 print '   ElementLine[', \
116         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
117         mm2mils100(-SilkBox/2), \
118         mm2mils100(MntSpacing/2+Mnt2Edge), \
119         mm2mils100(-SilkBox/2), \
120         LineWidth, ']'
121
122 print '   ElementLine[', \
123         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
124         mm2mils100(SilkBox/2), \
125         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
126         mm2mils100(-SilkBox/2), \
127         LineWidth, ']'
128
129 print '   ElementLine[', \
130         mm2mils100(MntSpacing/2+Mnt2Edge), \
131         mm2mils100(SilkBox/2), \
132         mm2mils100(MntSpacing/2+Mnt2Edge), \
133         mm2mils100(-SilkBox/2), \
134         LineWidth, ']'
135
136 print ")"