2 # Copyright 2016 by Bdale Garbee <bdale@gag.com>. GPLv3+
4 # Program to emit PCB footprint for Norcomp 182-YYY-113RYY1 connectors
5 # Male, right angle, 0.318 setback
7 # Needs pin count on command line, 9/15/25/37 are valid
10 # dimensions in mm from R182-YYY-213RYY1-1.pdf
25 # we're going to use the 1/100 of a mil fundamental unit form
27 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
29 pins = int(sys.argv[1])
44 sys.stderr.write('Valid pin counts are 9|15|25|37\n')
47 pinoffset = -(pins - 1) / 4 * PinSpacing
49 pinoffset += PinSpacing/2
51 print '# author: Bdale Garbee'
52 print '# email: bdale@gag.com'
53 print '# dist-license: GPL 3+'
54 print '# use-license: unlimited'
56 print 'Element[0x0 "DB%iM"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
58 for col in range ((pins+1)/2):
66 mm2mils100(-(pinnum-1)*PinSpacing-pinoffset), \
67 mm2mils100(RowSpacing/2), \
68 mm2mils100(PinDiam+ARing), \
69 mm2mils100(Clearance), \
70 mm2mils100(PinDiam+ARing+Clearance), \
71 mm2mils100(PinDiam), \
72 '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
74 pinnum = col + 1 + (pins+1)/2
78 mm2mils100(-(col)*PinSpacing-pinoffset-PinSpacing/2), \
79 mm2mils100(-RowSpacing/2), \
80 mm2mils100(PinDiam+ARing), \
81 mm2mils100(Clearance), \
82 mm2mils100(PinDiam+ARing+Clearance), \
83 mm2mils100(PinDiam), \
84 '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
92 mm2mils100(MntDiam+ARing), \
93 mm2mils100(Clearance), \
94 mm2mils100(MntDiam+ARing+Clearance), \
95 mm2mils100(MntDiam), \
96 '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
99 mm2mils100(-MntX/2), \
101 mm2mils100(MntDiam+ARing), \
102 mm2mils100(Clearance), \
103 mm2mils100(MntDiam+ARing+Clearance), \
104 mm2mils100(MntDiam), \
105 '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
107 print ' ElementLine[', \
108 mm2mils100(-BoxX/2), \
109 mm2mils100(-FaceY-RowSpacing/2), \
110 mm2mils100(BoxX/2), \
111 mm2mils100(-FaceY-RowSpacing/2), \
114 print ' ElementLine[', \
115 mm2mils100(-BoxX/2), \
116 mm2mils100(BoxY-FaceY-RowSpacing/2), \
117 mm2mils100(BoxX/2), \
118 mm2mils100(BoxY-FaceY-RowSpacing/2), \
121 print ' ElementLine[', \
122 mm2mils100(BoxX/2), \
123 mm2mils100(-FaceY-RowSpacing/2), \
124 mm2mils100(BoxX/2), \
125 mm2mils100(BoxY-FaceY-RowSpacing/2), \
128 print ' ElementLine[', \
129 mm2mils100(-BoxX/2), \
130 mm2mils100(-FaceY-RowSpacing/2), \
131 mm2mils100(-BoxX/2), \
132 mm2mils100(BoxY-FaceY-RowSpacing/2), \