2 # Copyright 2022 by Bdale Garbee <bdale@gag.com>. GPLv3
4 # Program to emit PCB footprint for
5 # CviLux CU01SAV1S00 USB Type-A Single Port Straight Connector
7 # dimensions in mm from cvilux/CU0112S.pdf
20 BoxY = 5.12 # this is the core box, not including lips, etc
29 # we're going to use the 1/100 of a mil fundamental unit form
31 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
33 print('# author: Bdale Garbee')
34 print('# email: bdale@gag.com')
35 print('# dist-license: GPL 3')
36 print('# use-license: unlimited')
38 print('Element[0x0 "CU01SAV" "" "" 0 0 0 0 0 100 0x0]')
42 mm2mils100(-OuterSpacing/2), \
44 mm2mils100(PinDiam+ThicknessDelta/2), \
45 mm2mils100(Clearance), \
46 mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \
47 mm2mils100(PinDiam), \
53 mm2mils100(-InnerSpacing/2), \
55 mm2mils100(PinDiam+ThicknessDelta/2), \
56 mm2mils100(Clearance), \
57 mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \
58 mm2mils100(PinDiam), \
64 mm2mils100(InnerSpacing/2), \
66 mm2mils100(PinDiam+ThicknessDelta/2), \
67 mm2mils100(Clearance), \
68 mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \
69 mm2mils100(PinDiam), \
75 mm2mils100(OuterSpacing/2), \
77 mm2mils100(PinDiam+ThicknessDelta/2), \
78 mm2mils100(Clearance), \
79 mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \
80 mm2mils100(PinDiam), \
85 # ground the mounting tab holes, which means pin 4 since this is a USB A
87 mm2mils100(-MntSpacing/2), \
88 mm2mils100(Pin2Mnt), \
89 mm2mils100(MntDiam+ThicknessDelta), \
90 mm2mils100(Clearance), \
91 mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
92 mm2mils100(MntDiam), \
98 mm2mils100(MntSpacing/2), \
99 mm2mils100(Pin2Mnt), \
100 mm2mils100(MntDiam+ThicknessDelta), \
101 mm2mils100(Clearance), \
102 mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
103 mm2mils100(MntDiam), \
109 print(' ElementLine[', \
110 mm2mils100(BoxX/2), \
111 mm2mils100(-Pin2Box), \
112 mm2mils100(BoxX/2), \
113 mm2mils100(-Pin2Box+BoxY), \
116 print(' ElementLine[', \
117 mm2mils100(-BoxX/2), \
118 mm2mils100(-Pin2Box), \
119 mm2mils100(-BoxX/2), \
120 mm2mils100(-Pin2Box+BoxY), \
123 print(' ElementLine[', \
124 mm2mils100(-BoxX/2), \
125 mm2mils100(-Pin2Box), \
126 mm2mils100(+BoxX/2), \
127 mm2mils100(-Pin2Box), \
130 print(' ElementLine[', \
131 mm2mils100(-BoxX/2), \
132 mm2mils100(-Pin2Box+BoxY), \
133 mm2mils100(+BoxX/2), \
134 mm2mils100(-Pin2Box+BoxY), \