convert Python footprint generators to Python 3
authorBdale Garbee <bdale@gag.com>
Tue, 6 Feb 2024 05:48:28 +0000 (22:48 -0700)
committerBdale Garbee <bdale@gag.com>
Tue, 6 Feb 2024 05:48:28 +0000 (22:48 -0700)
100 files changed:
packages/.gitignore
packages/1212-8.py [changed mode: 0755->0644]
packages/2512.py [changed mode: 0755->0644]
packages/711AT.py [changed mode: 0755->0644]
packages/98ASB177756C.py [changed mode: 0755->0644]
packages/A29100-009.py [changed mode: 0755->0644]
packages/ABM3B.py [changed mode: 0755->0644]
packages/ABM3C.py [changed mode: 0755->0644]
packages/ABM8.py [changed mode: 0755->0644]
packages/ADXL78.py [changed mode: 0755->0644]
packages/AH3.py [changed mode: 0755->0644]
packages/AN3111.py [changed mode: 0755->0644]
packages/AT1220.py [changed mode: 0755->0644]
packages/BTM182.py [changed mode: 0755->0644]
packages/BU2032SM.py [changed mode: 0755->0644]
packages/CAP_FC8.py [changed mode: 0755->0644]
packages/DIODE-SMA.py [changed mode: 0755->0644]
packages/DSE0006A.py [changed mode: 0755->0644]
packages/FTDI-QFN32.py [changed mode: 0755->0644]
packages/JTIBM15.py [changed mode: 0755->0644]
packages/KSCJ.py [changed mode: 0755->0644]
packages/LPCC16.py [changed mode: 0755->0644]
packages/LPH.py [changed mode: 0755->0644]
packages/MD-60S.py [changed mode: 0755->0644]
packages/MO-220.py [changed mode: 0755->0644]
packages/MOT1317.py [changed mode: 0755->0644]
packages/MPU6000.py [changed mode: 0755->0644]
packages/MS5607.py [changed mode: 0755->0644]
packages/NDK32.py [changed mode: 0755->0644]
packages/NHD-C0216.py [changed mode: 0755->0644]
packages/NHD-C0216CZ.py [changed mode: 0755->0644]
packages/NHD-C12832A1Z.py [changed mode: 0755->0644]
packages/NHD-C12864LZ.py [changed mode: 0755->0644]
packages/NINA-W131.py [changed mode: 0755->0644]
packages/NRS50.py [changed mode: 0755->0644]
packages/Omega2S.py [changed mode: 0755->0644]
packages/PCM12SMTR.py [changed mode: 0755->0644]
packages/PDFN33.py [changed mode: 0755->0644]
packages/PDV-P8103.py [changed mode: 0755->0644]
packages/PG-TSDSO-14.py [changed mode: 0755->0644]
packages/PowerPAD32.py [changed mode: 0755->0644]
packages/RGZ0048A.py [changed mode: 0755->0644]
packages/RHB0032E.py [changed mode: 0755->0644]
packages/RN4678.py [changed mode: 0755->0644]
packages/RSM0032B.py [changed mode: 0755->0644]
packages/SD.py [changed mode: 0755->0644]
packages/SJ-352X-SMT.py [changed mode: 0755->0644]
packages/SOIJ4.py [changed mode: 0755->0644]
packages/SOIJ8.py [changed mode: 0755->0644]
packages/TDK_PS12.py [changed mode: 0755->0644]
packages/TI-QFN32-new.py [changed mode: 0755->0644]
packages/TI-QFN32.py [changed mode: 0755->0644]
packages/TI-QFN36.py [changed mode: 0755->0644]
packages/TO252AA.py [changed mode: 0755->0644]
packages/TSOT26.py [changed mode: 0755->0644]
packages/U-DFN2020-6-F.py [changed mode: 0755->0644]
packages/UBLOX-MAX.py [changed mode: 0755->0644]
packages/UBLOX-ZOE.py [changed mode: 0755->0644]
packages/W3011A.py [changed mode: 0755->0644]
packages/ZX62-B-5PA.py [changed mode: 0755->0644]
packages/cu01sav.py [changed mode: 0755->0644]
packages/dualbeeper.py [changed mode: 0755->0644]
packages/fuse345.py [changed mode: 0755->0644]
packages/g5rl1ae.py [changed mode: 0755->0644]
packages/lga14.py [changed mode: 0755->0644]
packages/lga14b.py [changed mode: 0755->0644]
packages/lga16.py [changed mode: 0755->0644]
packages/linear-s8.py [changed mode: 0755->0644]
packages/lqfp100.py [changed mode: 0755->0644]
packages/lqfp32.py [changed mode: 0755->0644]
packages/lqfp48.py [changed mode: 0755->0644]
packages/lqfp64.py [changed mode: 0755->0644]
packages/lqfp80.py [changed mode: 0755->0644]
packages/microSD.py [changed mode: 0755->0644]
packages/microSDold.py [changed mode: 0755->0644]
packages/microSDpush.py [changed mode: 0755->0644]
packages/norcomp/182-male.py
packages/norcomp/189.py
packages/qfn-16.py [changed mode: 0755->0644]
packages/qfn-44.py [changed mode: 0755->0644]
packages/rpsma-th.py [changed mode: 0755->0644]
packages/s-pqfp-g32.py [changed mode: 0755->0644]
packages/sma-edge.py [changed mode: 0755->0644]
packages/switches/Makefile
packages/switches/PNswitchDPDT.py
packages/switches/SK12F17.py
packages/te-connectivity/3.5mm-ra.py
packages/te-connectivity/bnc-th.py
packages/te-connectivity/buchanan.py
packages/te-connectivity/micromatch-smt-v.py
packages/te-connectivity/micromatch-th-v.py
packages/te-connectivity/tphybrid.py
packages/ti-qfn20.py [changed mode: 0755->0644]
packages/tqfp44.py [changed mode: 0755->0644]
packages/trapc5mx.py [changed mode: 0755->0644]
packages/usbAmale-around.py [changed mode: 0755->0644]
packages/usbAmale.py [changed mode: 0755->0644]
packages/vqfn-48.py [changed mode: 0755->0644]
packages/wire-ant.py [changed mode: 0755->0644]
packages/wqfn-16.py [changed mode: 0755->0644]

index 8333d022eeb415a32c5b3980a80f4cdf1fdc502e..e251462f1b7a47f22e91cb4f8cb0cab0a995cf93 100644 (file)
@@ -22,6 +22,7 @@ ABM8.fp
 1212-8.fp
 AN3111.fp
 lqfp32.fp
+tqfp44.fp
 lqfp48.fp
 lqfp64.fp
 lqfp80.fp
@@ -40,6 +41,7 @@ MO-220.fp
 8ufson2x2.fp
 ti-qfn20.fp
 qfn-16.fp
+qfn-44.fp
 ap.10g.fp
 BTM182.fp
 NHD-C0216.fp
@@ -100,9 +102,9 @@ TO252FET.fp
 SD.fp
 microSD.fp
 microSDold.fp
+microSDpush.fp
 v-bite.fp
 qfn16-3x3.fp
-1051330011.fp
 2013499-1.fp
 servo.fp
 servo-motor.fp
old mode 100755 (executable)
new mode 100644 (file)
index 13faed5..450806e
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2013 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Vishay 1212-8 dual FET package
@@ -23,15 +23,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,4):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1.5) * PinSpacing), \
        mm2mils100(-(RowOuter/2 - PinWidth/2)), \
        mm2mils100((pin-1.5) * PinSpacing), \
@@ -39,9 +39,9 @@ for pin in range (0,4):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1.5) * PinSpacing), \
        mm2mils100(RowOuter/2 - PinWidth/2), \
        mm2mils100((pin-1.5) * PinSpacing), \
@@ -49,9 +49,9 @@ for pin in range (0,4):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
     mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
     mm2mils100(RowOuter/2 - PinHeight - 0.635 - DrainWidth/2), \
     mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
@@ -59,9 +59,9 @@ print '   Pad[',\
     mm2mils100(DrainWidth), \
     mm2mils100(DrainSpacing - DrainWidth), \
     mm2mils100(DrainWidth)+600, \
-    '"pin8" "8" 0x0100]'
+    '"pin8" "8" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
     mm2mils100(DrainSpacing/2 + DrainWidth/2), \
     mm2mils100(RowOuter/2 - PinHeight - 0.635 - DrainWidth/2), \
     mm2mils100(DrainSpacing/2 + DrainWidth/2), \
@@ -69,39 +69,39 @@ print '   Pad[',\
     mm2mils100(DrainWidth), \
     mm2mils100(DrainSpacing - DrainWidth), \
     mm2mils100(DrainWidth)+600, \
-    '"pin5" "5" 0x0100]'
+    '"pin5" "5" 0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
         mm2mils100(-2 * PinSpacing), \
         mm2mils100(0.60 * RowOuter), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 8622aaa..f860534
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2014 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for 2512 package used by Vishay resistors
@@ -15,14 +15,14 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "2512" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "2512" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(-PinSpacing/2 - PinWidth/2), \
        mm2mils100(-PinHeight/2 + PinWidth/2), \
        mm2mils100(-PinSpacing/2 - PinWidth/2), \
@@ -30,9 +30,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        0, \
        mm2mils100(PinWidth+0.4), \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PinSpacing/2 + PinWidth/2), \
        mm2mils100(-PinHeight/2 + PinWidth/2), \
        mm2mils100(PinSpacing/2 + PinWidth/2), \
@@ -40,20 +40,20 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        0, \
        mm2mils100(PinWidth+0.4), \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-PinSpacing/2 + 0.5), \
         mm2mils100(PinHeight/2), \
         mm2mils100(PinSpacing/2 - 0.5), \
         mm2mils100(PinHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-PinSpacing/2 + 0.5), \
         mm2mils100(-PinHeight/2), \
         mm2mils100(PinSpacing/2 - 0.5), \
         mm2mils100(-PinHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index eddf16d..dba0424
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2018 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for Omnetics A29100-009 connector
@@ -23,16 +23,16 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "A29100-009" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "A29100-009" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 for pad in range (0,5):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pad-2) * Row1Spacing), \
        mm2mils100(PadHeight/2 - PadWidth/2), \
        mm2mils100((pad-2) * Row1Spacing), \
@@ -40,10 +40,10 @@ for pad in range (0,5):
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin%i"' % (pad+1), '"%i"' % (pad+1), '0x0100]'
+       '"pin%i"' % (pad+1), '"%i"' % (pad+1), '0x0100]')
 
 for pad in range (0,4):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pad-1.5) * Row2Spacing), \
        mm2mils100(-PadRowSpacing - PadHeight/2 + PadWidth/2), \
        mm2mils100((pad-1.5) * Row2Spacing), \
@@ -51,24 +51,24 @@ for pad in range (0,4):
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin%i"' % (pad+6), '"%i"' % (pad+6), '0x0100]'
+       '"pin%i"' % (pad+6), '"%i"' % (pad+6), '0x0100]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(PinSpacing/2), \
         mm2mils100(PinOffset), \
         mm2mils100(PinDiam+ARing), \
         mm2mils100(Clearance), \
         mm2mils100(PinDiam+ARing+Clearance ), \
         mm2mils100(PinDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(-PinSpacing/2), \
         mm2mils100(PinOffset), \
         mm2mils100(PinDiam+ARing), \
         mm2mils100(Clearance), \
         mm2mils100(PinDiam+ARing+Clearance ), \
         mm2mils100(PinDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index e3b1afc..18292bb
@@ -18,7 +18,7 @@ def mm2mils100( mm ):
 
 print('# author: Bdale Garbee')
 print('# email: bdale@gag.com')
-print('# dist-license: GPL 2')
+print('# dist-license: GPL 3')
 print('# use-license: unlimited')
 
 print('Element[0x0 "ABM3B" "" "" 0 0 0 0 0 100 0x0]')
old mode 100755 (executable)
new mode 100644 (file)
index 299b0bd..a787114
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2019 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for ABM3C package used by Xtals
@@ -16,14 +16,14 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "ABM3C" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "ABM3C" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PinWidth/2), \
        mm2mils100(-(HSpacing/2 + PinWidth/2)), \
        mm2mils100(WSpacing/2 + PinWidth/2), \
@@ -31,9 +31,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(WSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PinWidth/2), \
        mm2mils100(HSpacing/2 + PinWidth/2), \
        mm2mils100(WSpacing/2 + PinWidth/2), \
@@ -41,9 +41,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(WSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
        mm2mils100(HSpacing/2 + PinWidth/2), \
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
@@ -51,9 +51,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(WSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin4" "4" 0x0100]'
+       '"pin4" "4" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
        mm2mils100(-(HSpacing/2 + PinWidth/2)), \
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
@@ -61,11 +61,11 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(WSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(WSpacing*0.2), \
        mm2mils100(HSpacing/2+PinHeight*0.8), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 9a15be2..e6c8e1f
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for ABM8 package used by Xtals
@@ -21,14 +21,14 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "ABM8" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "ABM8" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PinWidth/2), \
        mm2mils100(-(HSpacing/2 + PinWidth/2)), \
        mm2mils100(WSpacing/2 + PinWidth/2), \
@@ -36,9 +36,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        (MinClearance*2), \
        mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PinWidth/2), \
        mm2mils100(HSpacing/2 + PinWidth/2), \
        mm2mils100(WSpacing/2 + PinWidth/2), \
@@ -46,9 +46,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        (MinClearance*2), \
        mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
        mm2mils100(HSpacing/2 + PinWidth/2), \
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
@@ -56,9 +56,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        (MinClearance*2), \
        mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"pin4" "4" 0x0100]'
+       '"pin4" "4" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
        mm2mils100(-(HSpacing/2 + PinWidth/2)), \
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
@@ -66,11 +66,11 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        (MinClearance*2), \
        mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(WSpacing*0.2), \
        mm2mils100(HSpacing/2+PinHeight*0.8), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 2185c31..c4c1e66
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Analog Devices ADXL78 accelerometer
@@ -19,15 +19,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "ADXL78" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "ADXL78" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,3):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
        mm2mils100((pin-1) * PinSpacing), \
        mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
@@ -35,9 +35,9 @@ for pin in range (0,3):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (pin+1), '"%i"' % (pin+1), '0x0100]'
+       '"pin%i"' % (pin+1), '"%i"' % (pin+1), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(RowSpacing/2 + PinWidth/2), \
        mm2mils100((pin-1) * PinSpacing), \
        mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
@@ -45,9 +45,9 @@ for pin in range (0,3):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (7 - pin), '"%i"' % (7 - pin), '0x0100]'
+       '"pin%i"' % (7 - pin), '"%i"' % (7 - pin), '0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        0, \
        mm2mils100(RowSpacing/2 + PinWidth/2), \
        0, \
@@ -55,9 +55,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (4), '"%i"' % (4), '0x0100]'
+       '"pin%i"' % (4), '"%i"' % (4), '0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        0, \
        mm2mils100(-RowSpacing/2 - PinWidth/2), \
        0, \
@@ -65,39 +65,39 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (8), '"%i"' % (8), '0x0100]'
+       '"pin%i"' % (8), '"%i"' % (8), '0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
         mm2mils100(-0.6 * BodyWidth), \
         mm2mils100(-0.45 * BodyHeight), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index a564331..a5c3e01
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for 16-lead QFN, 6x6mm 
@@ -20,15 +20,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "AN3111" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "AN3111" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 # pad under the chip, no overall paste so we can control subset that gets paste
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(0), \
        mm2mils100(0), \
        mm2mils100(0), \
@@ -36,12 +36,12 @@ print '   Pad[',\
        mm2mils100(CoreSquare), \
        mm2mils100(0), \
        mm2mils100(CoreSquare + MaskAdd), \
-       '"17" "17" "square,nopaste"]'
+       '"17" "17" "square,nopaste"]')
 
 # copper sub-squares in a grid to set paste area
 for viarow in range (-1, 2):
   for viacol in range (-1, 2):
-      print '   Pad[',\
+      print('   Pad[',\
         mm2mils100(viacol * 1.4), \
         mm2mils100(viarow * 1.4), \
         mm2mils100(viacol * 1.4), \
@@ -49,11 +49,11 @@ for viarow in range (-1, 2):
        mm2mils100(1.0), \
         0, \
         mm2mils100(1.0), \
-        '"17" "17" "square"]'
+        '"17" "17" "square"]')
 
 
 # corner mounting squares .. tied to Vss on chip, but don't connect on board
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
        mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
        mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
@@ -61,9 +61,9 @@ print '   Pad[',\
        mm2mils100(CornerSquare), \
        mm2mils100(0), \
        mm2mils100(CornerSquare + MaskAdd), \
-       '"NC" "NC" 0x0100]'
+       '"NC" "NC" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
        mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
        mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
@@ -71,9 +71,9 @@ print '   Pad[',\
        mm2mils100(CornerSquare), \
        mm2mils100(0), \
        mm2mils100(CornerSquare + MaskAdd), \
-       '"NC" "NC" 0x0100]'
+       '"NC" "NC" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
        mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
        mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
@@ -81,9 +81,9 @@ print '   Pad[',\
        mm2mils100(CornerSquare), \
        mm2mils100(0), \
        mm2mils100(CornerSquare + MaskAdd), \
-       '"NC" "NC" 0x0100]'
+       '"NC" "NC" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
        mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
        mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
@@ -91,10 +91,10 @@ print '   Pad[',\
        mm2mils100(CornerSquare), \
        mm2mils100(0), \
        mm2mils100(CornerSquare + MaskAdd), \
-       '"NC" "NC" 0x0100]'
+       '"NC" "NC" 0x0100]')
 
 for pin in range (1,5):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(-Overall/2 - 0.30 + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
@@ -102,9 +102,9 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(0), \
        mm2mils100(PinWidth + MaskAdd), \
-       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
+       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(+Overall/2 - 0.55 + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
@@ -112,9 +112,9 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(0), \
        mm2mils100(PinWidth + MaskAdd), \
-       '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+       '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - 0.55 + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(Overall/2 + 0.30 - PinWidth/2), \
@@ -122,9 +122,9 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(0), \
        mm2mils100(PinWidth + MaskAdd), \
-       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 - 0.30 + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(-Overall/2 + 0.55 - PinWidth/2), \
@@ -132,10 +132,10 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(0), \
        mm2mils100(PinWidth + MaskAdd), \
-       '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]'
+       '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-3.2), \
        mm2mils100(3.2), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 97c0c86..d2dc0bd
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Rayson BTM-182 Bluetooth module
@@ -25,15 +25,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "BTM182" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "BTM182" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,15):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-7) * PinSpacing), \
        mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
        mm2mils100((pin-7) * PinSpacing), \
@@ -41,9 +41,9 @@ for pin in range (0,15):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (30 - pin), '"%i"' % (30 - pin), '0x0100]'
+       '"pin%i"' % (30 - pin), '"%i"' % (30 - pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-7) * PinSpacing), \
        mm2mils100(RowSpacing/2 + PinWidth/2), \
        mm2mils100((pin-7) * PinSpacing), \
@@ -51,9 +51,9 @@ for pin in range (0,15):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(9.44+SmallPinWidth/2-SmallPinHeight)), \
        mm2mils100(RowCenters/2 - 2.96), \
        mm2mils100(-(9.44-SmallPinWidth/2+SmallPinHeight)), \
@@ -61,9 +61,9 @@ print '   Pad[',\
        mm2mils100(SmallPinHeight), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(SmallPinHeight)+600, \
