fix silk minimum dimension
[hw/bdale] / pkg / newlib / SKQU.py
1 #!/usr/bin/python
2 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
3 #
4 # Program to emit PCB footprint for ALPS SKQU Series 4-direction switch
5 #
6
7 # dimensions in mm from abm8.pdf Abracon datasheet
8 BodySquare = 10                 # body outline
9 Column = 10.3                   # space between pin columns
10 Row = 6.5                       # space between top and bottom pin rows
11 Offset = 0.45                   # offset of middle row below center line
12 BigPin = 1.2                    # hole diameter for big pins
13 SmallPin = 1.0                  # hole diameter for small pins
14
15 import sys
16
17 # we're going to use the 1/100 of a mil fundamental unit form
18 def mm2mils100( mm ):
19         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
20
21 print '# author: Bdale Garbee'
22 print '# email: bdale@gag.com'
23 print '# dist-license: GPL 2'
24 print '# use-license: unlimited'
25
26 print 'Element[0x0 "SKQU" "" "" 0 0 0 0 0 100 0x0]'
27 print "("
28 print '   Pin[',\
29         mm2mils100(-Column/2), \
30         mm2mils100(-Row/2), \
31         mm2mils100(2), \
32         mm2mils100(1), \
33         mm2mils100(2.2), \
34         mm2mils100(BigPin), \
35         '"pin1" "1" 0x0101]'
36
37 print '   Pin[',\
38         mm2mils100(-Column/2), \
39         mm2mils100(Offset), \
40         mm2mils100(2), \
41         mm2mils100(1), \
42         mm2mils100(2.2), \
43         mm2mils100(SmallPin), \
44         '"pin2" "2" 0x0001]'
45
46 print '   Pin[',\
47         mm2mils100(-Column/2), \
48         mm2mils100(Row/2), \
49         mm2mils100(2), \
50         mm2mils100(1), \
51         mm2mils100(2.2), \
52         mm2mils100(BigPin), \
53         '"pin3" "3" 0x0001]'
54
55 print '   Pin[',\
56         mm2mils100(Column/2), \
57         mm2mils100(-Row/2), \
58         mm2mils100(2), \
59         mm2mils100(1), \
60         mm2mils100(2.2), \
61         mm2mils100(BigPin), \
62         '"pin6" "6" 0x0001]'
63
64 print '   Pin[',\
65         mm2mils100(Column/2), \
66         mm2mils100(Offset), \
67         mm2mils100(2), \
68         mm2mils100(1), \
69         mm2mils100(2.2), \
70         mm2mils100(SmallPin), \
71         '"pin5" "5" 0x0001]'
72
73 print '   Pin[',\
74         mm2mils100(Column/2), \
75         mm2mils100(Row/2), \
76         mm2mils100(2), \
77         mm2mils100(1), \
78         mm2mils100(2.2), \
79         mm2mils100(BigPin), \
80         '"pin4" "4" 0x0001]'
81
82 print '   ElementLine[',\
83         -mm2mils100(BodySquare/2), \
84         -mm2mils100(BodySquare/2), \
85         mm2mils100(BodySquare/2), \
86         -mm2mils100(BodySquare/2), \
87         500, \
88         ']'
89 print '   ElementLine[',\
90         -mm2mils100(BodySquare/2), \
91         -mm2mils100(BodySquare/2), \
92         -mm2mils100(BodySquare/2), \
93         mm2mils100(BodySquare/2), \
94         500, \
95         ']'
96 print '   ElementLine[',\
97         -mm2mils100(BodySquare/2), \
98         mm2mils100(BodySquare/2), \
99         mm2mils100(BodySquare/2), \
100         mm2mils100(BodySquare/2), \
101         500, \
102         ']'
103 print '   ElementLine[',\
104         mm2mils100(BodySquare/2), \
105         mm2mils100(BodySquare/2), \
106         mm2mils100(BodySquare/2), \
107         -mm2mils100(BodySquare/2), \
108         500, \
109         ']'
110
111 print '   ElementArc[',\
112         0, \
113         0, \
114         mm2mils100(6.5/2), \
115         mm2mils100(6.5/2), \
116         0, \
117         360, \
118         500, \
119         ']'
120
121 print ")"