add footprint generators for samtec stacking connector series, not qa'ed yet
authorBdale Garbee <bdale@gag.com>
Sun, 20 Nov 2011 22:29:06 +0000 (15:29 -0700)
committerBdale Garbee <bdale@gag.com>
Sun, 20 Nov 2011 22:29:06 +0000 (15:29 -0700)
pkg/newlib/samtec/BSE.py [new file with mode: 0755]
pkg/newlib/samtec/BTE.py [new file with mode: 0755]
pkg/newlib/samtec/Makefile [new file with mode: 0644]
pkg/newlib/samtec/QSH.py [new file with mode: 0755]
pkg/newlib/samtec/QTH.py [new file with mode: 0755]
pkg/newlib/samtec/bsebte [new file with mode: 0755]
pkg/newlib/samtec/qshqth [new file with mode: 0755]

diff --git a/pkg/newlib/samtec/BSE.py b/pkg/newlib/samtec/BSE.py
new file mode 100755 (executable)
index 0000000..bb07e78
--- /dev/null
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+# Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for Samtec BSE connectors
+
+import sys
+
+# dimensions in mm from Bse-d.pdf and BSE.pdf
+
+PinWidth = 0.406
+PinHeight = 2.273
+PinSpacing = 0.8
+RowSpacing = 8.001 - (2 * PinHeight)
+HoleDiam = 1.016
+HoleOffset= 2.67
+
+# Needs pin count per row on command line, 20/40/60/80/100/120 are valid
+positions = int(sys.argv[1])
+ordinal = positions / 20.0
+if (ordinal < 1) or (ordinal > 6) or (positions%20 != 0):
+       sys.stderr.write('Invalid number of positions, must be 20|40|60|80|100|120.\n')
+       sys.exit(1)
+
+BodyWidth = (positions * PinSpacing) + 5.27
+BodyHeight = 7.24
+HoleSpacing = (positions * PinSpacing) + 4.127
+
+# 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 "SOIJ8" "" "" 0 0 -10161 -12011 0 100 0x0]'
+print "("
+for pin in range (0,positions):
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth)+600, \
+       '"pin%i"' % (2 + pin*2), '"%i"' % (2 + pin*2), '0x0100]'
+
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinWidth/2), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth)+600, \
+       '"pin%i"' % (1 + pin*2), '"%i"' % (1 + pin*2), '0x0100]'
+
+print '   Pin[', \
+    mm2mils100(HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   Pin[', \
+    mm2mils100(-HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementArc[',\
+       mm2mils100(-(positions/2 + 0.5) * PinSpacing), \
+       mm2mils100(RowSpacing/2+PinHeight*5/4), \
+       '500 500 0 360 1000 ]'
+
+print ")"
diff --git a/pkg/newlib/samtec/BTE.py b/pkg/newlib/samtec/BTE.py
new file mode 100755 (executable)
index 0000000..5329dc4
--- /dev/null
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+# Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for Samtec BTE connectors
+
+import sys
+
+# dimensions in mm from BTE-XXX-XX-X-D-XX-FOOTPRINT.pdf and BSE.pdf
+
+PinWidth = 0.457
+PinHeight = 1.448
+PinSpacing = 0.8
+RowSpacing = 6.172 - PinHeight
+HoleDiam = 1.016
+HoleOffset= 2.032
+
+# Needs pin count per row on command line, 20/40/60/80/100/120 are valid
+positions = int(sys.argv[1])
+ordinal = positions / 20.0
+if (ordinal < 1) or (ordinal > 6) or (positions%20 != 0):
+       sys.stderr.write('Invalid number of positions, must be 20|40|60|80|100|120.\n')
+       sys.exit(1)
+
+BodyWidth = (positions * PinSpacing) + 4.00
+BodyHeight = 5.97
+HoleSpacing = (positions * PinSpacing) + 2.477
+
+# 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 "BSE" "" "" 0 0 -10161 -12011 0 100 0x0]'
+print "("
+for pin in range (0,positions):
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth)+600, \
+       '"pin%i"' % (1 + pin*2), '"%i"' % (1 + pin*2), '0x0100]'
+
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinWidth/2), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth)+600, \
+       '"pin%i"' % (2 + pin*2), '"%i"' % (2 + pin*2), '0x0100]'
+
+print '   Pin[', \
+    mm2mils100(HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   Pin[', \
+    mm2mils100(-HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementArc[',\
+       mm2mils100(-(positions/2 + 0.5) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2+PinHeight*5/4)), \
+       '500 500 0 360 1000 ]'
+
+print ")"
diff --git a/pkg/newlib/samtec/Makefile b/pkg/newlib/samtec/Makefile
new file mode 100644 (file)
index 0000000..6f1c882
--- /dev/null
@@ -0,0 +1,10 @@
+all:   BSE-020-01.fp QSE-030-01.fp
+
+BSE-020-01.fp: bsebte BSE.py BTE.py
+       ./bsebte
+
+QSE-030-01.fp: qshqth QSH.py QTH.py
+       ./qshqth
+
+clean:
+       rm -f *.fp
diff --git a/pkg/newlib/samtec/QSH.py b/pkg/newlib/samtec/QSH.py
new file mode 100755 (executable)
index 0000000..b98f092
--- /dev/null
@@ -0,0 +1,158 @@
+#!/usr/bin/python
+# Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for Samtec QSH-XXX-01-X-D-A connectors
+
+import sys
+
+# dimensions in mm from QSH-XXX-01-X-D-XX-FOOTPRINT.pdf
+
+PinWidth = 0.28
+PinHeight = 2.27
+PinSpacing = 0.5
+RowSpacing = (2.87 * 2) - PinHeight
+HoleDiam = 1.02
+HoleOffset= 2.67
+PaddleHeight = 0.43
+ShortPaddleWidth = 2.54
+LongPaddleWidth = 4.70
+ShortPaddleCC = 16.13
+LongPaddleCC = 6.35
+MaskAdd = 0.15
+
+# Needs pin count per row on command line, 30/60/90/120/150 are valid
+positions = int(sys.argv[1])
+ordinal = positions / 30.0
+if (ordinal < 1) or (ordinal > 5) or (positions%30 != 0):
+       sys.stderr.write('Invalid number of positions, must be 30|60|90|120|150.\n')
+       sys.exit(1)
+
+BodyWidth = (positions / 30) * 20.003 + 1.27
+BodyHeight = 7.493
+HoleSpacing = (positions / 30) * 20.00 + 0.13
+
+# 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 "QSH-%i"' % positions,' "" "" 0 0 -10161 -12011 0 100 0x0]'
+print "("
+for pin in range (0,positions):
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+       mm2mils100(PinWidth), \
+       mm2mils100(0), \
+       mm2mils100(PinWidth+MaskAdd), \
+       '"pin%i"' % (2 + pin*2), '"%i"' % (2 + pin*2), '0x0100]'
+
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinWidth/2), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(0), \
+       mm2mils100(PinWidth+MaskAdd), \
+       '"pin%i"' % (1 + pin*2), '"%i"' % (1 + pin*2), '0x0100]'
+
+# ground paddles
+print '   Pad[',\
+    mm2mils100(-ShortPaddleCC/2 - ShortPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(-ShortPaddleCC/2 + ShortPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pad[',\
+    mm2mils100(ShortPaddleCC/2 - ShortPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(ShortPaddleCC/2 + ShortPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pad[',\
+    mm2mils100(-LongPaddleCC/2 - LongPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(-LongPaddleCC/2 + LongPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pad[',\
+    mm2mils100(LongPaddleCC/2 - LongPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(LongPaddleCC/2 + LongPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pin[', \
+    mm2mils100(HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   Pin[', \
+    mm2mils100(-HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementArc[',\
+       mm2mils100(-(positions/2 + 0.5) * PinSpacing), \
+       mm2mils100(RowSpacing/2+PinHeight*5/4), \
+       '500 500 0 360 1000 ]'
+
+print ")"
diff --git a/pkg/newlib/samtec/QTH.py b/pkg/newlib/samtec/QTH.py
new file mode 100755 (executable)
index 0000000..8cae3ff
--- /dev/null
@@ -0,0 +1,158 @@
+#!/usr/bin/python
+# Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for Samtec QSH-XXX-01-X-D-A connectors
+
+import sys
+
+# dimensions in mm from QSH-XXX-01-X-D-XX-FOOTPRINT.pdf
+
+PinWidth = 0.30
+PinHeight = 1.45
+PinSpacing = 0.5
+RowSpacing = (3.09 * 2) - PinHeight
+HoleDiam = 1.02
+HoleOffset= 2.03
+PaddleHeight = 0.64
+ShortPaddleWidth = 2.54
+LongPaddleWidth = 4.70
+ShortPaddleCC = 16.89
+LongPaddleCC = 6.35
+MaskAdd = 0.15
+
+# Needs pin count per row on command line, 30/60/90/120/150 are valid
+positions = int(sys.argv[1])
+ordinal = positions / 30.0
+if (ordinal < 1) or (ordinal > 5) or (positions%30 != 0):
+       sys.stderr.write('Invalid number of positions, must be 30|60|90|120|150.\n')
+       sys.exit(1)
+
+BodyWidth = (positions / 30) * 20.003 + 1.27
+BodyHeight = 7.493
+HoleSpacing = (positions / 30) * 20.00 + 0.13
+
+# 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 "QSH-%i"' % positions,' "" "" 0 0 -10161 -12011 0 100 0x0]'
+print "("
+for pin in range (0,positions):
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+       mm2mils100(PinWidth), \
+       mm2mils100(0), \
+       mm2mils100(PinWidth+MaskAdd), \
+       '"pin%i"' % (1 + pin*2), '"%i"' % (1 + pin*2), '0x0100]'
+
+    print '   Pad[',\
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinWidth/2), \
+       mm2mils100((pin-(positions/2 - 0.5)) * PinSpacing), \
+       mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(0), \
+       mm2mils100(PinWidth+MaskAdd), \
+       '"pin%i"' % (2 + pin*2), '"%i"' % (2 + pin*2), '0x0100]'
+
+# ground paddles
+print '   Pad[',\
+    mm2mils100(-ShortPaddleCC/2 - ShortPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(-ShortPaddleCC/2 + ShortPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pad[',\
+    mm2mils100(ShortPaddleCC/2 - ShortPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(ShortPaddleCC/2 + ShortPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pad[',\
+    mm2mils100(-LongPaddleCC/2 - LongPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(-LongPaddleCC/2 + LongPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pad[',\
+    mm2mils100(LongPaddleCC/2 - LongPaddleWidth/2 + PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(LongPaddleCC/2 + LongPaddleWidth/2 - PaddleHeight/2), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight), \
+    mm2mils100(0), \
+    mm2mils100(PaddleHeight+MaskAdd), \
+    '"G" "G" 0x0100]'
+
+print '   Pin[', \
+    mm2mils100(HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   Pin[', \
+    mm2mils100(-HoleSpacing/2), \
+    mm2mils100(-HoleOffset), \
+    mm2mils100(HoleDiam), \
+    0, \
+    mm2mils100(HoleDiam), \
+    mm2mils100(HoleDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100( BodyHeight/2), \
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementLine[',\
+       mm2mils100( BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       mm2mils100(-BodyWidth/2), \
+       mm2mils100(-BodyHeight/2), \
+       '1000 ]'
+
+print '   ElementArc[',\
+       mm2mils100(-(positions/2 + 0.5) * PinSpacing), \
+       mm2mils100(-(RowSpacing/2+PinHeight*5/4)), \
+       '500 500 0 360 1000 ]'
+
+print ")"
diff --git a/pkg/newlib/samtec/bsebte b/pkg/newlib/samtec/bsebte
new file mode 100755 (executable)
index 0000000..6296890
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+for i in 020 040 060 080 100 120
+do
+       FILE="BSE-"$i"-01"
+       ./BSE.py $i > $FILE.fp
+
+       FILE="BTE-"$i"-02"
+       ./BTE.py $i > $FILE.fp
+done
diff --git a/pkg/newlib/samtec/qshqth b/pkg/newlib/samtec/qshqth
new file mode 100755 (executable)
index 0000000..45892e3
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+for i in 030 # 060 090 120 150
+do
+       FILE="QSH-"$i"-01"
+       ./QSH.py $i > $FILE.fp
+
+       FILE="QTH-"$i"-02"
+       ./QTH.py $i > $FILE.fp
+done