-       '"pin%i"' % 31, '"%i"' % 31, '0x0100]'
+       '"pin%i"' % 31, '"%i"' % 31, '0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(9.44+SmallPinWidth/2-SmallPinHeight)), \
        mm2mils100(RowCenters/2 - 1.69), \
        mm2mils100(-(9.44-SmallPinWidth/2+SmallPinHeight)), \
@@ -71,67 +71,67 @@ print '   Pad[',\
        mm2mils100(SmallPinHeight), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(SmallPinHeight)+600, \
-       '"pin%i"' % 32, '"%i"' % 32, '0x0100]'
+       '"pin%i"' % 32, '"%i"' % 32, '0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2-BodyOffset), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2-BodyOffset), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2-BodyOffset), \
        mm2mils100( BodyWidth/2), \
        mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
        mm2mils100( BodyWidth/2), \
        mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
        mm2mils100( BodyWidth/2-3.595), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
        mm2mils100( BodyWidth/2-3.595), \
        mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
        mm2mils100( BodyWidth/2-3.595), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
        mm2mils100( BodyWidth/2), \
        mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
        mm2mils100( BodyWidth/2-3.595), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2-BodyOffset), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2-BodyOffset), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2-BodyOffset), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2-BodyOffset), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2-BodyOffset), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-7 * PinSpacing), \
        mm2mils100(RowSpacing/2-PinHeight/6), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 93c2a82..dc1299d
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2015 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for BU2032 battery holder by Memory Protection Devices
@@ -19,14 +19,14 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "BU2032" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "BU2032" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(-PinSpacing/2 - PinWidth/2), \
        mm2mils100(-PinHeight/2 + PinWidth/2), \
        mm2mils100(-PinSpacing/2 - PinWidth/2), \
@@ -34,9 +34,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(1.5), \
        mm2mils100(PinWidth+0.4), \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PinSpacing/2 + PinWidth/2), \
        mm2mils100(-PinHeight/2 + PinWidth/2), \
        mm2mils100(PinSpacing/2 + PinWidth/2), \
@@ -44,9 +44,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(1.5), \
        mm2mils100(PinWidth+0.4), \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        0, \
        0, \
        mm2mils100(BodyDiam/2), \
@@ -54,34 +54,34 @@ print '   ElementArc[',\
        0, \
        360, \
        1000, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyWidth/2), \
         mm2mils100(-BodyHeight/2), \
         mm2mils100(BodyWidth/2), \
         mm2mils100(-BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyWidth/2), \
         mm2mils100(BodyHeight/2), \
         mm2mils100(BodyWidth/2), \
         mm2mils100(BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(BodyWidth/2), \
         mm2mils100(-BodyHeight/2), \
         mm2mils100(BodyWidth/2), \
         mm2mils100(BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyWidth/2), \
         mm2mils100(-BodyHeight/2), \
         mm2mils100(-BodyWidth/2), \
         mm2mils100(BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 15e652e..59566f3
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2014 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for 8mm diameter Panasonic FC series 
@@ -15,32 +15,32 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "CAP_FC8" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pin[',\
+print('Element[0x0 "CAP_FC8" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pin[',\
        mm2mils100(-PinSpacing/2), \
        0, \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(0.80), \
-       '"pin1" "1" 0x0101]'
+       '"pin1" "1" 0x0101]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpacing/2), \
        0, \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(0.80), \
-       '"pin2" "2" 0x0001]'
+       '"pin2" "2" 0x0001]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        0, \
        0, \
        mm2mils100(BodyDiam/2), \
@@ -48,22 +48,22 @@ print '   ElementArc[',\
        0, \
        360, \
        1000, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyDiam/2), \
        mm2mils100(-BodyDiam/2), \
        mm2mils100(-BodyDiam/4), \
        mm2mils100(-BodyDiam/2), \
        1000, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-3*BodyDiam/8), \
        mm2mils100(-5*BodyDiam/8), \
        mm2mils100(-3*BodyDiam/8), \
        mm2mils100(-3*BodyDiam/8), \
        1000, \
-       ']'
+       ']')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 3165698..bb5bedf
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2012 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for SMA package used by Diodes, Inc
@@ -15,14 +15,14 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "DIODE-SMA" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "DIODE-SMA" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(-PinSpacing/2 - PinWidth + PinHeight/2), \
        0, \
        mm2mils100(-PinSpacing/2 - PinHeight/2), \
@@ -30,9 +30,9 @@ print '   Pad[',\
        mm2mils100(PinHeight), \
        0, \
        mm2mils100(PinHeight+0.4), \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PinSpacing/2 + PinWidth - PinHeight/2), \
        0, \
        mm2mils100(PinSpacing/2 + PinHeight/2), \
@@ -40,13 +40,13 @@ print '   Pad[',\
        mm2mils100(PinHeight), \
        0, \
        mm2mils100(PinHeight+0.4), \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(PinSpacing * 2.5), \
         mm2mils100(-PinHeight/2), \
         mm2mils100(PinSpacing * 2.5), \
         mm2mils100(PinHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 78d529c..4cca14d
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for QFN32 package used by FTDI FT232RQ
@@ -20,16 +20,16 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "QFN32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN32" "" "" 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), \
@@ -37,26 +37,26 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        0, \
        0, \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
 
 # vias in the ground pad under the chip
 for viarow in range (-1,2):
   for viacol in range (-1,2):
-    print '   Pin[',\
+    print('   Pin[',\
        mm2mils100(2 * viacol * CoreSquare / 5), \
        mm2mils100(2 * viarow * CoreSquare / 5), \
        2900, \
        2500, \
        0, \
        1500, \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
 # break pad under chip into a grid to control the resist and paste masks
 for viarow in range (-2, 3):
   for viacol in range (-2, 3):
     if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
       # copper sub-square with resist over vias
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -64,10 +64,10 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        0, \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
     else:
       # copper sub-square without resist
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -75,9 +75,9 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
       # copper spot to control paste mask generation
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -85,11 +85,11 @@ for viarow in range (-2, 3):
        1500, \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin33" "33" "square"]'
+       '"pin33" "33" "square"]')
 
 # pins
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
@@ -97,9 +97,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
@@ -107,9 +107,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -117,9 +117,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -127,10 +127,10 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.6), \
        mm2mils100(2.6), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 22eb37d..d2e7110
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2017 by Bdale Garbee <bdale@gag.com>.  GPLv3+
 #
 # Program to emit PCB footprint for Johanson balun/filter modules
@@ -20,15 +20,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "JTIBM15" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "JTIBM15" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,3):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1) * PinSpacing), \
        mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
        mm2mils100((pin-1) * PinSpacing), \
@@ -36,9 +36,9 @@ for pin in range (0,3):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (6 - pin), '"%i"' % (6 - pin), '0x0100]'
+       '"pin%i"' % (6 - pin), '"%i"' % (6 - pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1) * PinSpacing), \
        mm2mils100(RowSpacing/2 + PinWidth/2), \
        mm2mils100((pin-1) * PinSpacing), \
@@ -46,39 +46,39 @@ for pin in range (0,3):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
         mm2mils100(-1.8 * PinSpacing), \
         mm2mils100(RowSpacing*1.3), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index c22dd94..f8a530c
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for C&K KSCJ SPST switch
@@ -17,14 +17,14 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PadHeight/2), \
        mm2mils100(-HSpacing/2), \
        mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
@@ -32,9 +32,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        0, \
        mm2mils100(PadHeight)+600, \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PadHeight/2), \
        mm2mils100(HSpacing/2), \
        mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
@@ -42,9 +42,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        0, \
        mm2mils100(PadHeight)+600, \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-WSpacing/2 - PadHeight/2), \
        mm2mils100(HSpacing/2), \
        mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
@@ -52,9 +52,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        0, \
        mm2mils100(PadHeight)+600, \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-WSpacing/2 - PadHeight/2), \
        mm2mils100(-HSpacing/2), \
        mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
@@ -62,6 +62,6 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        0, \
        mm2mils100(PadHeight)+600, \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 150ae9c..b3a6c93
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2012 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for LPCC 16 package used by HMC5883L
@@ -16,16 +16,16 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "LPCC16" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LPCC16" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 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), \
@@ -33,9 +33,9 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth + 0.1), \
-       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
+       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-2.5 + pin) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-2.5 + pin) * PinSpacing), \
@@ -43,9 +43,9 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth + 0.1), \
-       '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+       '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-2.5 + pin) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -53,9 +53,9 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth + 0.1), \
-       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-2.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -63,10 +63,10 @@ for pin in range (1,5):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth + 0.1), \
-       '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]'
+       '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-Overall/2), \
        mm2mils100(Overall/2), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index ef17776..02f5e8d
@@ -1,10 +1,10 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2016 by Bdale Garbee <bdale@gag.com>.  GPLv3+
 #
 # Program to emit PCB footprint for CUI MD-60S Mini DIN Connector
 #
 
-# dimensions in mm from footprint drawing at DigiKey
+# dimensions in mm from footprint(drawing at DigiKey
 BodyWidth = 14.0               # body outline
 BodyHeight = 12.4
 InnerPinSpace = 2.6
@@ -25,103 +25,103 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "MD-60S" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pin[',\
+print('Element[0x0 "MD-60S" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pin[',\
        mm2mils100(-InnerPinSpace/2), \
        mm2mils100(Row1Setback), \
        mm2mils100(PinDiam+ARing), \
        mm2mils100(Clearance), \
        mm2mils100(PinDiam+ARing+Clearance), \
        mm2mils100(PinDiam), \
-       '"pin1" "1" 0x0001]'
+       '"pin1" "1" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(InnerPinSpace/2), \
        mm2mils100(Row1Setback), \
        mm2mils100(PinDiam+ARing), \
        mm2mils100(Clearance), \
        mm2mils100(PinDiam+ARing+Clearance), \
        mm2mils100(PinDiam), \
-       '"pin2" "2" 0x0001]'
+       '"pin2" "2" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-OuterPinSpace/2), \
        mm2mils100(Row1Setback), \
        mm2mils100(PinDiam+ARing), \
        mm2mils100(Clearance), \
        mm2mils100(PinDiam+ARing+Clearance), \
        mm2mils100(PinDiam), \
-       '"pin3" "3" 0x0001]'
+       '"pin3" "3" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(OuterPinSpace/2), \
        mm2mils100(Row1Setback), \
        mm2mils100(PinDiam+ARing), \
        mm2mils100(Clearance), \
        mm2mils100(PinDiam+ARing+Clearance), \
        mm2mils100(PinDiam), \
-       '"pin4" "4" 0x0001]'
+       '"pin4" "4" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-OuterPinSpace/2), \
        mm2mils100(Row2Setback), \
        mm2mils100(PinDiam+ARing), \
        mm2mils100(Clearance), \
        mm2mils100(PinDiam+ARing+Clearance), \
        mm2mils100(PinDiam), \
-       '"pin5" "5" 0x0001]'
+       '"pin5" "5" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(OuterPinSpace/2), \
        mm2mils100(Row2Setback), \
        mm2mils100(PinDiam+ARing), \
        mm2mils100(Clearance), \
        mm2mils100(PinDiam+ARing+Clearance), \
        mm2mils100(PinDiam), \
-       '"pin6" "6" 0x0001]'
+       '"pin6" "6" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        0, \
        mm2mils100(MntSetback), \
        mm2mils100(MntDiam+ARing), \
        mm2mils100(Clearance), \
        mm2mils100(MntDiam+ARing+Clearance), \
        mm2mils100(MntDiam), \
-       '"pin7" "7" 0x0001]'
+       '"pin7" "7" 0x0001]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        0, \
        mm2mils100(BodyWidth/2), \
        0, \
        LineWidth, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight), \
        mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight), \
        LineWidth, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        0, \
        -mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight), \
        LineWidth, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        mm2mils100(BodyWidth/2), \
        0, \
        mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight), \
        LineWidth, \
-       ']'
+       ']')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 5319e5a..70bd25a
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for MO-220 package used by the ATTiny85
@@ -26,16 +26,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 "MO-220" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "MO-220" "" "" 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), \
@@ -43,12 +43,12 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin21" "21" "square,nopaste"]'
+       '"pin21" "21" "square,nopaste"]')
 
 # vias in the ground pad under the chip
 #for viarow in range (-1,2):
 #  for viacol in range (-1,2):
-#    print '   Pin[',\
+#    print('   Pin[',\
 #      mm2mils100(2 * viacol * CoreSquare / 5), \
 #      mm2mils100(2 * viarow * CoreSquare / 5), \
 #      2900, \
@@ -65,7 +65,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), \
@@ -73,10 +73,10 @@ for viarow in range (-1, 2):
        mm2mils100((CoreSquare)/blocks), \
        0, \
        0, \
-       '"pin21" "21" "square,nopaste"]'
+       '"pin21" "21" "square,nopaste"]')
     else:
       # copper sub-square without resist
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / blocks), \
        mm2mils100(viarow * CoreSquare / blocks), \
        mm2mils100(viacol * CoreSquare / blocks), \
@@ -84,9 +84,9 @@ for viarow in range (-1, 2):
        mm2mils100((CoreSquare)/blocks), \
        0, \
        mm2mils100((CoreSquare)/blocks), \
-       '"pin21" "21" "square,nopaste"]'
+       '"pin21" "21" "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), \
@@ -94,11 +94,11 @@ for viarow in range (-1, 2):
        1500, \
        0, \
        mm2mils100((CoreSquare)/blocks), \
-       '"pin21" "21" "square"]'
+       '"pin21" "21" "square"]')
 
 # pins
 for pin in range (1,6):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-3 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-3 + pin) * PinSpacing), \
@@ -106,9 +106,9 @@ for pin in range (1,6):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]'
+       '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-3 + pin) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-3 + pin) * PinSpacing), \
@@ -116,9 +116,9 @@ for pin in range (1,6):
        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((-3 + pin) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -126,9 +126,9 @@ for pin in range (1,6):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]'
+       '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-3 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -136,10 +136,10 @@ for pin in range (1,6):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]'
+       '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.0), \
        mm2mils100(2.0), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 4ecc4ef..c373e6c
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Motorola 1317 package used by MP3H6115A
@@ -18,15 +18,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,4):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1.5) * PinSpacing), \
        mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
        mm2mils100((pin-1.5) * PinSpacing), \
@@ -34,9 +34,9 @@ for pin in range (0,4):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1.5) * PinSpacing), \
        mm2mils100(RowSpacing/2 + PinWidth/2), \
        mm2mils100((pin-1.5) * PinSpacing), \
@@ -44,39 +44,39 @@ for pin in range (0,4):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
         mm2mils100(-2.5 * PinSpacing), \
         mm2mils100(RowSpacing/2), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 95efd7e..c0abf4a
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for QFN24 package used by ITG-3200 gyro
@@ -17,17 +17,17 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "ITG3200" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "ITG3200" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
 for pin in range (1,7):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-3.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-3.5 + pin) * PinSpacing), \
@@ -35,9 +35,9 @@ for pin in range (1,7):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]'
+       '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-3.5 + pin) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-3.5 + pin) * PinSpacing), \
@@ -45,9 +45,9 @@ for pin in range (1,7):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        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((-3.5 + pin) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -55,9 +55,9 @@ for pin in range (1,7):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]'
+       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-3.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -65,10 +65,10 @@ for pin in range (1,7):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (18+pin), '"%i"' % (18+pin), '0x0000]'
+       '"pin%i"' % (18+pin), '"%i"' % (18+pin), '0x0000]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-(Overall/2)), \
        mm2mils100(Overall/2), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 22f0854..7303664
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Measurement Systems MS5607 & MS5611 sensors
@@ -17,67 +17,67 @@ 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 )
+        return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,4):
-    print '   Pad[',\
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+    print('   Pad[',\
+         mm2mils100((pin-1.5) * PinSpacing), \
+        mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+         mm2mils100((pin-1.5) * PinSpacing), \
+        mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
 
-    print '   Pad[',\
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinWidth/2), \
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+    print('   Pad[',\
+         mm2mils100((pin-1.5) * PinSpacing), \
+        mm2mils100(RowSpacing/2 + PinWidth/2), \
+         mm2mils100((pin-1.5) * 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 '   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[',\
+print('   ElementArc[',\
         mm2mils100(-1.75 * PinSpacing), \
         mm2mils100(RowSpacing*1.75), \
-       '500 500 0 360 1000 ]'
+        '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 0873462..8974666
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for package used by NDK 32mhz crystal
@@ -16,14 +16,14 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "NDK32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "NDK32" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PinWidth/2), \
        mm2mils100(-(HSpacing/2 + PinWidth/2)), \
        mm2mils100(WSpacing/2 + PinWidth/2), \
@@ -31,9 +31,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        1400, \
        mm2mils100(PinWidth)+600, \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PinWidth/2), \
        mm2mils100(HSpacing/2 + PinWidth/2), \
        mm2mils100(WSpacing/2 + PinWidth/2), \
@@ -41,9 +41,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        1400, \
        mm2mils100(PinWidth)+600, \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
        mm2mils100(HSpacing/2 + PinWidth/2), \
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
@@ -51,9 +51,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        1400, \
        mm2mils100(PinWidth)+600, \
-       '"pin4" "4" 0x0100]'
+       '"pin4" "4" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
        mm2mils100(-(HSpacing/2 + PinWidth/2)), \
        mm2mils100(-(WSpacing/2 + PinWidth/2)), \
@@ -61,11 +61,11 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        1400, \
        mm2mils100(PinWidth)+600, \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(PinWidth*1.4), \
        mm2mils100(PinHeight*1.4), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index f6e1fc3..cef69e7
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2010 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for NHD-C0216CU-FN-GBW-3V 2x16 text LCD
@@ -21,13 +21,13 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "NHD-C0216" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "NHD-C0216" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
        # pin( x y thickness clearance mask drillhole name number flags)
@@ -37,95 +37,95 @@ for pin in range (1,Pins+1):
     else:
         Flags = '0x0001'
 
-    print '   Pin[',\
+    print('   Pin[',\
        mm2mils100((pin - 9)*PinSpacing), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100(PinDiam * 1.75), \
        1200, \
        mm2mils100(PinDiam * 1.75) + 600, \
        mm2mils100(PinDiam), \
-       '"pin%i"' % (pin), '"%i"' % (pin), Flags, ']'
+       '"pin%i"' % (pin), '"%i"' % (pin), Flags, ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        500, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        -mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        500, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        500, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        500, \
-       ']'
+       ']')
 
 # mark viewable area
 #      ViewWidth = 45.70
 #      ViewHeight = 14.30
 #      ViewHCtr = BodyHeight - (18.30 / 2)
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-ViewWidth/2), \
        mm2mils100(ViewHCtr + ViewHeight/2), \
        mm2mils100(ViewWidth/2), \
        mm2mils100(ViewHCtr + ViewHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-ViewWidth/2), \
        mm2mils100(ViewHCtr - ViewHeight/2), \
        mm2mils100(ViewWidth/2), \
        mm2mils100(ViewHCtr - ViewHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-ViewWidth/2), \
        mm2mils100(ViewHCtr - ViewHeight/2), \
        mm2mils100(-ViewWidth/2), \
        mm2mils100(ViewHCtr + ViewHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(ViewWidth/2), \
        mm2mils100(ViewHCtr - ViewHeight/2), \
        mm2mils100(ViewWidth/2), \
        mm2mils100(ViewHCtr + ViewHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(ViewWidth/2), \
        mm2mils100(ViewHCtr - ViewHeight/2), \
        mm2mils100(-ViewWidth/2), \
        mm2mils100(ViewHCtr + ViewHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-ViewWidth/2), \
        mm2mils100(ViewHCtr - ViewHeight/2), \
        mm2mils100(ViewWidth/2), \
        mm2mils100(ViewHCtr + ViewHeight/2), \
        500, \
-       ']'
+       ']')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 0f2c505..bce4fe8
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007-2022 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for C&K PCM12SMTR SPDT switch
@@ -26,16 +26,16 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
 Clearance = 800                        # 8 mils in fp native units
 
-print 'Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PadHeight/2), \
        mm2mils100(-HSpacing/2 - PadHeight/2), \
        mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
@@ -43,9 +43,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        Clearance, \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "frame" 0x0100]'
+       '"mnt" "frame" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(WSpacing/2 + PadHeight/2), \
        mm2mils100(HSpacing/2 + PadHeight/2), \
        mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
@@ -53,9 +53,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        Clearance, \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "frame" 0x0100]'
+       '"mnt" "frame" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-WSpacing/2 - PadHeight/2), \
        mm2mils100(HSpacing/2 + PadHeight/2), \
        mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
@@ -63,9 +63,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        Clearance, \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "frame" 0x0100]'
+       '"mnt" "frame" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-WSpacing/2 - PadHeight/2), \
        mm2mils100(-HSpacing/2 - PadHeight/2), \
        mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
