add switch symbol and footprint for lipocharger
[hw/bdale] / pkg / newlib / PCM12SMTR.py
1 #!/usr/bin/python
2 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
3 #
4 # Program to emit PCB footprint for C&K PCM12SMTR SPDT switch
5 #
6
7 # dimensions in mm from C&K datasheet
8 PinHeight = 1.5
9 PinWidth = 0.7
10 Pin12 = 3.0
11 Pin23 = 1.5
12 Pin2Offset = 0.75
13 PinBase = 1.0
14
15 PadHeight = 0.8
16 PadWidth = 1.0
17 HSpacing = 1.4
18 WSpacing = 6.3
19
20 HoleSize = 0.9
21 HoleSpacing = 3.0
22
23 import sys
24
25 # we're going to use the 1/100 of a mil fundamental unit form
26 def mm2mils100( mm ):
27         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
28
29 print '# author: Bdale Garbee'
30 print '# email: bdale@gag.com'
31 print '# dist-license: GPL 2'
32 print '# use-license: unlimited'
33
34 print 'Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]'
35 print "("
36 print '   Pad[',\
37         mm2mils100(WSpacing/2 + PadHeight/2), \
38         mm2mils100(-HSpacing/2 - PadHeight/2), \
39         mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
40         mm2mils100(-HSpacing/2 - PadHeight/2), \
41         mm2mils100(PadHeight), \
42         mm2mils100(WSpacing - PadWidth), \
43         mm2mils100(PadWidth)+600, \
44         '"mnt" "M" 0x0100]'
45
46 print '   Pad[',\
47         mm2mils100(WSpacing/2 + PadHeight/2), \
48         mm2mils100(HSpacing/2 + PadHeight/2), \
49         mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
50         mm2mils100(HSpacing/2 + PadHeight/2), \
51         mm2mils100(PadHeight), \
52         mm2mils100(WSpacing - PadWidth), \
53         mm2mils100(PadWidth)+600, \
54         '"mnt" "M" 0x0100]'
55
56 print '   Pad[',\
57         mm2mils100(-WSpacing/2 - PadHeight/2), \
58         mm2mils100(HSpacing/2 + PadHeight/2), \
59         mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
60         mm2mils100(HSpacing/2 + PadHeight/2), \
61         mm2mils100(PadHeight), \
62         mm2mils100(WSpacing - PadWidth), \
63         mm2mils100(PadWidth)+600, \
64         '"mnt" "M" 0x0100]'
65
66 print '   Pad[',\
67         mm2mils100(-WSpacing/2 - PadHeight/2), \
68         mm2mils100(-HSpacing/2 - PadHeight/2), \
69         mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
70         mm2mils100(-HSpacing/2 - PadHeight/2), \
71         mm2mils100(PadHeight), \
72         mm2mils100(WSpacing - PadWidth), \
73         mm2mils100(PadWidth)+600, \
74         '"mnt" "M" 0x0100]'
75
76 print '   Pin[',\
77         mm2mils100(-HoleSpacing/2), \
78         mm2mils100(0), \
79         mm2mils100(HoleSize+0.3556), \
80         mm2mils100(0.31), \
81         mm2mils100(HoleSize+0.66), \
82         mm2mils100(HoleSize), \
83         '"mnt" "G" 0x0000]'
84
85 print '   Pin[',\
86         mm2mils100(HoleSpacing/2), \
87         mm2mils100(0), \
88         mm2mils100(HoleSize+0.3556), \
89         mm2mils100(0.31), \
90         mm2mils100(HoleSize+0.66), \
91         mm2mils100(HoleSize), \
92         '"mnt" "G" 0x0000]'
93
94 print '   Pad[',\
95         mm2mils100(Pin2Offset - Pin12), \
96         mm2mils100(- PinBase - (PinWidth/2)), \
97         mm2mils100(Pin2Offset - Pin12), \
98         mm2mils100(- PinBase - PinHeight + (PinWidth/2)), \
99         mm2mils100(PinWidth), \
100         mm2mils100(.1524), \
101         mm2mils100(PinWidth + .1524), \
102         '"pin1" "1" 0x0100]'
103
104 print '   Pad[',\
105         mm2mils100(Pin2Offset), \
106         mm2mils100(- PinBase - (PinWidth/2)), \
107         mm2mils100(Pin2Offset), \
108         mm2mils100(- PinBase - PinHeight + (PinWidth/2)), \
109         mm2mils100(PinWidth), \
110         mm2mils100(.1524), \
111         mm2mils100(PinWidth + .1524), \
112         '"pin2" "2" 0x0100]'
113
114 print '   Pad[',\
115         mm2mils100(Pin2Offset + Pin23), \
116         mm2mils100(- PinBase - (PinWidth/2)), \
117         mm2mils100(Pin2Offset + Pin23), \
118         mm2mils100(- PinBase - PinHeight + (PinWidth/2)), \
119         mm2mils100(PinWidth), \
120         mm2mils100(.1524), \
121         mm2mils100(PinWidth + .1524), \
122         '"pin3" "3" 0x0100]'
123
124
125 print ")"