From 7ceb133c097373a7368e5f5f6c37b2b2046778f0 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sun, 31 Oct 2021 20:24:03 -0600 Subject: [PATCH] add footprint generator for TI WSON-6 comparators --- packages/DSE0006A.py | 97 ++++++++++++++++++++++++++++++++++++++++++++ packages/Makefile | 3 +- 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100755 packages/DSE0006A.py diff --git a/packages/DSE0006A.py b/packages/DSE0006A.py new file mode 100755 index 0000000..ef86325 --- /dev/null +++ b/packages/DSE0006A.py @@ -0,0 +1,97 @@ +#!/usr/bin/python3 +# Copyright 2021 by Bdale Garbee . GPLv3 +# +# Program to emit PCB WSON-6 footprint for TI TLV6703 comparators, et al +# + +# dimensions in mm from TLV6703 datasheet + +BodyWidth = 1.5 +BodyHeight = 1.5 + +PinWidth = 0.25 +Pin1Height = 0.8 +PinHeight = 0.7 +PinSpacing = 0.5 +RowCenters = 1.6 +RowSpacing = RowCenters - PinHeight + +import sys + +# we're going to use the 1/100 of a mil fundamental unit form +def mm2mils100( mm ): + return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 ) + +print ('# author: Bdale Garbee') +print ('# email: bdale@gag.com') +print ('# dist-license: GPL 3') +print ('# use-license: unlimited') + +print ('Element[0x0 "DSE0006A" "" "" 0 0 -10161 -12011 0 100 0x0]') +print ("(") +for pin in range (0,3): + print (' Pad[',\ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinWidth/2)), \ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (6 - pin), '"%i"' % (6 - pin), '0x0100]') + + if (pin == 0): + print (' Pad[',\ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinWidth/2 - (Pin1Height - PinHeight)), \ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]') + else: + print (' Pad[',\ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinWidth/2), \ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]') + +#print (' ElementLine[',\ +# mm2mils100(-BodyHeight/2), \ +# mm2mils100(-BodyWidth/2), \ +# mm2mils100(-BodyHeight/2), \ +# mm2mils100( BodyWidth/2), \ +# '1000 ]') +# +#print (' ElementLine[',\ +# mm2mils100(-BodyHeight/2), \ +# mm2mils100( BodyWidth/2), \ +# mm2mils100( BodyHeight/2), \ +# mm2mils100( BodyWidth/2), \ +# '1000 ]') +# +#print (' ElementLine[',\ +# mm2mils100( BodyHeight/2), \ +# mm2mils100( BodyWidth/2), \ +# mm2mils100( BodyHeight/2), \ +# mm2mils100(-BodyWidth/2), \ +# '1000 ]') +# +#print (' ElementLine[',\ +# mm2mils100( BodyHeight/2), \ +# mm2mils100(-BodyWidth/2), \ +# mm2mils100(-BodyHeight/2), \ +# mm2mils100(-BodyWidth/2), \ +# '1000 ]') +# +#print (' ElementArc[',\ +# mm2mils100(-2 * PinSpacing), \ +# mm2mils100(1.25 * RowSpacing), \ +# '500 500 0 360 1000 ]') + +print (")") diff --git a/packages/Makefile b/packages/Makefile index 278ee79..b7fcc63 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -151,7 +151,8 @@ FOOTPRINTS= \ RHB0032E.fp \ udfn8.fp \ PDV-P8103.fp \ - SJ-352X-SMT.fp + SJ-352X-SMT.fp \ + DSE0006A.fp .5c.fp: nickle $*.5c -o $@ -- 2.47.2