@@ -73,27 +73,27 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        Clearance, \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "frame" 0x0100]'
+       '"mnt" "frame" 0x0100]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(-HoleSpacing/2), \
         mm2mils100(0), \
         mm2mils100(HoleSize+0.3556), \
         Clearance, \
         mm2mils100(HoleSize+0.66), \
         mm2mils100(HoleSize), \
-        '"mnt" "holes" 0x0000]'
+        '"mnt" "holes" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(HoleSpacing/2), \
         mm2mils100(0), \
         mm2mils100(HoleSize+0.3556), \
         Clearance, \
         mm2mils100(HoleSize+0.66), \
         mm2mils100(HoleSize), \
-        '"mnt" "holes" 0x0000]'
+        '"mnt" "holes" 0x0000]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(Pin2Offset - Pin12), \
        mm2mils100(- PinBase - (PinWidth/2)), \
        mm2mils100(Pin2Offset - Pin12), \
@@ -101,9 +101,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        Clearance, \
        mm2mils100(PinWidth + .1524), \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(Pin2Offset), \
        mm2mils100(- PinBase - (PinWidth/2)), \
        mm2mils100(Pin2Offset), \
@@ -111,9 +111,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        Clearance, \
        mm2mils100(PinWidth + .1524), \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(Pin2Offset + Pin23), \
        mm2mils100(- PinBase - (PinWidth/2)), \
        mm2mils100(Pin2Offset + Pin23), \
@@ -121,7 +121,7 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        Clearance, \
        mm2mils100(PinWidth + .1524), \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index c28e31f..b920bfd
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2022 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Taiwan Semiconductor PDFN33 dual FETs
@@ -26,15 +26,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,4):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1.5) * PinSpacing), \
        mm2mils100(-(RowOuter/2 - PinWidth/2)), \
        mm2mils100((pin-1.5) * PinSpacing), \
@@ -42,9 +42,9 @@ for pin in range (0,4):
        mm2mils100(PinWidth), \
        mm2mils100(Clearance), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin-1.5) * PinSpacing), \
        mm2mils100(RowOuter/2 - PinWidth/2), \
        mm2mils100((pin-1.5) * PinSpacing), \
@@ -52,9 +52,9 @@ for pin in range (0,4):
        mm2mils100(PinWidth), \
        mm2mils100(Clearance), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
     mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
     mm2mils100(RowOuter/2 - PinHeight - DrainGap - DrainWidth/2), \
     mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
@@ -62,9 +62,9 @@ print '   Pad[',\
     mm2mils100(DrainWidth), \
     mm2mils100(Clearance), \
     mm2mils100(DrainWidth)+600, \
-    '"pin8" "8" 0x0100]'
+    '"pin8" "8" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
     mm2mils100(DrainSpacing/2 + DrainWidth/2), \
     mm2mils100(RowOuter/2 - PinHeight - DrainGap - DrainWidth/2), \
     mm2mils100(DrainSpacing/2 + DrainWidth/2), \
@@ -72,39 +72,39 @@ print '   Pad[',\
     mm2mils100(DrainWidth), \
     mm2mils100(Clearance), \
     mm2mils100(DrainWidth)+600, \
-    '"pin5" "5" 0x0100]'
+    '"pin5" "5" 0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100( BodyWidth/2), \
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
        mm2mils100(-BodyHeight/2), \
        mm2mils100(-BodyWidth/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
         mm2mils100(-2 * PinSpacing), \
         mm2mils100(0.60 * RowOuter), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 901ac7d..abb7440
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2014 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for PowerPAD 32-pin package used by TPA3118
@@ -25,32 +25,32 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "PowerPAD32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "PowerPAD32" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # vias in the ground pad under the chip
 for viarow in range (-2,2):
   for viacol in range (-4,4):
-    print '   Pin[',\
+    print('   Pin[',\
        mm2mils100(viacol * ViaGrid + ViaGrid/2), \
        mm2mils100(viarow * ViaGrid + ViaGrid/2), \
        2700, \
        2500, \
        0, \
        1300, \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
 # break pad under chip into a grid to control the resist and paste masks
 for viarow in range (-3, 4):
   for viacol in range (-8, 9):
     if (viacol in (-3, -2, -1, 0, 1, 2, 3)):
       # copper sub-square without resist, with paste
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * ViaGrid/2), \
        mm2mils100(viarow * ViaGrid/2), \
        mm2mils100(viacol * ViaGrid/2), \
@@ -58,10 +58,10 @@ for viarow in range (-3, 4):
        mm2mils100(ViaGrid/2), \
        0, \
        mm2mils100(ViaGrid/2), \
-       '"pin33" "33" "square"]'
+       '"pin33" "33" "square"]')
     else:
       # copper sub-square with resist over vias
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * ViaGrid/2), \
        mm2mils100(viarow * ViaGrid/2), \
        mm2mils100(viacol * ViaGrid/2), \
@@ -69,11 +69,11 @@ for viarow in range (-3, 4):
        mm2mils100(ViaGrid/2), \
        0, \
        0, \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
 
 # pins
 for pin in range (1,17):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 8.5) * PinSpacing), \
        mm2mils100(PinRow/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 8.5) * PinSpacing), \
@@ -81,9 +81,9 @@ for pin in range (1,17):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (pin), '"%i"' % (pin), '"square"]'
+       '"pin%i"' % (pin), '"%i"' % (pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 8.5) * PinSpacing), \
        mm2mils100(-PinRow/2 + PinHeight/2 - PinWidth/2), \
        mm2mils100((pin - 8.5) * PinSpacing), \
@@ -91,40 +91,10 @@ for pin in range (1,17):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (33-pin), '"%i"' % (33-pin), '"square"]'
+       '"pin%i"' % (33-pin), '"%i"' % (33-pin), '"square"]')
 
-#    print '   Pad[',\
-#      mm2mils100(-2.5 + pin * PinSpacing), \
-#      mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
-#      mm2mils100(-2.5 + pin * PinSpacing), \
-#      mm2mils100(+Overall/2 - PinWidth/2), \
-#      mm2mils100(PinWidth), \
-#      mm2mils100(PinSpacing - PinWidth), \
-#      mm2mils100(PinResist), \
-#      '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
-#
-#    print '   Pad[',\
-#      mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
-#      mm2mils100(-2.5 + pin * PinSpacing), \
-#      mm2mils100(Overall/2 - PinWidth/2), \
-#      mm2mils100(-2.5 + pin * PinSpacing), \
-#      mm2mils100(PinWidth), \
-#      mm2mils100(PinSpacing - PinWidth), \
-#      mm2mils100(PinResist), \
-#      '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]'
-#
-#    print '   Pad[',\
-#      mm2mils100(-Overall/2 + PinWidth/2), \
-#      mm2mils100(-2.5 + pin * PinSpacing), \
-#      mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
-#      mm2mils100(-2.5 + pin * PinSpacing), \
-#      mm2mils100(PinWidth), \
-#      mm2mils100(PinSpacing - PinWidth), \
-#      mm2mils100(PinResist), \
-#      '"pin%i"' % (27+pin), '"%i"' % (27+pin), '0x0000]'
-
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-7.5 * PinSpacing), \
        mm2mils100(PinRow/2 + PinHeight * 0.75), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 832b52b..8d81cd1
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2021 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Emit PCB footprint for RGZ0048A package used by TI CC1310 with RGZT suffix 
@@ -26,16 +26,16 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "QFN48" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN48" "" "" 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), \
@@ -43,62 +43,62 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        0, \
        mm2mils100(GndSquareMask), \
-       '"pin49" "49" "square,nopaste"]'
+       '"pin49" "49" "square,nopaste"]')
 
 # vias in the ground pad under the chip
 for viarow in range (-1,2):
   # outer rows
-  print '   Pin[',\
+  print('   Pin[',\
        mm2mils100(-CoreViaSpacing - SideViaSpacing), \
        mm2mils100(viarow * CoreViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin49" "49" 0x0002]'
+       '"pin49" "49" 0x0002]')
 
-  print '   Pin[',\
+  print('   Pin[',\
        mm2mils100(CoreViaSpacing + SideViaSpacing), \
        mm2mils100(viarow * CoreViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin49" "49" 0x0002]'
+       '"pin49" "49" 0x0002]')
 
-  print '   Pin[',\
+  print('   Pin[',\
        mm2mils100(viarow * CoreViaSpacing), \
        mm2mils100(-CoreViaSpacing - SideViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin49" "49" 0x0002]'
+       '"pin49" "49" 0x0002]')
 
-  print '   Pin[',\
+  print('   Pin[',\
        mm2mils100(viarow * CoreViaSpacing), \
        mm2mils100(CoreViaSpacing + SideViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin49" "49" 0x0002]'
+       '"pin49" "49" 0x0002]')
 
   # center array
   for viacol in range (-1,2):
-    print '   Pin[',\
+    print('   Pin[',\
        mm2mils100(viacol * CoreViaSpacing), \
        mm2mils100(viarow * CoreViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin49" "49" 0x0002]'
+       '"pin49" "49" 0x0002]')
 
 # solder paste squares in a grid on central ground pad
 for pasterow in range (-2, 2):
   for pastecol in range (-2, 2):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
        mm2mils100(pasterow * PasteGrid + PasteGrid/2), \
        mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
@@ -106,11 +106,11 @@ for pasterow in range (-2, 2):
        mm2mils100((PasteSquare)), \
        0, \
        mm2mils100((PasteSquare)), \
-       '"pin49" "49" "square"]'
+       '"pin49" "49" "square"]')
 
 # pins
 for pin in range (1,13):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-3.25 + pin * PinSpacing), \
        mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100(-3.25 + pin * PinSpacing), \
@@ -118,9 +118,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (37-pin), '"%i"' % (37-pin), '"square"]'
+       '"pin%i"' % (37-pin), '"%i"' % (37-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-3.25 + pin * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100(-3.25 + pin * PinSpacing), \
@@ -128,9 +128,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100(-3.25 + pin * PinSpacing), \
        mm2mils100(Overall/2 + PinHeight/2 - PinWidth/2), \
@@ -138,9 +138,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100(-3.25 + pin * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \
@@ -148,10 +148,10 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (36+pin), '"%i"' % (36+pin), '"square"]'
+       '"pin%i"' % (36+pin), '"%i"' % (36+pin), '"square"]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-3.6), \
        mm2mils100(3.6), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 1dfc22f..8fde985
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2021 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Emit PCB footprint for RHB0032E package used by TI CC1310 with RHMR suffix 
@@ -25,16 +25,16 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "RHB0032E" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "RHB0032E" "" "" 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), \
@@ -42,58 +42,58 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        0, \
        mm2mils100(GndSquareMask), \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
 
 # vias in the ground pad under the chip
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-CoreViaSpacing), \
        mm2mils100(0), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(0), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(CoreViaSpacing), \
        mm2mils100(0), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(-CoreViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(CoreViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
 # solder paste squares in a grid on central ground pad
 for pasterow in range (-1, 1):
   for pastecol in range (-1, 1):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
        mm2mils100(pasterow * PasteGrid + PasteGrid/2), \
        mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
@@ -101,11 +101,11 @@ for pasterow in range (-1, 1):
        mm2mils100((PasteSquare)), \
        0, \
        mm2mils100((PasteSquare)), \
-       '"pin33" "33" "square"]'
+       '"pin33" "33" "square"]')
 
 # pins
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -113,9 +113,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]'
+       '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -123,9 +123,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(Overall/2 + PinHeight/2 - PinWidth/2), \
@@ -133,9 +133,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \
@@ -143,10 +143,10 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.5), \
        mm2mils100(2.5), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 0494e22..5c96ade
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2016 by Bdale Garbee <bdale@gag.com>.  GPLv3+
 #
 # Program to emit PCB footprint for Microchip RN4678 Bluetooth LE module
@@ -22,14 +22,14 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "BM70BLES1FC2" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "BM70BLES1FC2" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(BodyHeight - 21.2), \
        mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
        mm2mils100(BodyHeight - 21.2), \
@@ -37,9 +37,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(BodyHeight - 21.2), \
        mm2mils100(-PinOffset + PinWidth/2), \
        mm2mils100(BodyHeight - 21.2), \
@@ -47,9 +47,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin33" "33" 0x0100]'
+       '"pin33" "33" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(BodyHeight - 20.1), \
        mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
        mm2mils100(BodyHeight - 20.1), \
@@ -57,9 +57,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(BodyHeight - 20.1), \
        mm2mils100(-PinOffset + PinWidth/2), \
        mm2mils100(BodyHeight - 20.1), \
@@ -67,9 +67,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin32" "32" 0x0100]'
+       '"pin32" "32" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(BodyHeight - 13.9), \
        mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
        mm2mils100(BodyHeight - 13.9), \
@@ -77,9 +77,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(BodyHeight - 12.8), \
        mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
        mm2mils100(BodyHeight - 12.8), \
@@ -87,10 +87,10 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin4" "4" 0x0100]'
+       '"pin4" "4" 0x0100]')
 
 for pin in range (5,15):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
        mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
        mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
@@ -98,9 +98,9 @@ for pin in range (5,15):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+       '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
        mm2mils100(- PinOffset + PinWidth/2), \
        mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
@@ -108,10 +108,10 @@ for pin in range (5,15):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (36 - pin), '"%i"' % (36 - pin), '0x0100]'
+       '"pin%i"' % (36 - pin), '"%i"' % (36 - pin), '0x0100]')
 
 for pin in range (15,22):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(BodyHeight + PinOffset - PinWidth/2), \
        mm2mils100(BodyWidth - 2.7 + (-(pin - 15) * PinSpacing)), \
        mm2mils100(BodyHeight - PinHeight + PinOffset + PinWidth/2), \
@@ -119,53 +119,53 @@ for pin in range (15,22):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinWidth)+600, \
-       '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+       '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
 
 
 # body outline
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        0, \
        0, \
        0, \
        mm2mils100(BodyWidth), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        0, \
        mm2mils100(BodyWidth), \
        mm2mils100(BodyHeight), \
        mm2mils100(BodyWidth), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(BodyHeight), \
        mm2mils100(BodyWidth), \
        mm2mils100(BodyHeight), \
        0, \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(BodyHeight), \
        0, \
        0, \
        0, \
-       '1000 ]'
+       '1000 ]')
 
 # hash marks where gnd plane should end
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(BodyHeight-GndEdgeLine), \
        mm2mils100(BodyWidth-1), \
        mm2mils100(BodyHeight-GndEdgeLine), \
        mm2mils100(BodyWidth-3), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(BodyHeight-GndEdgeLine), \
        mm2mils100(1), \
        mm2mils100(BodyHeight-GndEdgeLine), \
        mm2mils100(3), \
-       '1000 ]'
+       '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 4143c0f..9f9f1c5
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2021 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Emit PCB footprint for RSM0032B package used by TI CC1310 with RSMR suffix 
@@ -25,16 +25,16 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "RSM0032B" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "RSM0032B" "" "" 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), \
@@ -42,58 +42,58 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        0, \
        mm2mils100(GndSquareMask), \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
 
 # vias in the ground pad under the chip
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-CoreViaSpacing), \
        mm2mils100(0), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(0), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(CoreViaSpacing), \
        mm2mils100(0), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(-CoreViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(CoreViaSpacing), \
        mm2mils100(ViaPadSize), \
        mm2mils100(ViaPadSize), \
        0, \
        mm2mils100(ViaDrill), \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
 # solder paste squares in a grid on central ground pad
 for pasterow in range (-1, 1):
   for pastecol in range (-1, 1):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
        mm2mils100(pasterow * PasteGrid + PasteGrid/2), \
        mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
@@ -101,11 +101,11 @@ for pasterow in range (-1, 1):
        mm2mils100((PasteSquare)), \
        0, \
        mm2mils100((PasteSquare)), \
-       '"pin33" "33" "square"]'
+       '"pin33" "33" "square"]')
 
 # pins
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -113,9 +113,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]'
+       '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -123,9 +123,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(Overall/2 + PinHeight/2 - PinWidth/2), \
@@ -133,9 +133,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \
@@ -143,10 +143,10 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.25), \
        mm2mils100(2.25), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 2c4cae9..736ef02
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2015 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for Amphenol SD connector
@@ -45,16 +45,16 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # mounting pads
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(MntX1 - MntWidth/2 + MntHeight/2), \
        mm2mils100(MntY1), \
        mm2mils100(MntX1 + MntWidth/2 - MntHeight/2), \
@@ -62,9 +62,9 @@ print '   Pad[',\
        mm2mils100(MntHeight), \
        mm2mils100(0), \
        mm2mils100(MntHeight + MaskAdd), \
-       '"12" "12" 0x0100]'
+       '"12" "12" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(MntX2 - MntWidth/2 + MntHeight/2), \
        mm2mils100(MntY2), \
        mm2mils100(MntX2 + MntWidth/2 - MntHeight/2), \
@@ -72,10 +72,10 @@ print '   Pad[',\
        mm2mils100(MntHeight), \
        mm2mils100(0), \
        mm2mils100(MntHeight + MaskAdd), \
-       '"12" "12" 0x0100]'
+       '"12" "12" 0x0100]')
 
 # signal pads
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad1Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -83,9 +83,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"1" "1" 0x0100]'
+       '"1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad2Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -93,9 +93,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"2" "2" 0x0100]'
+       '"2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad3Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -103,9 +103,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"3" "3" 0x0100]'
+       '"3" "3" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad4Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -113,9 +113,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"4" "4" 0x0100]'
+       '"4" "4" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad5Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -123,9 +123,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"5" "5" 0x0100]'
+       '"5" "5" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad6Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -133,9 +133,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"6" "6" 0x0100]'
+       '"6" "6" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad7Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -143,9 +143,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"7" "7" 0x0100]'
+       '"7" "7" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad8Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -153,9 +153,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"8" "8" 0x0100]'
+       '"8" "8" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(Pad9Y), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -163,9 +163,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"9" "9" 0x0100]'
+       '"9" "9" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(PadCDY), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -173,9 +173,9 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"10" "10" 0x0100]'
+       '"10" "10" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
        mm2mils100(PadWPY), \
        mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
@@ -183,58 +183,58 @@ print '   Pad[',\
        mm2mils100(PadHeight), \
        mm2mils100(0), \
        mm2mils100(PadHeight + MaskAdd), \
-       '"11" "11" 0x0100]'
+       '"11" "11" 0x0100]')
 
 # mounting holes
