2 # Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
4 # Program to emit PCB footprint for
5 # JST PH series 2mm vertical entry through-hole (shrouded) connectors
7 # Needs pin count on command line, in range of 2..15
10 # dimensions in mm from ePH.pdf datasheet
13 RowOffset = (4.5 - 1.7)
23 # we're going to use the 1/100 of a mil fundamental unit form
25 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
27 pins = int(sys.argv[1])
29 sys.stderr.write('Must be at least 2 pins\n')
32 sys.stderr.write('Must be no more than 15 pins\n')
35 print('# author: Bdale Garbee')
36 print('# email: bdale@gag.com')
37 print('# dist-license: GPL 2')
38 print('# use-license: unlimited')
40 print('Element[0x0 "B%iB-PH"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
42 for pin in range (1,pins+1):
43 pinnum = pins + 1 - pin
49 mm2mils100(BoxEnd + (pin-1)*PinSpacing), \
50 mm2mils100(RowOffset), \
51 mm2mils100(Thickness), \
52 mm2mils100(Clearance), \
54 mm2mils100(PinDiam), \
55 '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
57 BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
59 print(' ElementLine[', \
63 mm2mils100(BoxHeight), \
66 print(' ElementLine[', \
68 mm2mils100(BoxHeight), \
69 mm2mils100(BoxWidth), \
70 mm2mils100(BoxHeight), \
73 print(' ElementLine[', \
74 mm2mils100(BoxWidth), \
75 mm2mils100(BoxHeight), \
76 mm2mils100(BoxWidth), \
80 print(' ElementLine[', \
81 mm2mils100(BoxWidth), \