X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=packages%2Fwqfn-16.py;h=00202aa4cda7878bf67e31108ca59b606320b82d;hb=cfcd84421c358ea244e90d4628632713b6f5817a;hp=f8208db16767fbb6205b8b890b9fed13eef65b62;hpb=32abc7d525bd069645468c1c6fee4ec23f450d65;p=hw%2Faltusmetrum diff --git a/packages/wqfn-16.py b/packages/wqfn-16.py old mode 100644 new mode 100755 index f8208db..00202aa --- a/packages/wqfn-16.py +++ b/packages/wqfn-16.py @@ -1,6 +1,7 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright 2011 by Bdale Garbee . GPLv2 # Copyright 2019 by Keith Packard . GPLv2+ +# Copyright 2024 by Bdale Garbee . GPLv3 # # Program to emit PCB footprint for WQFN-16 package used by the DRV8800 # @@ -27,16 +28,16 @@ import sys def mm2mils100( mm ): return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 ) -print '# author: Keith Packard' -print '# email: keithp@keithp.com' -print '# dist-license: GPL 2' -print '# use-license: unlimited' +print('# author: Keith Packard') +print('# email: keithp@keithp.com') +print('# dist-license: GPL 3') +print('# use-license: unlimited') -print 'Element[0x0 "qfn-16" "" "" 0 0 0 0 0 100 0x0]' -print "(" +print('Element[0x0 "qfn-16" "" "" 0 0 0 0 0 100 0x0]') +print("(") # pad under the chip, must be grounded -print ' Pad[',\ +print(' Pad[',\ mm2mils100(0), \ mm2mils100(0), \ mm2mils100(0), \ @@ -44,19 +45,19 @@ print ' Pad[',\ mm2mils100(GndSquare), \ mm2mils100(PinClearance), \ mm2mils100(PinResist), \ - '"pin17" "17" "square,nopaste"]' + '"pin17" "17" "square,nopaste"]') # vias in the ground pad under the chip for viarow in range (-1,1): for viacol in range (-1,1): - print ' Pin[',\ + print(' Pin[',\ mm2mils100(1.8 * viacol * CoreSquare / 3 + .9 * CoreSquare/3), \ mm2mils100(1.8 * viarow * CoreSquare / 3 + .9 * CoreSquare/3), \ 2600, \ 2500, \ 0, \ 1300, \ - '"pin17" "17" 0x0002]' + '"pin17" "17" 0x0002]') # break pad under chip into a grid to control the resist and paste masks @@ -66,7 +67,7 @@ for viarow in range (-1, 2): for viacol in range (-1, 2): if (viarow in (-1, 1)) and (viacol in (-1, 1)): # copper sub-square with resist over vias - print ' Pad[',\ + print(' Pad[',\ mm2mils100(viacol * CoreSquare / blocks), \ mm2mils100(viarow * CoreSquare / blocks), \ mm2mils100(viacol * CoreSquare / blocks), \ @@ -74,10 +75,10 @@ for viarow in range (-1, 2): mm2mils100((CoreSquare)/blocks), \ 0, \ 0, \ - '"pin17" "17" "square,nopaste"]' + '"pin17" "17" "square,nopaste"]') else: # copper sub-square without resist - print ' Pad[',\ + print(' Pad[',\ mm2mils100(viacol * CoreSquare / blocks), \ mm2mils100(viarow * CoreSquare / blocks), \ mm2mils100(viacol * CoreSquare / blocks), \ @@ -85,9 +86,9 @@ for viarow in range (-1, 2): mm2mils100((CoreSquare)/blocks), \ 0, \ mm2mils100((CoreSquare)/blocks), \ - '"pin17" "17" "square,nopaste"]' + '"pin17" "17" "square,nopaste"]') # copper spot to control paste mask generation - print ' Pad[',\ + print(' Pad[',\ mm2mils100(viacol * CoreSquare / blocks), \ mm2mils100(viarow * CoreSquare / blocks), \ mm2mils100(viacol * CoreSquare / blocks), \ @@ -95,11 +96,11 @@ for viarow in range (-1, 2): 1500, \ 0, \ mm2mils100((CoreSquare)/blocks), \ - '"pin17" "17" "square"]' + '"pin17" "17" "square"]') # pins for pin in range (1,5): - print ' Pad[',\ + print(' Pad[',\ mm2mils100((-2.5 + pin) * PinSpacing), \ mm2mils100(-Overall/2 + PinWidth/2), \ mm2mils100((-2.5 + pin) * PinSpacing), \ @@ -107,9 +108,9 @@ for pin in range (1,5): mm2mils100(PinWidth), \ mm2mils100(PinClearance), \ mm2mils100(PinResist), \ - '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]' + '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]') - print ' Pad[',\ + print(' Pad[',\ mm2mils100((-2.5 + pin) * PinSpacing), \ mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \ mm2mils100((-2.5 + pin) * PinSpacing), \ @@ -117,9 +118,9 @@ for pin in range (1,5): mm2mils100(PinWidth), \ mm2mils100(PinClearance), \ mm2mils100(PinResist), \ - '"pin%i"' % pin, '"%i"' % pin, '0x0000]' + '"pin%i"' % pin, '"%i"' % pin, '0x0000]') - print ' Pad[',\ + print(' Pad[',\ mm2mils100(Overall/2 - PinHeight + PinWidth/2), \ mm2mils100((-2.5 + pin) * PinSpacing), \ mm2mils100(Overall/2 - PinWidth/2), \ @@ -127,9 +128,9 @@ for pin in range (1,5): mm2mils100(PinWidth), \ mm2mils100(PinClearance), \ mm2mils100(PinResist), \ - '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0000]' + '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0000]') - print ' Pad[',\ + print(' Pad[',\ mm2mils100(-Overall/2 + PinWidth/2), \ mm2mils100((-2.5 + pin) * PinSpacing), \ mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \ @@ -137,10 +138,10 @@ for pin in range (1,5): mm2mils100(PinWidth), \ mm2mils100(PinClearance), \ mm2mils100(PinResist), \ - '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0000]' + '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0000]') -print ' ElementArc[',\ +print(' ElementArc[',\ mm2mils100(-2.0), \ mm2mils100(2.0), \ - '500 500 0 360 1000 ]' -print ")" + '500 500 0 360 1000 ]') +print(")")