-print '   Pin[',\
+print('   Pin[',\
         0, \
         mm2mils100(Hole1Y), \
         mm2mils100(HoleDiam+0.3556), \
         mm2mils100(0.31), \
         mm2mils100(HoleDiam+0.66), \
         mm2mils100(HoleDiam), \
-        '"12" "12" 0x0000]'
+        '"12" "12" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         0, \
         mm2mils100(Hole2Y), \
         mm2mils100(HoleDiam+0.3556), \
         mm2mils100(0.31), \
         mm2mils100(HoleDiam+0.66), \
         mm2mils100(HoleDiam), \
-        '"12" "12" 0x0000]'
+        '"12" "12" 0x0000]')
 
 BoxX = 29.1 + 1.16
 BoxXLeft = -23.5 - 1.16
 BoxY = 28.9
 
 # silkscreen box
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxXLeft), \
         mm2mils100(-BoxY/2), \
         mm2mils100(BoxXLeft), \
         mm2mils100(BoxY/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxXLeft + BoxX), \
         mm2mils100(-BoxY/2), \
         mm2mils100(BoxXLeft + BoxX), \
         mm2mils100(BoxY/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxXLeft), \
         mm2mils100(-BoxY/2), \
         mm2mils100(BoxXLeft + BoxX), \
         mm2mils100(-BoxY/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxXLeft), \
         mm2mils100(BoxY/2), \
         mm2mils100(BoxXLeft + BoxX), \
         mm2mils100(BoxY/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 47a1d21..4071a05
@@ -37,7 +37,7 @@ def mm2mils100( mm ):
 
 print('# author: Bdale Garbee')
 print('# email: bdale@gag.com')
-print('# dist-license: GPL 2')
+print('# dist-license: GPL 3')
 print('# use-license: unlimited')
 
 print('Element[0x0 "SJ-352X-SMT" "" "" 0 0 0 0 0 100 0x0]')
old mode 100755 (executable)
new mode 100644 (file)
index ccc3413..be304de
@@ -23,7 +23,7 @@ def mm2mils100( mm ):
 
 print ('# author: Bdale Garbee')
 print ('# email: bdale@gag.com')
-print ('# dist-license: GPL 2')
+print ('# dist-license: GPL 3')
 print ('# use-license: unlimited')
 
 print ('Element[0x0 "SOIJ8" "" "" 0 0 -10161 -12011 0 100 0x0]')
old mode 100755 (executable)
new mode 100644 (file)
index 3dda6f0..ef1ec6d
@@ -23,7 +23,7 @@ def mm2mils100( mm ):
 
 print ('# author: Bdale Garbee')
 print ('# email: bdale@gag.com')
-print ('# dist-license: GPL 2')
+print ('# dist-license: GPL 3')
 print ('# use-license: unlimited')
 
 print ('Element[0x0 "SOIJ8" "" "" 0 0 -10161 -12011 0 100 0x0]')
old mode 100755 (executable)
new mode 100644 (file)
index ea3fc56..17f77ed
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for TDK beeper
@@ -14,32 +14,32 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "TDK_PS12" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pin[',\
+print('Element[0x0 "TDK_PS12" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pin[',\
        mm2mils100(-PinSpacing/2), \
        0, \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(0.70), \
-       '"pin1" "1" 0x0101]'
+       '"pin1" "1" 0x0101]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpacing/2), \
        0, \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(0.70), \
-       '"pin2" "2" 0x0001]'
+       '"pin2" "2" 0x0001]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        0, \
        0, \
        mm2mils100(BodyDiam/2), \
@@ -47,6 +47,6 @@ print '   ElementArc[',\
        0, \
        360, \
        1000, \
-       ']'
+       ']')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 570eb50..576e41d
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for QFN32 package used by TI CC1120
@@ -20,16 +20,16 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN36" "" "" 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), \
@@ -37,26 +37,26 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        0, \
        0, \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
 
 # vias in the ground pad under the chip
 for viarow in range (-1,2):
   for viacol in range (-1,2):
-    print '   Pin[',\
+    print('   Pin[',\
        mm2mils100(2 * viacol * CoreSquare / 5), \
        mm2mils100(2 * viarow * CoreSquare / 5), \
        2900, \
        2500, \
        0, \
        1500, \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
 # break pad under chip into a grid to control the resist and paste masks
 for viarow in range (-2, 3):
   for viacol in range (-2, 3):
     if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
       # copper sub-square with resist over vias
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -64,10 +64,10 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        0, \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
     else:
       # copper sub-square without resist
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -75,9 +75,9 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
       # copper spot to control paste mask generation
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -85,11 +85,11 @@ for viarow in range (-2, 3):
        1500, \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin33" "33" "square"]'
+       '"pin33" "33" "square"]')
 
 # pins
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
@@ -97,9 +97,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
@@ -107,9 +107,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -117,9 +117,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -127,10 +127,10 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.6), \
        mm2mils100(2.6), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 521430d..5e8ae25
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for QFN32 package used by TI CC1120
@@ -20,16 +20,16 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN36" "" "" 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), \
@@ -37,26 +37,26 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        0, \
        0, \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
 
 # vias in the ground pad under the chip
 for viarow in range (-1,2):
   for viacol in range (-1,2):
-    print '   Pin[',\
+    print('   Pin[',\
        mm2mils100(2 * viacol * CoreSquare / 5), \
        mm2mils100(2 * viarow * CoreSquare / 5), \
        2900, \
        2500, \
        0, \
        1500, \
-       '"pin33" "33" 0x0002]'
+       '"pin33" "33" 0x0002]')
 
 # break pad under chip into a grid to control the resist and paste masks
 for viarow in range (-2, 3):
   for viacol in range (-2, 3):
     if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
       # copper sub-square with resist over vias
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -64,10 +64,10 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        0, \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
     else:
       # copper sub-square without resist
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -75,9 +75,9 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin33" "33" "square,nopaste"]'
+       '"pin33" "33" "square,nopaste"]')
       # copper spot to control paste mask generation
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -85,11 +85,11 @@ for viarow in range (-2, 3):
        1500, \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin33" "33" "square"]'
+       '"pin33" "33" "square"]')
 
 # pins
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
@@ -97,9 +97,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
@@ -107,9 +107,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -117,9 +117,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-4.5 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -127,10 +127,10 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.6), \
        mm2mils100(2.6), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index e34dc2d..241a059
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2008 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for QFN36 package used by TI CC1111
@@ -20,16 +20,16 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN36" "" "" 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), \
@@ -37,26 +37,26 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        0, \
        0, \
-       '"pin37" "37" "square,nopaste"]'
+       '"pin37" "37" "square,nopaste"]')
 
 # vias in the ground pad under the chip
 for viarow in range (-1,2):
   for viacol in range (-1,2):
-    print '   Pin[',\
+    print('   Pin[',\
        mm2mils100(2 * viacol * CoreSquare / 5), \
        mm2mils100(2 * viarow * CoreSquare / 5), \
        2900, \
        2500, \
        0, \
        1500, \
-       '"pin37" "37" 0x0002]'
+       '"pin37" "37" 0x0002]')
 
 # break pad under chip into a grid to control the resist and paste masks
 for viarow in range (-2, 3):
   for viacol in range (-2, 3):
     if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
       # copper sub-square with resist over vias
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -64,10 +64,10 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        0, \
-       '"pin37" "37" "square,nopaste"]'
+       '"pin37" "37" "square,nopaste"]')
     else:
       # copper sub-square without resist
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -75,9 +75,9 @@ for viarow in range (-2, 3):
        mm2mils100((CoreSquare)/5), \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin37" "37" "square,nopaste"]'
+       '"pin37" "37" "square,nopaste"]')
       # copper spot to control paste mask generation
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / 5), \
        mm2mils100(viarow * CoreSquare / 5), \
        mm2mils100(viacol * CoreSquare / 5), \
@@ -85,11 +85,11 @@ for viarow in range (-2, 3):
        1500, \
        0, \
        mm2mils100((CoreSquare)/5), \
-       '"pin37" "37" "square"]'
+       '"pin37" "37" "square"]')
 
 # pins
 for pin in range (1,10):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
@@ -97,9 +97,9 @@ for pin in range (1,10):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (28-pin), '"%i"' % (28-pin), '"square"]'
+       '"pin%i"' % (28-pin), '"%i"' % (28-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
@@ -107,9 +107,9 @@ for pin in range (1,10):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -117,9 +117,9 @@ for pin in range (1,10):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (19-pin), '"%i"' % (19-pin), '"square"]'
+       '"pin%i"' % (19-pin), '"%i"' % (19-pin), '"square"]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100(-2.5 + pin * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -127,10 +127,10 @@ for pin in range (1,10):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (27+pin), '"%i"' % (27+pin), '"square"]'
+       '"pin%i"' % (27+pin), '"%i"' % (27+pin), '"square"]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.6), \
        mm2mils100(2.6), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 34098ec..661d6db
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2015 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Emit PCB footprint for TO-252AA parts from International Rectifier
@@ -23,14 +23,14 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "TO252AA" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "TO252AA" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(0), \
        mm2mils100(0), \
        mm2mils100(0), \
@@ -38,9 +38,9 @@ print '   Pad[',\
        mm2mils100(PadSquare), \
        mm2mils100(1.5), \
        mm2mils100(PadSquare+0.4), \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-PinSpacing/2 - PinWidth/2), \
        mm2mils100(Pad2Pin + PinWidth/2), \
        mm2mils100(-PinSpacing/2 - PinWidth/2), \
@@ -48,9 +48,9 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(1.5), \
        mm2mils100(PinWidth+0.4), \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(PinSpacing/2 + PinWidth/2), \
        mm2mils100(Pad2Pin + PinWidth/2), \
        mm2mils100(PinSpacing/2 + PinWidth/2), \
@@ -58,34 +58,34 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        mm2mils100(1.5), \
        mm2mils100(PinWidth+0.4), \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyWidth/2), \
         mm2mils100(BodyOffset - BodyHeight/2), \
         mm2mils100(BodyWidth/2), \
         mm2mils100(BodyOffset - BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyWidth/2), \
         mm2mils100(BodyOffset + BodyHeight/2), \
         mm2mils100(BodyWidth/2), \
         mm2mils100(BodyOffset + BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(BodyWidth/2), \
         mm2mils100(BodyOffset - BodyHeight/2), \
         mm2mils100(BodyWidth/2), \
         mm2mils100(BodyOffset + BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyWidth/2), \
         mm2mils100(BodyOffset - BodyHeight/2), \
         mm2mils100(-BodyWidth/2), \
         mm2mils100(BodyOffset + BodyHeight/2), \
-        '1000 ]'
+        '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 21afe87..8cb6c65
@@ -1,14 +1,14 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2013 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for U-Blox MAX-6 GPS receiver
 #
 
 # dimensions in mm fromL
-#      LEA-6_NEO-6_MAX-6_HardwareIntegrationManual_(GPS.G6-HW-09007).pdf
+#         LEA-6_NEO-6_MAX-6_HardwareIntegrationManual_(GPS.G6-HW-09007).pdf
 
 BodyHeight = 10.1
-BodyWidth = 12.5                       # physical is 9.7, 12.5 includes paste
+BodyWidth = 12.5                           # physical is 9.7, 12.5 includes paste
 
 CornerPinWidth = 0.7
 MainPinWidth = 0.8
@@ -20,132 +20,132 @@ RowSpacing = RowCenters - PinHeight
 PasteTongueWidthDelta = 0.2
 PasteRowSpacing = 9.7
 PasteHeight = (12.5 - 9.7) / 2
-#PasteHeight = 0.8                     # not quite what the manual says
+#PasteHeight = 0.8                           # not quite what the manual says
 
 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 )
+         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "UBLOX-MAX" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "UBLOX-MAX" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 # first, lay down the copper but with no paste mask defined
 for pin in range (0,9):
     if (pin == 0) or (pin == 8):
-       PinWidth = CornerPinWidth
+         PinWidth = CornerPinWidth
     else:
-       PinWidth = MainPinWidth
-    print '   Pad[',\
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square,nopaste"]'
-
-    print '   Pad[',\
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinWidth/2), \
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square,nopaste"]'
+         PinWidth = MainPinWidth
+    print('   Pad[',\
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+         mm2mils100(PinWidth), \
+         mm2mils100(PinSpacing - PinWidth), \
+           mm2mils100(PinWidth)+600, \
+         '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square,nopaste"]')
+
+    print('   Pad[',\
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(RowSpacing/2 + PinWidth/2), \
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+         mm2mils100(PinWidth), \
+         mm2mils100(PinSpacing - PinWidth), \
+           mm2mils100(PinWidth)+600, \
+         '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square,nopaste"]')
 
 # now define the paste mask, which needs two rectangles per pad in T-shape
 # the first rectangle is full pin height but narrower
 for pin in range (0,9):
     if (pin == 0) or (pin == 8):
-       PinWidth = CornerPinWidth - PasteTongueWidthDelta
+         PinWidth = CornerPinWidth - PasteTongueWidthDelta
     else:
-       PinWidth = MainPinWidth - PasteTongueWidthDelta
-    print '   Pad[',\
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]'
-
-    print '   Pad[',\
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinWidth/2), \
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]'
+         PinWidth = MainPinWidth - PasteTongueWidthDelta
+    print('   Pad[',\
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+         mm2mils100(PinWidth), \
+         mm2mils100(PinSpacing - PinWidth), \
+           mm2mils100(PinWidth)+600, \
+         '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]')
+
+    print('   Pad[',\
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(RowSpacing/2 + PinWidth/2), \
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+         mm2mils100(PinWidth), \
+         mm2mils100(PinSpacing - PinWidth), \
+           mm2mils100(PinWidth)+600, \
+         '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]')
 
 # the second rectangle is partial height but full width
 for pin in range (0,9):
     if (pin == 0) or (pin == 8):
-       PinWidth = CornerPinWidth
+         PinWidth = CornerPinWidth
     else:
-       PinWidth = MainPinWidth
-    print '   Pad[',\
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(-(PasteRowSpacing/2 + PinWidth/2)), \
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(-(PasteRowSpacing/2 + PasteHeight - PinWidth/2)), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]'
-
-    print '   Pad[',\
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(PasteRowSpacing/2 + PinWidth/2), \
-       mm2mils100((pin-4) * PinSpacing), \
-       mm2mils100(PasteRowSpacing/2 + PasteHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]'
-
-
-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(-4 * PinSpacing), \
-       mm2mils100(RowSpacing/2-PinHeight/2), \
-       '500 500 0 360 1000 ]'
-
-print ")"
+         PinWidth = MainPinWidth
+    print('   Pad[',\
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(-(PasteRowSpacing/2 + PinWidth/2)), \
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(-(PasteRowSpacing/2 + PasteHeight - PinWidth/2)), \
+         mm2mils100(PinWidth), \
+         mm2mils100(PinSpacing - PinWidth), \
+           mm2mils100(PinWidth)+600, \
+         '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]')
+
+    print('   Pad[',\
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(PasteRowSpacing/2 + PinWidth/2), \
+          mm2mils100((pin-4) * PinSpacing), \
+         mm2mils100(PasteRowSpacing/2 + PasteHeight - PinWidth/2), \
+         mm2mils100(PinWidth), \
+         mm2mils100(PinSpacing - PinWidth), \
+           mm2mils100(PinWidth)+600, \
+         '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]')
+
+
+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(-4 * PinSpacing), \
+         mm2mils100(RowSpacing/2-PinHeight/2), \
+         '500 500 0 360 1000 ]')
+
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 86da5f6..bb9ef48
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2020 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for U-Blox ZOE-8 GPS receiver
@@ -26,13 +26,13 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "UBLOX-ZOE" "" "" 0 0 11000 0 0 100 0x0]'
-print "("
+print('Element[0x0 "UBLOX-ZOE" "" "" 0 0 11000 0 0 100 0x0]')
+print("(")
 
 rows = ['A','B','C','D','E','F','G','H','J']
 for row in rows:
@@ -40,7 +40,7 @@ for row in rows:
   for col in range (1,10):     # col wil run 1..9
     ThisPin = row+str(col)
     if ThisPin in ValidPin:
-      print '   Pad[',\
+      print('   Pad[',\
         mm2mils100((col-5) * PadSpacing), \
         mm2mils100((rownum-4) * PadSpacing), \
         mm2mils100((col-5) * PadSpacing), \
@@ -48,39 +48,39 @@ for row in rows:
         mm2mils100(PadDiam), \
         mm2mils100(Clearance), \
         mm2mils100(Mask), \
-        '"%s"' % ThisPin, '"%s"' % ThisPin, '""]'
+        '"%s"' % ThisPin, '"%s"' % ThisPin, '""]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodySize/2), \
         mm2mils100(-BodySize/2), \
         mm2mils100(-BodySize/2), \
         mm2mils100( BodySize/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodySize/2), \
         mm2mils100( BodySize/2), \
         mm2mils100( BodySize/2), \
         mm2mils100( BodySize/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100( BodySize/2), \
         mm2mils100( BodySize/2), \
         mm2mils100( BodySize/2), \
         mm2mils100(-BodySize/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100( BodySize/2), \
         mm2mils100(-BodySize/2), \
         mm2mils100(-BodySize/2), \
         mm2mils100(-BodySize/2), \
-        '1000 ]'
+        '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
         mm2mils100(-5 * PadSpacing), \
         mm2mils100(-5 * PadSpacing), \
-        '500 500 0 360 1000 ]'
+        '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 381c72e..690c4d6
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Pulse Electronics W3011A GPS chip antenna
@@ -17,15 +17,15 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "W3011A" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "W3011A" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 # pad 1 (signal trace)
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(+PinSpacing/2+PinHeight/2), \
        mm2mils100(1.60 - PinHeight/2), \
        mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
@@ -33,9 +33,9 @@ print '   Pad[',\
        mm2mils100(PinHeight), \
        0, \
        mm2mils100(PinHeight + 0.1), \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(+PinSpacing/2+PinHeight/2), \
        mm2mils100(PinHeight/2), \
        mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
@@ -43,9 +43,9 @@ print '   Pad[',\
        mm2mils100(PinHeight), \
        0, \
        mm2mils100(PinHeight + 0.1), \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-PinSpacing/2-PinWidth/2), \
        mm2mils100(PinWidth/2), \
        mm2mils100(-PinSpacing/2-PinWidth/2), \
@@ -53,34 +53,34 @@ print '   Pad[',\
        mm2mils100(PinWidth), \
        0, \
        mm2mils100(PinWidth + 0.1), \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(ClearWidth/2), \
        mm2mils100(0), \
        mm2mils100(ClearWidth/2), \
        mm2mils100(ClearHeight), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-ClearWidth/2), \
        mm2mils100(0), \
        mm2mils100(-ClearWidth/2), \
        mm2mils100(ClearHeight), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-ClearWidth/2-0.2), \
        mm2mils100(0), \
        mm2mils100(ClearWidth/2+0.2), \
        mm2mils100(0), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-ClearWidth/2), \
        mm2mils100(ClearHeight), \
        mm2mils100(ClearWidth/2), \
        mm2mils100(ClearHeight), \
