2 # Copyright 2021 by Bdale Garbee <bdale@gag.com>. GPLv3
4 # Program to emit PCB footprint for Luna CDS Photoconductive Photocell
9 # dimensions in mm from PDV-P8103.pdf Luna Optoelectronics datasheet
11 HoleDiam = 0.5 # pins are 0.4mm, make hole large enough
15 FlatHalfLength = math.sqrt((BodyDiam / 2)**2 - (FlatSpacing / 2)**2)
16 ArcStart = 180 * math.atan((FlatSpacing/2)/FlatHalfLength)/math.pi
18 # we're going to use the 1/100 of a mil fundamental unit form
20 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
22 print('# author: Bdale Garbee')
23 print('# email: bdale@gag.com')
24 print('# dist-license: GPL 3')
25 print('# use-license: unlimited')
27 print('Element[0x0 "PDV-P8103" "" "" 0 0 0 0 0 100 0x0]')
30 mm2mils100(-HoleSpacing/2), \
32 mm2mils100(2.5*HoleDiam), \
34 mm2mils100(3*HoleDiam), \
35 mm2mils100(HoleDiam), \
39 mm2mils100(HoleSpacing/2), \
41 mm2mils100(2.5*HoleDiam), \
43 mm2mils100(3*HoleDiam), \
44 mm2mils100(HoleDiam), \
47 print(' ElementArc[',\
50 mm2mils100(BodyDiam/2), \
51 mm2mils100(BodyDiam/2), \
57 print(' ElementArc[',\
60 mm2mils100(BodyDiam/2), \
61 mm2mils100(BodyDiam/2), \
67 print(' ElementLine[',\
68 mm2mils100(-FlatHalfLength), \
69 mm2mils100(-FlatSpacing/2), \
70 mm2mils100(FlatHalfLength), \
71 mm2mils100(-FlatSpacing/2), \
75 print(' ElementLine[',\
76 mm2mils100(-FlatHalfLength), \
77 mm2mils100(FlatSpacing/2), \
78 mm2mils100(FlatHalfLength), \
79 mm2mils100(FlatSpacing/2), \