-       '1000 ]'
+       '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index be6995d..41af8d0
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for
@@ -41,173 +41,129 @@ 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 2'
-print '# use-license: unlimited'
-
-print 'Element[0x0 "USBmicroB" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
-print '   Pad[', \
-       mm2mils100(0), \
-       mm2mils100(PinWidth/2), \
-       mm2mils100(0), \
-       mm2mils100(PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       (MinClearance*2), \
-       mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"D+" "3" 0x0100]'
-
-print '   Pad[', \
-       mm2mils100(-PinSpacing), \
-       mm2mils100(PinWidth/2), \
-       mm2mils100(-PinSpacing), \
-       mm2mils100(PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       (MinClearance*2), \
-       mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"D-" "2" 0x0100]'
-
-print '   Pad[', \
-       mm2mils100(PinSpacing), \
-       mm2mils100(PinWidth/2), \
-       mm2mils100(PinSpacing), \
-       mm2mils100(PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       (MinClearance*2), \
-       mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"HS" "4" 0x0100]'
-
-print '   Pad[', \
-       mm2mils100(-PinSpacing*2), \
-       mm2mils100(PinWidth/2), \
-       mm2mils100(-PinSpacing*2), \
-       mm2mils100(PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       (MinClearance*2), \
-       mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"VBUS" "1" 0x0100]'
-
-print '   Pad[', \
-       mm2mils100(PinSpacing*2), \
-       mm2mils100(PinWidth/2), \
-       mm2mils100(PinSpacing*2), \
-       mm2mils100(PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       (MinClearance*2), \
-       mm2mils100(PinWidth)+(MaskDelta*2), \
-       '"GND" "5" 0x0100]'
+        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 "USBmicroB" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
+print('   Pad[', \
+         mm2mils100(0), \
+        mm2mils100(PinWidth/2), \
+         mm2mils100(0), \
+        mm2mils100(PinHeight - PinWidth/2), \
+        mm2mils100(PinWidth), \
+        (MinClearance*2), \
+          mm2mils100(PinWidth)+(MaskDelta*2), \
+        '"D+" "3" 0x0100]')
+
+print('   Pad[', \
+         mm2mils100(-PinSpacing), \
+        mm2mils100(PinWidth/2), \
+         mm2mils100(-PinSpacing), \
+        mm2mils100(PinHeight - PinWidth/2), \
+        mm2mils100(PinWidth), \
+        (MinClearance*2), \
+          mm2mils100(PinWidth)+(MaskDelta*2), \
+        '"D-" "2" 0x0100]')
+
+print('   Pad[', \
+         mm2mils100(PinSpacing), \
+        mm2mils100(PinWidth/2), \
+         mm2mils100(PinSpacing), \
+        mm2mils100(PinHeight - PinWidth/2), \
+        mm2mils100(PinWidth), \
+        (MinClearance*2), \
+          mm2mils100(PinWidth)+(MaskDelta*2), \
+        '"HS" "4" 0x0100]')
+
+print('   Pad[', \
+         mm2mils100(-PinSpacing*2), \
+        mm2mils100(PinWidth/2), \
+         mm2mils100(-PinSpacing*2), \
+        mm2mils100(PinHeight - PinWidth/2), \
+        mm2mils100(PinWidth), \
+        (MinClearance*2), \
+          mm2mils100(PinWidth)+(MaskDelta*2), \
+        '"VBUS" "1" 0x0100]')
+
+print('   Pad[', \
+         mm2mils100(PinSpacing*2), \
+        mm2mils100(PinWidth/2), \
+         mm2mils100(PinSpacing*2), \
+        mm2mils100(PinHeight - PinWidth/2), \
+        mm2mils100(PinWidth), \
+        (MinClearance*2), \
+          mm2mils100(PinWidth)+(MaskDelta*2), \
+        '"GND" "5" 0x0100]')
 
 # the two ground / mounting tabs in line with signal pins
 
-print '   Pad[', \
-       mm2mils100(TabInner + TabHeight/2), \
-       mm2mils100(TabHeight/2), \
-       mm2mils100(TabInner + TabWidth - TabHeight/2), \
-       mm2mils100(TabHeight/2), \
-       mm2mils100(TabHeight), \
-       (MinClearance*2), \
-       mm2mils100(TabHeight)+(MaskDelta*2), \
-       '"tab1" "G" 0x0100]'
-
-print '   Pad[', \
-       mm2mils100(-TabInner - TabHeight/2), \
-       mm2mils100(TabHeight/2), \
-       mm2mils100(-TabInner - TabWidth + TabHeight/2), \
-       mm2mils100(TabHeight/2), \
-       mm2mils100(TabHeight), \
-       (MinClearance*2), \
-       mm2mils100(TabHeight)+(MaskDelta*2), \
-       '"tab2" "G" 0x0100]'
+print('   Pad[', \
+          mm2mils100(TabInner + TabHeight/2), \
+        mm2mils100(TabHeight/2), \
+        mm2mils100(TabInner + TabWidth - TabHeight/2), \
+        mm2mils100(TabHeight/2), \
+        mm2mils100(TabHeight), \
+        (MinClearance*2), \
+          mm2mils100(TabHeight)+(MaskDelta*2), \
+        '"tab1" "G" 0x0100]')
+
+print('   Pad[', \
+          mm2mils100(-TabInner - TabHeight/2), \
+        mm2mils100(TabHeight/2), \
+        mm2mils100(-TabInner - TabWidth + TabHeight/2), \
+        mm2mils100(TabHeight/2), \
+        mm2mils100(TabHeight), \
+        (MinClearance*2), \
+          mm2mils100(TabHeight)+(MaskDelta*2), \
+        '"tab2" "G" 0x0100]')
 
 # the two ground / mounting tabs near the center of area
 
-print '   Pad[', \
-       mm2mils100(PadInner + PadHeight/2), \
-       mm2mils100(PadCenter), \
-       mm2mils100(PadInner + PadWidth - PadHeight/2), \
-       mm2mils100(PadCenter), \
-       mm2mils100(PadHeight), \
-       (MinClearance*2), \
-       mm2mils100(PadHeight)+(MaskDelta*2), \
-       '"tab3" "G" 0x0100]'
-
-print '   Pad[', \
-       mm2mils100(-PadInner - PadHeight/2), \
-       mm2mils100(PadCenter), \
-       mm2mils100(-PadInner - PadWidth + PadHeight/2), \
-       mm2mils100(PadCenter), \
-       mm2mils100(PadHeight), \
-       (MinClearance*2), \
-       mm2mils100(PadHeight)+(MaskDelta*2), \
-       '"tab4" "G" 0x0100]'
+print('   Pad[', \
+          mm2mils100(PadInner + PadHeight/2), \
+        mm2mils100(PadCenter), \
+        mm2mils100(PadInner + PadWidth - PadHeight/2), \
+        mm2mils100(PadCenter), \
+        mm2mils100(PadHeight), \
+        (MinClearance*2), \
+          mm2mils100(PadHeight)+(MaskDelta*2), \
+        '"tab3" "G" 0x0100]')
+
+print('   Pad[', \
+          mm2mils100(-PadInner - PadHeight/2), \
+        mm2mils100(PadCenter), \
+        mm2mils100(-PadInner - PadWidth + PadHeight/2), \
+        mm2mils100(PadCenter), \
+        mm2mils100(PadHeight), \
+        (MinClearance*2), \
+          mm2mils100(PadHeight)+(MaskDelta*2), \
+        '"tab4" "G" 0x0100]')
 
 # the two "wing tab" ground / mounting pads on the sides
 
-print '   Pad[', \
-       mm2mils100(WingInner + WingWidth/2), \
-       mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
-       mm2mils100(WingInner + WingWidth/2), \
-       mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
-       mm2mils100(WingWidth), \
-       (MinClearance*2), \
-       mm2mils100(WingWidth)+(MaskDelta*2), \
-       '"tab5" "G" 0x0100]'
-
-print '   Pad[', \
-       mm2mils100(-WingInner - WingWidth/2), \
-       mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
-       mm2mils100(-WingInner - WingWidth/2), \
-       mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
-       mm2mils100(WingWidth), \
-       (MinClearance*2), \
-       mm2mils100(WingWidth)+(MaskDelta*2), \
-       '"tab6" "G" 0x0100]'
-
-# box around actual connector size, with line at PCB edge
-#
-#print '   ElementLine[',\
-#      mm2mils100(-BoxWidth/2), \
-#      mm2mils100(0), \
-#      mm2mils100(-BoxWidth/2), \
-#      mm2mils100(BoxHeight), \
-#      '1000 ]'
-#
-#print '   ElementLine[',\
-#      mm2mils100(BoxWidth/2), \
-#      mm2mils100(0), \
-#      mm2mils100(BoxWidth/2), \
-#      mm2mils100(BoxHeight), \
-#      '1000 ]'
-#
-#print '   ElementLine[',\
-#      mm2mils100(-BoxWidth/2), \
-#      mm2mils100(0), \
-#      mm2mils100(BoxWidth/2), \
-#      mm2mils100(0), \
-#      '1000 ]'
-#
-#print '   ElementLine[',\
-#      mm2mils100(-BoxWidth/2), \
-#      mm2mils100(BoxHeight), \
-#      mm2mils100(BoxWidth/2), \
-#      mm2mils100(BoxHeight), \
-#      '1000 ]'
-#
-#print '   ElementLine[',\
-#      mm2mils100(-EdgeWidth/2), \
-#      mm2mils100(EdgeHeight), \
-#      mm2mils100(-BoxWidth/2), \
-#      mm2mils100(EdgeHeight), \
-#      '1000 ]'
-#
-#print '   ElementLine[',\
-#      mm2mils100(BoxWidth/2), \
-#      mm2mils100(EdgeHeight), \
-#      mm2mils100(EdgeWidth/2), \
-#      mm2mils100(EdgeHeight), \
-#      '1000 ]'
-#
-print ")"
+print('   Pad[', \
+          mm2mils100(WingInner + WingWidth/2), \
+        mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
+        mm2mils100(WingInner + WingWidth/2), \
+        mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
+        mm2mils100(WingWidth), \
+        (MinClearance*2), \
+          mm2mils100(WingWidth)+(MaskDelta*2), \
+        '"tab5" "G" 0x0100]')
+
+print('   Pad[', \
+          mm2mils100(-WingInner - WingWidth/2), \
+        mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
+        mm2mils100(-WingInner - WingWidth/2), \
+        mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
+        mm2mils100(WingWidth), \
+        (MinClearance*2), \
+          mm2mils100(WingWidth)+(MaskDelta*2), \
+        '"tab6" "G" 0x0100]')
+
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 55c52d3..5687b6b
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2015 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for littlefuse 345 fuse holder
@@ -16,63 +16,63 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "littlefuse345" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pin(',\
+print('Element[0x0 "littlefuse345" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pin(',\
        0, \
        0, \
        125, \
        30, \
        150, \
        56, \
-       '"pin1" "1" 0x0001)'
+       '"pin1" "1" 0x0001)')
 
-print '   Pin(',\
+print('   Pin(',\
        PinSpace1, \
        0, \
        125, \
        30, \
        150, \
        56, \
-       '"pin2" "2" 0x0001)'
+       '"pin2" "2" 0x0001)')
 
-print '   Pin(',\
+print('   Pin(',\
        PinSpace1 + PinSpace2, \
        0, \
        125, \
        30, \
        150, \
        56, \
-       '"pin3" "3" 0x0001)'
+       '"pin3" "3" 0x0001)')
 
 
-print '   ElementLine(',\
+print('   ElementLine(',\
        0, \
        -(BodyHeight/2), \
        0, \
        (BodyHeight/2), \
        5, \
-       ')'
+       ')')
 
-print '   ElementLine(',\
+print('   ElementLine(',\
        0, \
        -(BodyHeight/2), \
        BodyWidth, \
        -(BodyHeight/2), \
        5, \
-       ')'
+       ')')
 
-print '   ElementLine(',\
+print('   ElementLine(',\
        0, \
        (BodyHeight/2), \
        BodyWidth, \
        (BodyHeight/2), \
        5, \
-       ')'
+       ')')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index aad46c3..df75402
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2015 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Omron G5RL-1A-E relays
@@ -23,98 +23,98 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "G5RL-1A-E" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pin[',\
+print('Element[0x0 "G5RL-1A-E" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(RowSpace/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin1" "1" 0x0001]'
+       '"pin1" "1" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpace1), \
        mm2mils100(RowSpace/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin3" "3" 0x0001]'
+       '"pin3" "3" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpace1 + PinSpace2), \
        mm2mils100(RowSpace/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin4" "4" 0x0001]'
+       '"pin4" "4" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(-RowSpace/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin8" "8" 0x0001]'
+       '"pin8" "8" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpace1), \
        mm2mils100(-RowSpace/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin6" "6" 0x0001]'
+       '"pin6" "6" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpace1 + PinSpace2), \
        mm2mils100(-RowSpace/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin5" "5" 0x0001]'
+       '"pin5" "5" 0x0001]')
 
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        -mm2mils100(BackSpace), \
        -mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth-BackSpace), \
        -mm2mils100(BodyHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        -mm2mils100(BackSpace), \
        mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth-BackSpace), \
        mm2mils100(BodyHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        -mm2mils100(BackSpace), \
        mm2mils100(BodyHeight/2), \
        -mm2mils100(BackSpace), \
        -mm2mils100(BodyHeight/2), \
        500, \
-       ']'
+       ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(BodyWidth-BackSpace), \
        mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth-BackSpace), \
        -mm2mils100(BodyHeight/2), \
        500, \
-       ']'
+       ']')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index a88321c..ccd2257
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2018 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for LGA 14 such as ADXL375
@@ -20,87 +20,87 @@ 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 )
+        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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "lga14" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "lga14" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,6):
-    print '   Pad[',\
-       mm2mils100((pin-2.5) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
-       mm2mils100((pin-2.5) * PinSpacing), \
-       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (13 - pin), '"%i"' % (13 - pin), '0x0100]'
+    print('   Pad[',\
+         mm2mils100((pin-2.5) * PinSpacing), \
+        mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+         mm2mils100((pin-2.5) * PinSpacing), \
+        mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % (13 - pin), '"%i"' % (13 - pin), '0x0100]')
 
-    print '   Pad[',\
-       mm2mils100((pin-2.5) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinWidth/2), \
-       mm2mils100((pin-2.5) * PinSpacing), \
-       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+    print('   Pad[',\
+         mm2mils100((pin-2.5) * PinSpacing), \
+        mm2mils100(RowSpacing/2 + PinWidth/2), \
+         mm2mils100((pin-2.5) * PinSpacing), \
+        mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
 
-    print '   Pad[',\
-       mm2mils100(EndSpacing/2 + PinWidth/2), \
-       0, \
-       mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
-       0, \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % 7, '"%i"' % 7, '0x0100]'
+    print('   Pad[',\
+        mm2mils100(EndSpacing/2 + PinWidth/2), \
+         0, \
+        mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
+         0, \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % 7, '"%i"' % 7, '0x0100]')
 
-    print '   Pad[',\
-       -mm2mils100(EndSpacing/2 + PinWidth/2), \
-       0, \
-       -mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
-       0, \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % 14, '"%i"' % 14, '0x0100]'
+    print('   Pad[',\
+        -mm2mils100(EndSpacing/2 + PinWidth/2), \
+         0, \
+        -mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
+         0, \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % 14, '"%i"' % 14, '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 '   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[',\
+print('   ElementArc[',\
         mm2mils100(-2.75 * PinSpacing), \
         mm2mils100(RowSpacing*2), \
-       '500 500 0 360 1000 ]'
+        '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 2b077b1..0cfc3e1
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2019 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for Bosch LGA 14 such as BMX160
@@ -20,88 +20,88 @@ 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 )
+        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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "lga14b" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "lga14b" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,4):
-    print '   Pad[',\
-       mm2mils100(-(HRowSpacing/2 + PinWidth/2)), \
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(-(HRowSpacing/2 + PinHeight - PinWidth/2)), \
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
-
-    print '   Pad[',\
-       mm2mils100(HRowSpacing/2 + PinWidth/2), \
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(HRowSpacing/2 + PinHeight - PinWidth/2), \
-       mm2mils100((pin-1.5) * PinSpacing), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (11 - pin), '"%i"' % (11 - pin), '0x0100]'
+    print('   Pad[',\
+        mm2mils100(-(HRowSpacing/2 + PinWidth/2)), \
+         mm2mils100((pin-1.5) * PinSpacing), \
+        mm2mils100(-(HRowSpacing/2 + PinHeight - PinWidth/2)), \
+         mm2mils100((pin-1.5) * PinSpacing), \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
+
+    print('   Pad[',\
+        mm2mils100(HRowSpacing/2 + PinWidth/2), \
+         mm2mils100((pin-1.5) * PinSpacing), \
+        mm2mils100(HRowSpacing/2 + PinHeight - PinWidth/2), \
+         mm2mils100((pin-1.5) * PinSpacing), \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % (11 - pin), '"%i"' % (11 - pin), '0x0100]')
 
 for pin in range (0,3):
-    print '   Pad[',\
-       mm2mils100((pin-1) * PinSpacing), \
-       mm2mils100(-(VRowSpacing/2 + PinWidth/2)), \
-       mm2mils100((pin-1) * PinSpacing), \
-       mm2mils100(-(VRowSpacing/2 + PinHeight - PinWidth/2)), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (14 - pin), '"%i"' % (14 - pin), '0x0100]'
-
-    print '   Pad[',\
-       mm2mils100((pin-1) * PinSpacing), \
-       mm2mils100(VRowSpacing/2 + PinWidth/2), \
-       mm2mils100((pin-1) * PinSpacing), \
-       mm2mils100(VRowSpacing/2 + PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinWidth)+600, \
-       '"pin%i"' % (5 + pin), '"%i"' % (5 + 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(-HRowSpacing), \
+    print('   Pad[',\
+         mm2mils100((pin-1) * PinSpacing), \
+        mm2mils100(-(VRowSpacing/2 + PinWidth/2)), \
+         mm2mils100((pin-1) * PinSpacing), \
+        mm2mils100(-(VRowSpacing/2 + PinHeight - PinWidth/2)), \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % (14 - pin), '"%i"' % (14 - pin), '0x0100]')
+
+    print('   Pad[',\
+         mm2mils100((pin-1) * PinSpacing), \
+        mm2mils100(VRowSpacing/2 + PinWidth/2), \
+         mm2mils100((pin-1) * PinSpacing), \
+        mm2mils100(VRowSpacing/2 + PinHeight - PinWidth/2), \
+        mm2mils100(PinWidth), \
+        mm2mils100(PinSpacing - PinWidth), \
+          mm2mils100(PinWidth)+600, \
+        '"pin%i"' % (5 + pin), '"%i"' % (5 + 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(-HRowSpacing), \
         mm2mils100(-2.25 * PinSpacing), \
-       '500 500 0 360 1000 ]'
+        '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 0f582c8..c9d0af7
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2013 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Linear Technologies S8 footprint,
@@ -21,15 +21,15 @@ def mm2mils100( mm ):
 def inch2mils100( inch ):
        return int( inch * 1000.0 * 100.0 + 0.5 )
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
 for pin in range (0,4):
-    print '   Pad[',\
+    print('   Pad[',\
        inch2mils100((pin-1.5) * PinSpacing), \
        inch2mils100(-(RowSpacing/2 + PinWidth/2)), \
        inch2mils100((pin-1.5) * PinSpacing), \
@@ -37,9 +37,9 @@ for pin in range (0,4):
        inch2mils100(PinWidth), \
        inch2mils100(PinSpacing - PinWidth), \
        inch2mils100(PinWidth)+600, \
-       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+       '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        inch2mils100((pin-1.5) * PinSpacing), \
        inch2mils100(RowSpacing/2 + PinWidth/2), \
        inch2mils100((pin-1.5) * PinSpacing), \
@@ -47,39 +47,39 @@ for pin in range (0,4):
        inch2mils100(PinWidth), \
        inch2mils100(PinSpacing - PinWidth), \
        inch2mils100(PinWidth)+600, \
-       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+       '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
 
-#print '   ElementLine[',\
+#print('   ElementLine[',\
 #      inch2mils100(-BodyHeight/2), \
 #      inch2mils100(-BodyWidth/2), \
 #      inch2mils100(-BodyHeight/2), \
 #      inch2mils100( BodyWidth/2), \
-#      '1000 ]'
+#      '1000 ]')
 #
-#print '   ElementLine[',\
+#print('   ElementLine[',\
 #      inch2mils100(-BodyHeight/2), \
 #      inch2mils100( BodyWidth/2), \
 #      inch2mils100( BodyHeight/2), \
 #      inch2mils100( BodyWidth/2), \
-#      '1000 ]'
+#      '1000 ]')
 #
-#print '   ElementLine[',\
+#print('   ElementLine[',\
 #      inch2mils100( BodyHeight/2), \
 #      inch2mils100( BodyWidth/2), \
 #      inch2mils100( BodyHeight/2), \
 #      inch2mils100(-BodyWidth/2), \
-#      '1000 ]'
+#      '1000 ]')
 #
-#print '   ElementLine[',\
+#print('   ElementLine[',\
 #      inch2mils100( BodyHeight/2), \
 #      inch2mils100(-BodyWidth/2), \
 #      inch2mils100(-BodyHeight/2), \
 #      inch2mils100(-BodyWidth/2), \
-#      '1000 ]'
+#      '1000 ]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
         inch2mils100(-1.5 * PinSpacing), \
         inch2mils100(RowSpacing/3), \
-       '500 500 0 360 1000 ]'
+       '500 500 0 360 1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index f05581d..4f54642
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for STM32L151 LQFP100 14 x 14 mm package
@@ -18,17 +18,17 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
 for pin in range (1,26):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 13) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 13) * PinSpacing), \
@@ -36,9 +36,9 @@ for pin in range (1,26):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (26-pin), '"%i"' % (26-pin), '0x0100]'
+       '"pin%i"' % (26-pin), '"%i"' % (26-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 13) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 13) * PinSpacing), \
@@ -46,9 +46,9 @@ for pin in range (1,26):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (50+pin), '"%i"' % (50+pin), '0x0100]'
+       '"pin%i"' % (50+pin), '"%i"' % (50+pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 13) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -56,9 +56,9 @@ for pin in range (1,26):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (101-pin), '"%i"' % (101-pin), '0x0100]'
+       '"pin%i"' % (101-pin), '"%i"' % (101-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 13) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -66,40 +66,40 @@ for pin in range (1,26):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25+pin), '"%i"' % (25+pin), '0x0100]'
+       '"pin%i"' % (25+pin), '"%i"' % (25+pin), '0x0100]')
 
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(  (BodySize/2)+0.3), \
        mm2mils100(-((BodySize/2)+0.3)), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 2b2e628..6b327d0
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2012 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for STM32L151 LQFP48 7 x 7 mm package
@@ -18,17 +18,17 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -36,9 +36,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -46,9 +46,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]'
+       '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -56,9 +56,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]'
+       '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -66,40 +66,40 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]'
+       '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]')
 
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(  (BodySize/2)+0.3), \
        mm2mils100(-((BodySize/2)+0.3)), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 75af30a..bc493f9
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2012 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for STM32L151 LQFP48 7 x 7 mm package
@@ -18,17 +18,17 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
 for pin in range (1,13):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 6.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 6.5) * PinSpacing), \
@@ -36,9 +36,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
+       '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 6.5) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 6.5) * PinSpacing), \
@@ -46,9 +46,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '0x0100]'
+       '"pin%i"' % (24+pin), '"%i"' % (24+pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 6.5) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -56,9 +56,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (49-pin), '"%i"' % (49-pin), '0x0100]'
+       '"pin%i"' % (49-pin), '"%i"' % (49-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 6.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -66,40 +66,40 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]'
+       '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]')
 
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(  (BodySize/2)+0.3), \
        mm2mils100(-((BodySize/2)+0.3)), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 2e09a43..09c5c87
@@ -1,7 +1,7 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
-# Program to emit PCB footprint for STM32L151 LQFP100 14 x 14 mm package
+# Program to emit PCB footprint(for STM32L151 LQFP100 14 x 14 mm package
 #
 
 # dimensions in mm from STM32L151 data sheet 
@@ -18,17 +18,17 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
 for pin in range (1,17):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 8.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 8.5) * PinSpacing), \
@@ -36,9 +36,9 @@ for pin in range (1,17):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '0x0100]'
+       '"pin%i"' % (17-pin), '"%i"' % (17-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 8.5) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 8.5) * PinSpacing), \
@@ -46,9 +46,9 @@ for pin in range (1,17):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (32+pin), '"%i"' % (32+pin), '0x0100]'
+       '"pin%i"' % (32+pin), '"%i"' % (32+pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 8.5) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -56,9 +56,9 @@ for pin in range (1,17):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (65-pin), '"%i"' % (65-pin), '0x0100]'
+       '"pin%i"' % (65-pin), '"%i"' % (65-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 8.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -66,40 +66,40 @@ for pin in range (1,17):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]'
+       '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]')
 
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(  (BodySize/2)+0.3), \
        mm2mils100(-((BodySize/2)+0.3)), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 437ec67..866e4e4
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2021 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for LQFP80 12x12 mm package, ala STM32G491
@@ -18,17 +18,17 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "LQFP80" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP80" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
 for pin in range (1,21):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 10.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 10.5) * PinSpacing), \
@@ -36,9 +36,9 @@ for pin in range (1,21):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (21-pin), '"%i"' % (21-pin), '0x0100]'
+       '"pin%i"' % (21-pin), '"%i"' % (21-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 10.5) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 10.5) * PinSpacing), \
@@ -46,9 +46,9 @@ for pin in range (1,21):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (40+pin), '"%i"' % (40+pin), '0x0100]'
+       '"pin%i"' % (40+pin), '"%i"' % (40+pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((pin - 10.5) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -56,9 +56,9 @@ for pin in range (1,21):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (81-pin), '"%i"' % (81-pin), '0x0100]'
+       '"pin%i"' % (81-pin), '"%i"' % (81-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((pin - 10.5) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -66,40 +66,40 @@ for pin in range (1,21):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (20+pin), '"%i"' % (20+pin), '0x0100]'
+       '"pin%i"' % (20+pin), '"%i"' % (20+pin), '0x0100]')
 
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(  (BodySize/2)+0.3), \
        mm2mils100(-((BodySize/2)+0.3)), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 3532235..be59ecc
@@ -1,7 +1,7 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
-# Program to emit PCB footprint for Amphenol micro SD connector
+# Program to emit PCB footprint(for Amphenol micro SD connector
 #
 
 # dimensions in mm from 101-00303-xx.pdf
@@ -29,16 +29,16 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # mounting pads
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-MntX/2), \
        mm2mils100(MntY1-(MntHeight/2)+(MntWidth/2)), \
        mm2mils100(-MntX/2), \
@@ -46,9 +46,9 @@ print '   Pad[',\
        mm2mils100(MntWidth), \
        mm2mils100(0), \
        mm2mils100(MntWidth + MaskAdd), \
-       '"9" "9" 0x0100]'
+       '"9" "9" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(MntX/2), \
        mm2mils100(MntY1-(MntHeight/2)+(MntWidth/2)), \
        mm2mils100(MntX/2), \
@@ -56,9 +56,9 @@ print '   Pad[',\
        mm2mils100(MntWidth), \
        mm2mils100(0), \
        mm2mils100(MntWidth + MaskAdd), \
-       '"9" "9" 0x0100]'
+       '"9" "9" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-MntX/2), \
        mm2mils100(MntY2-(MntHeight/2)+(MntWidth/2)), \
        mm2mils100(-MntX/2), \
@@ -66,9 +66,9 @@ print '   Pad[',\
        mm2mils100(MntWidth), \
        mm2mils100(0), \
        mm2mils100(MntWidth + MaskAdd), \
-       '"9" "9" 0x0100]'
+       '"9" "9" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(MntX/2), \
        mm2mils100(MntY2-(MntHeight/2)+(MntWidth/2)), \
        mm2mils100(MntX/2), \
@@ -76,11 +76,11 @@ print '   Pad[',\
        mm2mils100(MntWidth), \
        mm2mils100(0), \
        mm2mils100(MntWidth + MaskAdd), \
-       '"9" "9" 0x0100]'
+       '"9" "9" 0x0100]')
 
 # signal pads
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-PinXOffset + (8-pin) * PinSpacing), \
        mm2mils100(PinY-(PinHeight/2)+(PinWidth/2)), \
        mm2mils100(-PinXOffset + (8-pin) * PinSpacing), \
@@ -88,36 +88,36 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(0), \
        mm2mils100(PinWidth + MaskAdd), \
-       '"pin%i"' % (pin), '"%i"' % (pin), '0x0100]'
+       '"pin%i"' % (pin), '"%i"' % (pin), '0x0100]')
 
 # silkscreen box
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxX/2), \
         mm2mils100(0), \
         mm2mils100(BoxX/2), \
         mm2mils100(BoxY), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(-BoxX/2), \
         mm2mils100(0), \
         mm2mils100(-BoxX/2), \
         mm2mils100(BoxY), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(-BoxX/2), \
         mm2mils100(0), \
         mm2mils100(+BoxX/2), \
         mm2mils100(0), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(-BoxX/2), \
         mm2mils100(BoxY), \
         mm2mils100(+BoxX/2), \
         mm2mils100(BoxY), \
-        LineWidth, ']'
+        LineWidth, ']')
 
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 3f1c9db6ec2cf296832af81be6f77f72b2bef0e4..9444493f28973e396fab76654089a43124eadaf1 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2016 by Bdale Garbee <bdale@gag.com>.  GPLv3+
 #
 # Program to emit PCB footprint for Norcomp 182-YYY-113RYY1 connectors
@@ -48,88 +48,88 @@ pinoffset = -(pins - 1) / 4 * PinSpacing
 if pins == 15:
        pinoffset += PinSpacing/2
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 3+'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3+')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "DB%iM"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
-       pinnum = col + 1
+print('Element[0x0 "DB%iM"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
+        pinnum = col + 1
         if pinnum == 1:
-           Flags = '0x0101'
+            Flags = '0x0101'
         else:
-           Flags = '0x0001'
+            Flags = '0x0001'
 
-        print '   Pin[', \
+        print('   Pin[', \
            mm2mils100(-(pinnum-1)*PinSpacing-pinoffset), \
            mm2mils100(RowSpacing/2), \
            mm2mils100(PinDiam+ARing), \
            mm2mils100(Clearance), \
            mm2mils100(PinDiam+ARing+Clearance), \
            mm2mils100(PinDiam), \
-           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
-       pinnum = col + 1 + (pins+1)/2
-       Flags = '0x0001'
-       if pinnum <= pins:
-          print '   Pin[', \
+        pinnum = col + 1 + (pins+1)/2
+        Flags = '0x0001'
+        if pinnum <= pins:
+          print('   Pin[', \
            mm2mils100(-(col)*PinSpacing-pinoffset-PinSpacing/2), \
            mm2mils100(-RowSpacing/2), \
            mm2mils100(PinDiam+ARing), \
            mm2mils100(Clearance), \
            mm2mils100(PinDiam+ARing+Clearance), \
            mm2mils100(PinDiam), \
-           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
 
 pinnum = pins + 1
 
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(MntX/2), \
     mm2mils100(0), \
     mm2mils100(MntDiam+ARing), \
     mm2mils100(Clearance), \
     mm2mils100(MntDiam+ARing+Clearance), \
     mm2mils100(MntDiam), \
-    '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+    '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(-MntX/2), \
     mm2mils100(0), \
     mm2mils100(MntDiam+ARing), \
     mm2mils100(Clearance), \
     mm2mils100(MntDiam+ARing+Clearance), \
     mm2mils100(MntDiam), \
-    '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+    '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(-BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
        mm2mils100(BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(-BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
        mm2mils100(BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
        mm2mils100(BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(-BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
        mm2mils100(-BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print ")"
+print(")")
index 6f74ce583d6c9443acf63cc1001c0540c1f17305..ff4943df5fb8fd4971ea69b5ad7b890d866442b2 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Norcomp 182-YYY-213RYY1 connectors
@@ -49,123 +49,123 @@ pinoffset = (pins - 1) / 4 * PinSpacing
 if pins == 15:
        pinoffset += PinSpacing/2
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
-       pinnum = col + 1
+print('Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
+        pinnum = col + 1
         if pinnum == 1:
-           Flags = '0x0101'
+            Flags = '0x0101'
         else:
-           Flags = '0x0001'
+            Flags = '0x0001'
 
-        print '   Pin[', \
+        print('   Pin[', \
            mm2mils100((pinnum-1)*PinSpacing-pinoffset), \
            mm2mils100(RowSpacing/2), \
            mm2mils100(PinDiam+ARing), \
            mm2mils100(Clearance), \
            mm2mils100(PinDiam+ARing+Clearance), \
            mm2mils100(PinDiam), \
-           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
-       pinnum2 = pinnum + pins
-        print '   Pin[', \
+        pinnum2 = pinnum + pins
+        print('   Pin[', \
            mm2mils100((pinnum-1)*PinSpacing-pinoffset), \
            mm2mils100(RowSpacing/2+DualSpacing), \
            mm2mils100(PinDiam+ARing), \
            mm2mils100(Clearance), \
            mm2mils100(PinDiam+ARing+Clearance), \
            mm2mils100(PinDiam), \
-           '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']'
+           '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']')
 
-       pinnum = col + 1 + (pins+1)/2
-       Flags = '0x0001'
-       if pinnum <= pins:
-          print '   Pin[', \
+        pinnum = col + 1 + (pins+1)/2
+        Flags = '0x0001'
+        if pinnum <= pins:
+          print('   Pin[', \
            mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \
            mm2mils100(-RowSpacing/2), \
            mm2mils100(PinDiam+ARing), \
            mm2mils100(Clearance), \
            mm2mils100(PinDiam+ARing+Clearance), \
            mm2mils100(PinDiam), \
-           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
-         pinnum2 = pinnum + pins
-          print '   Pin[', \
+          pinnum2 = pinnum + pins
+          print('   Pin[', \
            mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \
            mm2mils100(-RowSpacing/2+DualSpacing), \
            mm2mils100(PinDiam+ARing), \
            mm2mils100(Clearance), \
            mm2mils100(PinDiam+ARing+Clearance), \
            mm2mils100(PinDiam), \
-           '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']'
+           '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']')
 
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(MntX/2), \
     mm2mils100(-RowSpacing/2), \
     mm2mils100(MntDiam+ARing), \
     mm2mils100(Clearance), \
     mm2mils100(MntDiam+ARing+Clearance), \
     mm2mils100(MntDiam), \
-    '"mnt" "0"', '0x0001', ']'
+    '"mnt" "0"', '0x0001', ']')
 
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(-MntX/2), \
     mm2mils100(-RowSpacing/2), \
     mm2mils100(MntDiam+ARing), \
     mm2mils100(Clearance), \
     mm2mils100(MntDiam+ARing+Clearance), \
     mm2mils100(MntDiam), \
-    '"mnt" "0"', '0x0001', ']'
+    '"mnt" "0"', '0x0001', ']')
 
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(MntX/2), \
     mm2mils100(DualSpacing), \
     mm2mils100(MntDiam+ARing), \
     mm2mils100(Clearance), \
     mm2mils100(MntDiam+ARing+Clearance), \
     mm2mils100(MntDiam), \
-    '"mnt" "0"', '0x0001', ']'
+    '"mnt" "0"', '0x0001', ']')
 
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(-MntX/2), \
     mm2mils100(DualSpacing), \
     mm2mils100(MntDiam+ARing), \
     mm2mils100(Clearance), \
     mm2mils100(MntDiam+ARing+Clearance), \
     mm2mils100(MntDiam), \
-    '"mnt" "0"', '0x0001', ']'
+    '"mnt" "0"', '0x0001', ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(-BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
        mm2mils100(BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(-BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
        mm2mils100(BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
        mm2mils100(BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(-BoxX/2), \
        mm2mils100(-FaceY-RowSpacing/2), \
        mm2mils100(-BoxX/2), \
        mm2mils100(BoxY-FaceY-RowSpacing/2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 85b4e82..7c38cff
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for QFN-16 package used by the RFPA0133
@@ -26,16 +26,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), \
@@ -43,19 +43,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
 
@@ -65,7 +65,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), \
@@ -73,10 +73,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), \
@@ -84,9 +84,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), \
@@ -94,11 +94,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), \
@@ -106,9 +106,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), \
@@ -116,9 +116,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), \
@@ -126,9 +126,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), \
@@ -136,10 +136,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(")")
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index decf857..5aa517f
@@ -27,7 +27,7 @@ def mm2mils100( mm ):
 
 print('# author: Bdale Garbee')
 print('# email: bdale@gag.com')
-print('# dist-license: GPL 2+')
+print('# dist-license: GPL 3+')
 print('# use-license: unlimited')
 
 print('Element[0x0 "RP-SMA" "" "" 0 0 0 0 0 100 0x0]')
old mode 100755 (executable)
new mode 100644 (file)
index 621e625..f7c70d8
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2017 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # Program to emit PCB footprint for TI ADS124S0X in LQFP32 package
@@ -24,17 +24,17 @@ import sys
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "S-PQFP-G32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "S-PQFP-G32" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 # pins
 for pin in range (1,9):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Inside/2 - PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -42,9 +42,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+       '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(+Inside/2 + PinHeight - PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
@@ -52,9 +52,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]'
+       '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(Inside/2 + PinHeight - PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(Inside/2 + PinWidth/2), \
@@ -62,9 +62,9 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]'
+       '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Inside/2 - PinWidth/2), \
        mm2mils100((pin - 4.5) * PinSpacing), \
        mm2mils100(-Inside/2 - PinHeight + PinWidth/2), \
@@ -72,40 +72,40 @@ for pin in range (1,9):
        mm2mils100(PinWidth), \
        mm2mils100(PinSpacing - PinWidth), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]'
+       '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]')
 
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100( BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
        mm2mils100(-BodySize/2), \
-       '1000 ]'
+       '1000 ]')
 
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(  (BodySize/2)+0.3), \
        mm2mils100(-((BodySize/2)+0.3)), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 001b20e..fb4d5a5
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for edge-launch SMA connector
@@ -13,15 +13,15 @@ PinSpacing = PinWidth / 2 + 4000
 
 import sys
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "sma-edge" "" "" 0 0 0 0 0 0 0x0]'
-print "("
+print('Element[0x0 "sma-edge" "" "" 0 0 0 0 0 0 0x0]')
+print("(")
 
-print '   Pad[',\
+print('   Pad[',\
        (-PinSpacing - GndWidth/2), \
        (GndWidth/2), \
        (-PinSpacing - GndWidth/2), \
@@ -29,8 +29,8 @@ print '   Pad[',\
        (GndWidth), \
        0, \
        (GndWidth + 600), \
-       '"pin2"', '"2"', '"square,nopaste"]'
-print '   Pad[',\
+       '"pin2"', '"2"', '"square,nopaste"]')
+print('   Pad[',\
        (-PinSpacing - GndWidth/2), \
        (GndWidth/2), \
        (-PinSpacing - GndWidth/2), \
@@ -38,8 +38,8 @@ print '   Pad[',\
        (GndWidth), \
        0, \
        (GndWidth + 600), \
-       '"pin2"', '"2"', '"onsolder,square,nopaste"]'
-print '   Pad[',\
+       '"pin2"', '"2"', '"onsolder,square,nopaste"]')
+print('   Pad[',\
        0, \
        (PinWidth/2), \
        0, \
@@ -47,8 +47,8 @@ print '   Pad[',\
        (PinWidth), \
        0, \
        (PinWidth + 600), \
-       '"pin1"', '"1"', '"square,nopaste"]'
-print '   Pad[',\
+       '"pin1"', '"1"', '"square,nopaste"]')
+print('   Pad[',\
        (PinSpacing + GndWidth/2), \
        (GndWidth/2), \
        (PinSpacing + GndWidth/2), \
@@ -56,8 +56,8 @@ print '   Pad[',\
        (GndWidth), \
        0, \
        (GndWidth + 600), \
-       '"pin2"', '"2"', '"square,nopaste"]'
-print '   Pad[',\
+       '"pin2"', '"2"', '"square,nopaste"]')
+print('   Pad[',\
        (PinSpacing + GndWidth/2), \
        (GndWidth/2), \
        (PinSpacing + GndWidth/2), \
@@ -65,6 +65,6 @@ print '   Pad[',\
        (GndWidth), \
        0, \
        (GndWidth + 600), \
-       '"pin2"', '"2"', '"onsolder,square,nopaste"]'
+       '"pin2"', '"2"', '"onsolder,square,nopaste"]')
 
-print ")"
+print(")")
index 930e0ac52e19b533538032b30929e6dce41347c6..09a72b3a0b758bf1c0e904ff016b8d70c6de79ea 100644 (file)
@@ -11,7 +11,7 @@ FOOTPRINTS = \
        nickle $*.5c -o $@
 
 .py.fp:
-       python2 $*.py > $@
+       python3 $*.py > $@
 
 all: $(FOOTPRINTS) .gitignore
 
index 2cbdd4f869321fe76c0c47c0e6f4992093e6e0a2..42c00b1f32c932cf2d68b0c6627e34288ed3e88a 100755 (executable)
@@ -1,10 +1,10 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2010 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for C&K PN22SJNA03QE DPDT switch
 #
 
-# dimensions in mm from footprint drawing at DigiKey
+# dimensions in mm from footprint(drawing at DigiKey
 BodyWidth = 12                 # body outline
 BodyHeight = 6.8
 PinSpace = 2.49
@@ -19,112 +19,112 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "PN22SJNA03QE" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pin[',\
+print('Element[0x0 "PN22SJNA03QE" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pin[',\
        mm2mils100(-PinSpace), \
        mm2mils100(-PinSpace/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(PinDiam), \
-       '"pin1" "1" 0x0101]'
+       '"pin1" "1" 0x0101]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(-PinSpace/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(PinDiam), \
-       '"pin2" "2" 0x0001]'
+       '"pin2" "2" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpace), \
        mm2mils100(-PinSpace/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(PinDiam), \
-       '"pin3" "3" 0x0001]'
+       '"pin3" "3" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpace), \
        mm2mils100(PinSpace/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(PinDiam), \
-       '"pin6" "6" 0x0001]'
+       '"pin6" "6" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(0), \
        mm2mils100(PinSpace/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(PinDiam), \
-       '"pin5" "5" 0x0001]'
+       '"pin5" "5" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-PinSpace), \
        mm2mils100(PinSpace/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(PinDiam), \
-       '"pin4" "4" 0x0001]'
+       '"pin4" "4" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-MntWidth/2), \
        mm2mils100(MntHeight/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(MntDiam), \
-       '"pin7" "G" 0x0001]'
+       '"pin7" "G" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(MntWidth/2), \
        mm2mils100(-MntHeight/2), \
        mm2mils100(2), \
        mm2mils100(1), \
        mm2mils100(2.2), \
        mm2mils100(MntDiam), \
-       '"pin8" "G" 0x0001]'
+       '"pin8" "G" 0x0001]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        500, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        -mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        500, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        -mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        500, \
-       ']'
-print '   ElementLine[',\
+       ']')
+print('   ElementLine[',\
        mm2mils100(BodyWidth/2), \
        mm2mils100(BodyHeight/2), \
        mm2mils100(BodyWidth/2), \
        -mm2mils100(BodyHeight/2), \
        500, \
-       ']'
+       ']')
 
-print ")"
+print(")")
index f8daa69b027346b9df1e6d54169c7c748e6f6db0..94e32be3e693ab616c2501a342536ce9452e26d8 100755 (executable)
@@ -28,123 +28,123 @@ import sys
 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 "SK-12F17" "" "" 0 0 0 0 0 100 0x0]')
-print ("(")
-print '   Pin[',\
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
+
+print('Element[0x0 "SK-12F17" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pin[',\
        mm2mils100(-PinSpacing), \
        0, \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin1" "1" 0x0101]'
+       '"pin1" "1" 0x0101]')
 
-print '   Pin[',\
+print('   Pin[',\
        0, \
        0, \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin2" "2" 0x0001]'
+       '"pin2" "2" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(PinSpacing), \
        0, \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"pin3" "3" 0x0001]'
+       '"pin3" "3" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(MntX/2), \
        mm2mils100(MntY/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"GND" "4" 0x0001]'
+       '"GND" "4" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(MntX/2), \
        mm2mils100(-MntY/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"GND" "4" 0x0001]'
+       '"GND" "4" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-MntX/2), \
        mm2mils100(MntY/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"GND" "4" 0x0001]'
+       '"GND" "4" 0x0001]')
 
-print '   Pin[',\
+print('   Pin[',\
        mm2mils100(-MntX/2), \
        mm2mils100(-MntY/2), \
        mm2mils100(Thickness), \
        mm2mils100(Clearance), \
        mm2mils100(Mask), \
        mm2mils100(Drill), \
-       '"GND" "4" 0x0001]'
+       '"GND" "4" 0x0001]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyX/2), \
         mm2mils100(-BodyY/2), \
         mm2mils100(-BodyX/2), \
         mm2mils100( BodyY/2), \
-        SilkNative, ']'
+        SilkNative, ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyX/2), \
         mm2mils100(-BodyY/2), \
         mm2mils100(BodyX/2), \
         mm2mils100(- BodyY/2), \
-        SilkNative, ']'
+        SilkNative, ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(BodyX/2), \
         mm2mils100(-BodyY/2), \
         mm2mils100(BodyX/2), \
         mm2mils100( BodyY/2), \
-        SilkNative, ']'
+        SilkNative, ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-BodyX/2), \
         mm2mils100(BodyY/2), \
         mm2mils100(BodyX/2), \
         mm2mils100(BodyY/2), \
-        SilkNative, ']'
+        SilkNative, ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-ActuatorX/2), \
         mm2mils100(BodyY/2 + ActuatorY), \
         mm2mils100(ActuatorX/2), \
         mm2mils100(BodyY/2 + ActuatorY), \
-        SilkNative, ']'
+        SilkNative, ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(-ActuatorX/2), \
         mm2mils100(BodyY/2), \
         mm2mils100(-ActuatorX/2), \
         mm2mils100(BodyY/2 + ActuatorY), \
-        SilkNative, ']'
+        SilkNative, ']')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
         mm2mils100(ActuatorX/2), \
         mm2mils100(BodyY/2), \
         mm2mils100(ActuatorX/2), \
         mm2mils100(BodyY/2 + ActuatorY), \
-        SilkNative, ']'
+        SilkNative, ']')
 
-print (")")
+print(")")
index 20892b2ee7178d3a0a9fab854af6e577b35c21ea..dca1dda871abbc8c0b2677a885c5973f9a1c07f2 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2014 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for
@@ -32,56 +32,56 @@ if pins > 25:
        sys.stderr.write('Must be no more than 25 pins\n')
        sys.exit(1)
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "284512-%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "284512-%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
 for pin in range (1,pins+1):
     pinnum = pins + 1 - pin
     if pinnum == 1:
-       Flags = '0x0101'
+        Flags = '0x0101'
     else:
-       Flags = '0x0001'
-    print '   Pin[', \
+        Flags = '0x0001'
+    print('   Pin[', \
         mm2mils100(BoxEnd + (pin-1)*PinSpacing), \
         mm2mils100(RowOffset), \
         mm2mils100(Thickness), \
         mm2mils100(Clearance), \
         mm2mils100(Mask), \
         mm2mils100(PinDiam), \
-        '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+        '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
 BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(0), \
         mm2mils100(0), \
         mm2mils100(0), \
         mm2mils100(BoxHeight), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(0), \
         mm2mils100(BoxHeight), \
         mm2mils100(BoxWidth), \
         mm2mils100(BoxHeight), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxWidth), \
         mm2mils100(BoxHeight), \
         mm2mils100(BoxWidth), \
         mm2mils100(0), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxWidth), \
         mm2mils100(0), \
         mm2mils100(0), \
         mm2mils100(0), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print ")"
+print(")")
index f086a30793cd0ca0bba2e3565a0e4ebf38f69767..f4a42155a92c9e04c29830b58f1dfe1739d8bed5 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2017 by Bdale Garbee <bdale@gag.com>.  GPLv2+
 #
 # Program to emit PCB footprint for
@@ -28,109 +28,109 @@ 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 )
+        return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2+'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2+')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "AMP BNC" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "AMP BNC" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
-print '   Pin[', \
+print('   Pin[', \
         0, \
         0, \
         mm2mils100(PinDiam+ThicknessDelta), \
         mm2mils100(Clearance), \
         mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
         mm2mils100(PinDiam), \
-       '"1"', \
-       '"1"', \
-       "0x0001", ']'
+        '"1"', \
+        '"1"', \
+        "0x0001", ']')
 
-print '   Pin[', \
+print('   Pin[', \
         0, \
         mm2mils100(-PinSpacing), \
         mm2mils100(PinDiam+ThicknessDelta), \
         mm2mils100(Clearance), \
         mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
         mm2mils100(PinDiam), \
-       '"GND"', \
-       '"2"', \
-       "0x0001", ']'
+        '"GND"', \
+        '"2"', \
+        "0x0001", ']')
 
-print '   Pin[', \
+print('   Pin[', \
         mm2mils100(MntSpacing/2), \
         mm2mils100(MntSpacing/2), \
         mm2mils100(MntDiam+ThicknessDelta), \
         mm2mils100(Clearance), \
         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
         mm2mils100(MntDiam), \
-       '"GND"', \
-       '"2"', \
-       "0x0001", ']'
+        '"GND"', \
+        '"2"', \
+        "0x0001", ']')
 
-print '   Pin[', \
+print('   Pin[', \
         mm2mils100(-MntSpacing/2), \
         mm2mils100(MntSpacing/2), \
         mm2mils100(MntDiam+ThicknessDelta), \
         mm2mils100(Clearance), \
         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
         mm2mils100(MntDiam), \
-       '"GND"', \
-       '"2"', \
-       "0x0001", ']'
+        '"GND"', \
+        '"2"', \
+        "0x0001", ']')
 
-print '   Pin[', \
+print('   Pin[', \
         mm2mils100(MntSpacing/2), \
         mm2mils100(-MntSpacing/2), \
         mm2mils100(MntDiam+ThicknessDelta), \
         mm2mils100(Clearance), \
         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
         mm2mils100(MntDiam), \
-       '"GND"', \
-       '"2"', \
-       "0x0001", ']'
+        '"GND"', \
+        '"2"', \
+        "0x0001", ']')
 
-print '   Pin[', \
+print('   Pin[', \
         mm2mils100(-MntSpacing/2), \
         mm2mils100(-MntSpacing/2), \
         mm2mils100(MntDiam+ThicknessDelta), \
         mm2mils100(Clearance), \
         mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
         mm2mils100(MntDiam), \
-       '"GND"', \
-       '"2"', \
-       "0x0001", ']'
+        '"GND"', \
+        '"2"', \
+        "0x0001", ']')
 
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
         mm2mils100(SilkBox/2), \
         mm2mils100(MntSpacing/2+Mnt2Edge), \
         mm2mils100(SilkBox/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
         mm2mils100(-SilkBox/2), \
         mm2mils100(MntSpacing/2+Mnt2Edge), \
         mm2mils100(-SilkBox/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
         mm2mils100(SilkBox/2), \
         mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
         mm2mils100(-SilkBox/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(MntSpacing/2+Mnt2Edge), \
         mm2mils100(SilkBox/2), \
         mm2mils100(MntSpacing/2+Mnt2Edge), \
         mm2mils100(-SilkBox/2), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print ")"
+print(")")
index 19600850db96c974ad49d068f34c87e5b80a684b..720a3319d5d62841fa0231a5a2df3e250409ee50 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for
@@ -32,56 +32,56 @@ if pins > 15:
        sys.stderr.write('Must be no more than 15 pins\n')
        sys.exit(1)
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "282834-%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "282834-%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
 for pin in range (1,pins+1):
     pinnum = pins + 1 - pin
     if pinnum == 1:
-       Flags = '0x0101'
+        Flags = '0x0101'
     else:
-       Flags = '0x0001'
-    print '   Pin[', \
+        Flags = '0x0001'
+    print('   Pin[', \
         mm2mils100(BoxEnd + (pin-1)*PinSpacing), \
         mm2mils100(RowOffset), \
         mm2mils100(Thickness), \
         mm2mils100(Clearance), \
         mm2mils100(Mask), \
         mm2mils100(PinDiam), \
-        '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+        '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
 BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(0), \
         mm2mils100(0), \
         mm2mils100(0), \
         mm2mils100(BoxHeight), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(0), \
         mm2mils100(BoxHeight), \
         mm2mils100(BoxWidth), \
         mm2mils100(BoxHeight), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxWidth), \
         mm2mils100(BoxHeight), \
         mm2mils100(BoxWidth), \
         mm2mils100(0), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
         mm2mils100(BoxWidth), \
         mm2mils100(0), \
         mm2mils100(0), \
         mm2mils100(0), \
-        LineWidth, ']'
+        LineWidth, ']')
 
-print ")"
+print(")")
index b9baf242c294ff025b8941fc8b788472154b42bf..db08740639f6e63e03150a2b2b8a7d992cb6afae 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2015 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for
@@ -11,9 +11,9 @@
 PadWidth = 1.50
 PadHeight = 3.00
 PadSpacing = 1.27
-RowGap = 1.50          # space between rows
+RowGap = 1.50                # space between rows
 
-Clearance = 0.006      # in mils
+Clearance = 0.006        # in mils
 
 BoxY = 5.2
 BoxXbase = 4.55
@@ -25,81 +25,81 @@ 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 )
+        return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
 
 pins = int(sys.argv[1])
 
 if pins < 4:
-       sys.stderr.write('Must be at least 4 pins\n')
-       sys.exit(1)
+        sys.stderr.write('Must be at least 4 pins\n')
+        sys.exit(1)
 if pins > 20:
-       sys.stderr.write('Must be no more than 20 pins\n')
-       sys.exit(1)
+        sys.stderr.write('Must be no more than 20 pins\n')
+        sys.exit(1)
 
 if len(sys.argv) > 2:
     if sys.argv[2] == "latch":
-       BoxXbase = 7.15
+        BoxXbase = 7.15
 
 BoxXOffset = -((pins - 1) * PadSpacing)/2
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
+print('Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
     for row in range (2):
-       if row == 1:
-           origin= (RowGap + PadHeight)/2
-       else:
-           origin= -(RowGap + PadHeight)/2
+        if row == 1:
+            origin= (RowGap + PadHeight)/2
+        else:
+            origin= -(RowGap + PadHeight)/2
         pinnum = (col * 2) + row + 1
-       Flags = '"square,nopaste"'
-
-       print '   Pad[', \
-           mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
-           mm2mils100(origin + PadHeight/2 - PadWidth/2), \
-           mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
-           mm2mils100(origin - PadHeight/2 + PadWidth/2), \
-           mm2mils100(PadWidth), \
-           0, \
-           mm2mils100(PadWidth)+Clearance*2, \
-           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-           
+        Flags = '"square,nopaste"'
+
+        print('   Pad[', \
+            mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
+            mm2mils100(origin + PadHeight/2 - PadWidth/2), \
+            mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
+            mm2mils100(origin - PadHeight/2 + PadWidth/2), \
+            mm2mils100(PadWidth), \
+            0, \
+            mm2mils100(PadWidth)+Clearance*2, \
+            '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
+            
 BoxX = BoxXbase + pins/2 * BoxXstep
 BoxX1 = -BoxX/2
 BoxX2 = BoxX/2
 BoxY1 = -BoxY/2
 BoxY2 = BoxY/2
 
-print '   ElementLine[', \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY1), \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY2), \
-       LineWidth, ']'
-
-print '   ElementLine[', \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY2), \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY2), \
-       LineWidth, ']'
-
-print '   ElementLine[', \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY2), \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY1), \
-       LineWidth, ']'
-
-print '   ElementLine[', \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY1), \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY1), \
-       LineWidth, ']'
+print('   ElementLine[', \
+          mm2mils100(BoxX1), \
+        mm2mils100(BoxY1), \
+        mm2mils100(BoxX1), \
+        mm2mils100(BoxY2), \
+        LineWidth, ']')
+
+print('   ElementLine[', \
+          mm2mils100(BoxX1), \
+        mm2mils100(BoxY2), \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY2), \
+        LineWidth, ']')
+
+print('   ElementLine[', \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY2), \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY1), \
+        LineWidth, ']')
+
+print('   ElementLine[', \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY1), \
+        mm2mils100(BoxX1), \
+        mm2mils100(BoxY1), \
+        LineWidth, ']')
   
-print ")"
+print(")")
index 7f3276597442c4914a402413a415706339242ad7..704db1b4c4459a2a119c46280141378398580da1 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2009 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for
@@ -46,47 +46,47 @@ if pins > 24:
 
 if len(sys.argv) > 2:
     if sys.argv[2] == "latch":
-       BoxXbase = 5.89
-       if pins == 24:
-               sys.stderr.write('There is no 24 pin latching version!\n')
-               sys.exit(1)
-
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
-
-print 'Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
+        BoxXbase = 5.89
+        if pins == 24:
+                sys.stderr.write('There is no 24 pin latching version!\n')
+                sys.exit(1)
+
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
+
+print('Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
     for row in range (2):
-       if row == 1:
-           spacing=0
-       else:
-           spacing=RowSpacing
+        if row == 1:
+            spacing=0
+        else:
+            spacing=RowSpacing
         pinnum = (col * 2) + row + 1
         if pinnum == 1:
-           Flags = '0x0101'
+            Flags = '0x0101'
         else:
-           Flags = '0x0001'
-        print '   Pin[', \
+            Flags = '0x0001'
+        print('   Pin[', \
            mm2mils100((pinnum-1)*PinSpacing), \
            mm2mils100(spacing), \
            mm2mils100(PinDiam)+(MinAnnular*2), \
            (MinClearance*2), \
            mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \
            mm2mils100(PinDiam), \
-           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
 
 # add a hole for the index pin.  plated to save non-plated-hole extra fab cost.
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(-MntX), \
     mm2mils100(RowSpacing-MntY), \
     mm2mils100(MntDiam)+(MinAnnular*2), \
     (MinClearance*2), \
     mm2mils100(MntDiam)+(MinAnnular*2)+(MaskDelta*2), \
     mm2mils100(MntDiam), \
-    '"mnt" "0"', '0x0001', ']'
+    '"mnt" "0"', '0x0001', ']')
 
 BoxX = (pins - 1) * PinSpacing + BoxXbase
 BoxX1 = -(BoxXbase/2)
@@ -94,32 +94,32 @@ BoxX2 = BoxX1 + BoxX
 BoxY1 = -(BoxY - RowSpacing)/2
 BoxY2 = BoxY1 + BoxY
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(BoxX1), \
        mm2mils100(BoxY1), \
        mm2mils100(BoxX1), \
        mm2mils100(BoxY2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(BoxX1), \
        mm2mils100(BoxY2), \
        mm2mils100(BoxX2), \
        mm2mils100(BoxY2), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(BoxX2), \
        mm2mils100(BoxY2), \
        mm2mils100(BoxX2), \
        mm2mils100(BoxY1), \
-       LineWidth, ']'
+       LineWidth, ']')
 
-print '   ElementLine[', \
+print('   ElementLine[', \
        mm2mils100(BoxX2), \
        mm2mils100(BoxY1), \
        mm2mils100(BoxX1), \
        mm2mils100(BoxY1), \
-       LineWidth, ']'
+       LineWidth, ']')
   
-print ")"
+print(")")
index 4a966eb5746cb70977e41a0452ed2b9c15f15937..1fd39ca019a5e6cfeeebb5d8d1d49f1ff896e415 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for a 16 pin
@@ -8,8 +8,8 @@
 #
 
 # dimensions in mm from C_215079_v.pdf datasheet
-BUPinDiam = 1.1                # screw terminals
-MMPinDiam = 0.8                # micromatch
+BUPinDiam = 1.1                # screw terminals
+MMPinDiam = 0.8                # micromatch
 PinSpacing = 1.27
 RowSpacing = 2.54
 
@@ -25,63 +25,63 @@ 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 )
+        return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
 
 pins = 17
 
 BoxXbase = 5.89
 BoxEnd = 1.5
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "tphybrid" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
+print('Element[0x0 "tphybrid" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
     for row in range (2):
-       if row == 1:
-           spacing=0
-       else:
-           spacing=RowSpacing
+        if row == 1:
+            spacing=0
+        else:
+            spacing=RowSpacing
         pinnum = (col * 2) + row + 1
-       if pinnum != 18:
+        if pinnum != 18:
             if pinnum == 1:
-               Flags = '0x0101'
+                Flags = '0x0101'
             else:
-               Flags = '0x0001'
-           if pinnum % 2 == 0:
-               PinDiam = MMPinDiam
-           else:
-               PinDiam = BUPinDiam
-            print '   Pin[', \
-               mm2mils100((pinnum-1)*PinSpacing), \
-               mm2mils100(spacing), \
-               mm2mils100(PinDiam + 0.70), \
-               1200, \
-               mm2mils100(PinDiam + 0.86), \
-               mm2mils100(PinDiam), \
-               '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
-print '   Pin[', \
+                Flags = '0x0001'
+            if pinnum % 2 == 0:
+                PinDiam = MMPinDiam
+            else:
+                PinDiam = BUPinDiam
+            print('   Pin[', \
+                  mm2mils100((pinnum-1)*PinSpacing), \
+                mm2mils100(spacing), \
+                  mm2mils100(PinDiam + 0.70), \
+                1200, \
+                  mm2mils100(PinDiam + 0.86), \
+                mm2mils100(PinDiam), \
+                '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
+
+print('   Pin[', \
     mm2mils100((-2)*PinSpacing), \
     mm2mils100(RowSpacing), \
     mm2mils100(PinDiam + 0.32), \
     1200, \
     mm2mils100(PinDiam + 0.48), \
     mm2mils100(PinDiam), \
-    '"pin18"' , '"18"', Flags, ']'
+    '"pin18"' , '"18"', Flags, ']')
 
 # add a hole for the index pin.  plated to save non-plated-hole extra fab cost.
-print '   Pin[', \
+print('   Pin[', \
     mm2mils100(-MntX), \
     mm2mils100(RowSpacing-MntY), \
     mm2mils100(MntDiam)+1400, \
     1400, \
     mm2mils100(MntDiam)+1400+600, \
     mm2mils100(MntDiam), \
-    '"mnt" "0"', '0x0001', ']'
+    '"mnt" "0"', '0x0001', ']')
 
 # pins-2 accounts for the extra pin used by screw terminal overlay
 BoxX = (pins - 2) * PinSpacing + BoxXbase
@@ -92,32 +92,32 @@ BoxX1 = -2*PinSpacing - BoxEnd
 BoxY1 = -(BoxY - RowSpacing)/2
 BoxY2 = BoxY1 + BoxY
 
-print '   ElementLine[', \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY1), \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY2), \
-       LineWidth, ']'
-
-print '   ElementLine[', \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY2), \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY2), \
-       LineWidth, ']'
-
-print '   ElementLine[', \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY2), \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY1), \
-       LineWidth, ']'
-
-print '   ElementLine[', \
-       mm2mils100(BoxX2), \
-       mm2mils100(BoxY1), \
-       mm2mils100(BoxX1), \
-       mm2mils100(BoxY1), \
-       LineWidth, ']'
+print('   ElementLine[', \
+          mm2mils100(BoxX1), \
+        mm2mils100(BoxY1), \
+        mm2mils100(BoxX1), \
+        mm2mils100(BoxY2), \
+        LineWidth, ']')
+
+print('   ElementLine[', \
+          mm2mils100(BoxX1), \
+        mm2mils100(BoxY2), \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY2), \
+        LineWidth, ']')
+
+print('   ElementLine[', \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY2), \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY1), \
+        LineWidth, ']')
+
+print('   ElementLine[', \
+        mm2mils100(BoxX2), \
+        mm2mils100(BoxY1), \
+        mm2mils100(BoxX1), \
+        mm2mils100(BoxY1), \
+        LineWidth, ']')
   
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 1e108c9..916baeb
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for QFN-20 package used by the CC115L
@@ -26,16 +26,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-20" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "qfn-20" "" "" 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), \
@@ -43,19 +43,19 @@ print '   Pad[',\
        mm2mils100(GndSquare), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin21" "21" "square,nopaste"]'
+       '"pin21" "21" "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(2 * viacol * CoreSquare / 3 + CoreSquare/3), \
        mm2mils100(2 * viarow * CoreSquare / 3 + CoreSquare/3), \
        2900, \
        2500, \
        0, \
        1500, \
-       '"pin21" "21" 0x0002]'
+       '"pin21" "21" 0x0002]')
 
 # break pad under chip into a grid to control the resist and paste masks
 
@@ -65,7 +65,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), \
@@ -73,10 +73,10 @@ for viarow in range (-1, 2):
        mm2mils100((CoreSquare)/blocks), \
        0, \
        0, \
-       '"pin21" "21" "square,nopaste"]'
+       '"pin21" "21" "square,nopaste"]')
     else:
       # copper sub-square without resist
-      print '   Pad[',\
+      print('   Pad[',\
        mm2mils100(viacol * CoreSquare / blocks), \
        mm2mils100(viarow * CoreSquare / blocks), \
        mm2mils100(viacol * CoreSquare / blocks), \
@@ -84,9 +84,9 @@ for viarow in range (-1, 2):
        mm2mils100((CoreSquare)/blocks), \
        0, \
        mm2mils100((CoreSquare)/blocks), \
-       '"pin21" "21" "square,nopaste"]'
+       '"pin21" "21" "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), \
@@ -94,11 +94,11 @@ for viarow in range (-1, 2):
        1500, \
        0, \
        mm2mils100((CoreSquare)/blocks), \
-       '"pin21" "21" "square"]'
+       '"pin21" "21" "square"]')
 
 # pins
 for pin in range (1,6):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-3 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-3 + pin) * PinSpacing), \
@@ -106,9 +106,9 @@ for pin in range (1,6):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]'
+       '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-3 + pin) * PinSpacing), \
        mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
        mm2mils100((-3 + pin) * PinSpacing), \
@@ -116,9 +116,9 @@ for pin in range (1,6):
        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((-3 + pin) * PinSpacing), \
        mm2mils100(Overall/2 - PinWidth/2), \
@@ -126,9 +126,9 @@ for pin in range (1,6):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]'
+       '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-Overall/2 + PinWidth/2), \
        mm2mils100((-3 + pin) * PinSpacing), \
        mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
@@ -136,10 +136,10 @@ for pin in range (1,6):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]'
+       '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-2.0), \
        mm2mils100(2.0), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index f7e5bda..3ff0e8e
@@ -20,7 +20,7 @@ def mm2mils100( mm ):
 
 print( '# author: Bdale Garbee')
 print( '# email: bdale@gag.com')
-print( '# dist-license: GPL 2')
+print( '# dist-license: GPL 3')
 print( '# use-license: unlimited')
 
 print( 'Element[0x0 "TQFP44" "" "" 0 0 0 0 0 100 0x0]')
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 7debccd..7153ce1
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2014 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Keystone model 931 USB A male connector,
@@ -31,14 +31,14 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(Pad14/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(Pad14/2), \
@@ -46,9 +46,9 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin4" "4" 0x0100]'
+       '"pin4" "4" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-Pad14/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(-Pad14/2), \
@@ -56,9 +56,9 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(Pad23/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(Pad23/2), \
@@ -66,9 +66,9 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-Pad23/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(-Pad23/2), \
@@ -76,27 +76,27 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(-PinSpacing/2), \
         mm2mils100(0), \
         mm2mils100(PinDiam+0.3556), \
         mm2mils100(0.31), \
         mm2mils100(PinDiam+0.66), \
         mm2mils100(PinDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(PinSpacing/2), \
         mm2mils100(0), \
         mm2mils100(PinDiam+0.3556), \
         mm2mils100(0.31), \
         mm2mils100(PinDiam+0.66), \
         mm2mils100(PinDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pad[',\
+print('   Pad[',\
         mm2mils100(-TabSpacing/2 + PadWidth/2 + TabMinor/2), \
         mm2mils100(-TabDiam/2), \
         mm2mils100(-TabSpacing/2 + PadWidth/2 + TabMinor/2), \
@@ -104,9 +104,9 @@ print '   Pad[',\
         mm2mils100(PadWidth), \
         mm2mils100(0.31), \
         mm2mils100(PadWidth + 0.15), \
-        '"mnt" "G" "onsolder,nopaste"]'
+        '"mnt" "G" "onsolder,nopaste"]')
 
-print '   Pad[',\
+print('   Pad[',\
         mm2mils100(TabSpacing/2 - PadWidth/2 - TabMinor/2), \
         mm2mils100(-TabDiam/2), \
         mm2mils100(TabSpacing/2 - PadWidth/2 - TabMinor/2), \
@@ -114,27 +114,27 @@ print '   Pad[',\
         mm2mils100(PadWidth), \
         mm2mils100(0.31), \
         mm2mils100(PadWidth + 0.15), \
-        '"mnt" "G" "onsolder,nopaste"]'
+        '"mnt" "G" "onsolder,nopaste"]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-TabSpacing/2), \
        mm2mils100(-EdgeOffset)+500, \
        mm2mils100(TabSpacing/2), \
        mm2mils100(-EdgeOffset)+500, \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-TabSpacing/2 + TabMinor/2), \
        mm2mils100(-TabDiam/2), \
        mm2mils100(-TabSpacing/2 + TabMinor/2), \
        mm2mils100(TabDiam/2), \
-       '1000 ]'
+       '1000 ]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(TabSpacing/2 - TabMinor/2), \
        mm2mils100(-TabDiam/2), \
        mm2mils100(TabSpacing/2 - TabMinor/2), \
        mm2mils100(TabDiam/2), \
-       '1000 ]'
+       '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 470702a..f97bbc6
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2014 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for Keystone model 931 USB A male connector,
@@ -32,14 +32,14 @@ import sys
 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 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print '   Pad[',\
+print('Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print('   Pad[',\
        mm2mils100(Pad14/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(Pad14/2), \
@@ -47,9 +47,9 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin4" "4" 0x0100]'
+       '"pin4" "4" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-Pad14/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(-Pad14/2), \
@@ -57,9 +57,9 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin1" "1" 0x0100]'
+       '"pin1" "1" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(Pad23/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(Pad23/2), \
@@ -67,9 +67,9 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin3" "3" 0x0100]'
+       '"pin3" "3" 0x0100]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-Pad23/2), \
        mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
        mm2mils100(-Pad23/2), \
@@ -77,45 +77,45 @@ print '   Pad[',\
        mm2mils100(PadWidth), \
        mm2mils100(0), \
        mm2mils100(PadWidth)+600, \
-       '"pin2" "2" 0x0100]'
+       '"pin2" "2" 0x0100]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(-PinSpacing/2), \
         mm2mils100(0), \
         mm2mils100(PinDiam+0.3556), \
         mm2mils100(0.31), \
         mm2mils100(PinDiam+0.66), \
         mm2mils100(PinDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(PinSpacing/2), \
         mm2mils100(0), \
         mm2mils100(PinDiam+0.3556), \
         mm2mils100(0.31), \
         mm2mils100(PinDiam+0.66), \
         mm2mils100(PinDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(-TabSpacing/2), \
         mm2mils100(-(TabLen-TabDiam)/2), \
         mm2mils100(TabDiam+TabMetal), \
         mm2mils100(0.31), \
         mm2mils100(TabDiam+0.66), \
         mm2mils100(TabDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(-TabSpacing/2), \
         mm2mils100((TabLen-TabDiam)/2), \
         mm2mils100(TabDiam+TabMetal), \
         mm2mils100(0.31), \
         mm2mils100(TabDiam+0.66), \
         mm2mils100(TabDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-TabSpacing/2), \
        mm2mils100(-(TabLen - TabDiam)/2), \
        mm2mils100(-TabSpacing/2), \
@@ -123,9 +123,9 @@ print '   Pad[',\
        mm2mils100(TabDiam + TabMetal), \
        mm2mils100(0.31), \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "G" ""]'
+       '"mnt" "G" ""]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(-TabSpacing/2), \
        mm2mils100(-(TabLen - TabDiam)/2), \
        mm2mils100(-TabSpacing/2), \
@@ -133,27 +133,27 @@ print '   Pad[',\
        mm2mils100(TabDiam + TabMetal), \
        mm2mils100(0.31), \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "G" "onsolder"]'
+       '"mnt" "G" "onsolder"]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(TabSpacing/2), \
         mm2mils100(-(TabLen-TabDiam)/2), \
         mm2mils100(TabDiam+TabMetal), \
         mm2mils100(0.31), \
         mm2mils100(TabDiam+0.66), \
         mm2mils100(TabDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pin[',\
+print('   Pin[',\
         mm2mils100(TabSpacing/2), \
         mm2mils100((TabLen-TabDiam)/2), \
         mm2mils100(TabDiam+TabMetal), \
         mm2mils100(0.31), \
         mm2mils100(TabDiam+0.66), \
         mm2mils100(TabDiam), \
-        '"mnt" "G" 0x0000]'
+        '"mnt" "G" 0x0000]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(TabSpacing/2), \
        mm2mils100(-(TabLen - TabDiam)/2), \
        mm2mils100(TabSpacing/2), \
@@ -161,9 +161,9 @@ print '   Pad[',\
        mm2mils100(TabDiam + TabMetal), \
        mm2mils100(0.31), \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "G" ""]'
+       '"mnt" "G" ""]')
 
-print '   Pad[',\
+print('   Pad[',\
        mm2mils100(TabSpacing/2), \
        mm2mils100(-(TabLen - TabDiam)/2), \
        mm2mils100(TabSpacing/2), \
@@ -171,13 +171,13 @@ print '   Pad[',\
        mm2mils100(TabDiam + TabMetal), \
        mm2mils100(0.31), \
        mm2mils100(PadWidth)+600, \
-       '"mnt" "G" "onsolder"]'
+       '"mnt" "G" "onsolder"]')
 
-print '   ElementLine[',\
+print('   ElementLine[',\
        mm2mils100(-TabSpacing/2), \
        mm2mils100(-EdgeOffset)+500, \
        mm2mils100(TabSpacing/2), \
        mm2mils100(-EdgeOffset)+500, \
-       '1000 ]'
+       '1000 ]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 50c2664..d548ed2
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2022 by Bdale Garbee <bdale@gag.com>.  GPLv3
 #
 # emit PCB footprint for Atmel VQFN-48 package used by SAM21D
@@ -26,16 +26,16 @@ PinResist = PinWidth + (2 * 0.07)
 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "vqfn-48" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "vqfn-48" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
 
 ## pad under the chip
-#print '   Pad[',\
+#print('   Pad[',\
 #      mm2mils100(0), \
 #      mm2mils100(0), \
 #      mm2mils100(0), \
@@ -43,19 +43,19 @@ print "("
 #      mm2mils100(GndSquare), \
 #      mm2mils100(PinClearance), \
 #      mm2mils100(PinResist), \
-#      '"pin49" "49" "square,nopaste"]'
+#      '"pin49" "49" "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
 #
@@ -65,7 +65,7 @@ print "("
 #  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), \
@@ -73,10 +73,10 @@ print "("
 #      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), \
@@ -84,9 +84,9 @@ print "("
 #      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), \
@@ -94,11 +94,11 @@ print "("
 #      1500, \
 #      0, \
 #      mm2mils100((CoreSquare)/blocks), \
-#      '"pin17" "17" "square"]'
+#      '"pin17" "17" "square"]')
 
 # pins
 for pin in range (1,13):
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-6.5 + pin) * PinSpacing), \
        mm2mils100(-RowSpacing/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((-6.5 + pin) * PinSpacing), \
@@ -106,9 +106,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (37-pin), '"%i"' % (37-pin), '0x0000]'
+       '"pin%i"' % (37-pin), '"%i"' % (37-pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100((-6.5 + pin) * PinSpacing), \
        mm2mils100(RowSpacing/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((-6.5 + pin) * PinSpacing), \
@@ -116,9 +116,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+       '"pin%i"' % pin, '"%i"' % pin, '0x0000]')
       
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(-RowSpacing/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((-6.5 + pin) * PinSpacing), \
        mm2mils100(-RowSpacing/2 + PinHeight/2 - PinWidth/2), \
@@ -126,9 +126,9 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (36+pin), '"%i"' % (36+pin), '0x0000]'
+       '"pin%i"' % (36+pin), '"%i"' % (36+pin), '0x0000]')
 
-    print '   Pad[',\
+    print('   Pad[',\
        mm2mils100(RowSpacing/2 - PinHeight/2 + PinWidth/2), \
        mm2mils100((-6.5 + pin) * PinSpacing), \
        mm2mils100(RowSpacing/2 + PinHeight/2 - PinWidth/2), \
@@ -136,10 +136,10 @@ for pin in range (1,13):
        mm2mils100(PinWidth), \
        mm2mils100(PinClearance), \
        mm2mils100(PinResist), \
-       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '0x0000]'
+       '"pin%i"' % (25-pin), '"%i"' % (25-pin), '0x0000]')
 
-print '   ElementArc[',\
+print('   ElementArc[',\
        mm2mils100(-Overall/2 - PinWidth), \
        mm2mils100(Overall/2 + PinWidth), \
-       '500 500 0 360 1000 ]'
-print ")"
+       '500 500 0 360 1000 ]')
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index f7b52f6..6cac18c
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2014 by Bdale Garbee <bdale@gag.com>.  GPLv2
 #
 # Program to emit PCB footprint for edge-launch wire antenna
@@ -13,15 +13,15 @@ PinSpacing = PinWidth / 2 + 4000
 
 import sys
 
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
 
-print 'Element[0x0 "wire-ant" "" "" 0 0 0 0 0 0 0x0]'
-print "("
+print('Element[0x0 "wire-ant" "" "" 0 0 0 0 0 0 0x0]')
+print("(")
 
-print '   Pad[',\
+print('   Pad[',\
        (-PinSpacing - GndWidth/2), \
        (GndWidth/2), \
        (-PinSpacing - GndWidth/2), \
@@ -29,8 +29,8 @@ print '   Pad[',\
        (GndWidth), \
        0, \
        (GndWidth + 600), \
-       '"pin2"', '"2"', '"square,nopaste"]'
-print '   Pad[',\
+       '"pin2"', '"2"', '"square,nopaste"]')
+print('   Pad[',\
        0, \
        (PinWidth/2), \
        0, \
@@ -38,8 +38,8 @@ print '   Pad[',\
        (PinWidth), \
        0, \
        (PinWidth + 600), \
-       '"pin1"', '"1"', '"square,nopaste"]'
-print '   Pad[',\
+       '"pin1"', '"1"', '"square,nopaste"]')
+print('   Pad[',\
        (PinSpacing + GndWidth/2), \
        (GndWidth/2), \
        (PinSpacing + GndWidth/2), \
@@ -47,6 +47,6 @@ print '   Pad[',\
        (GndWidth), \
        0, \
        (GndWidth + 600), \
-       '"pin2"', '"2"', '"square,nopaste"]'
+       '"pin2"', '"2"', '"square,nopaste"]')
 
-print ")"
+print(")")
old mode 100755 (executable)
new mode 100644 (file)
index 4f21285..00202aa
@@ -1,6 +1,7 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
 # Copyright 2019 by Keith Packard <keithp@keithp.com>.  GPLv2+
+# Copyright 2024 by Bdale Garbee <bdale@gag.com>.  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(")")