From 157188c830f56beb7830f78bede8fa0975072bbb Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Mon, 26 Mar 2012 12:49:22 -0400 Subject: [PATCH] update QTH to get hole spacing right --- pkg/newlib/MS-012-AA.py | 85 ++++++++++++++++++++++++++++++++++++++++ pkg/newlib/samtec/QTH.py | 2 +- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100755 pkg/newlib/MS-012-AA.py diff --git a/pkg/newlib/MS-012-AA.py b/pkg/newlib/MS-012-AA.py new file mode 100755 index 0000000..c4762e2 --- /dev/null +++ b/pkg/newlib/MS-012-AA.py @@ -0,0 +1,85 @@ +#!/usr/bin/python +# Copyright 2012 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for SOIC-8 package used by FM25V05 +# + +# dimensions in mm from FM25V05_ds.pdf by RAMTRON + +BodyWidth = 3.90 +BodyHeight = 4.90 + +PinWidth = 0.65 +PinHeight = 2.0 +PinSpacing = 1.27 +RowOuter = 7.70 +RowSpacing = RowOuter - (PinHeight * 2) + +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 "SOIJ8" "" "" 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"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + mm2mils100(-BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + mm2mils100( BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + mm2mils100( BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + mm2mils100(-BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + '1000 ]' + +print ' ElementArc[',\ + mm2mils100(-1.5 * PinSpacing), \ + mm2mils100(RowSpacing/2-PinHeight/4), \ + '500 500 0 360 1000 ]' + +print ")" diff --git a/pkg/newlib/samtec/QTH.py b/pkg/newlib/samtec/QTH.py index 4c52ff6..2c07c66 100755 --- a/pkg/newlib/samtec/QTH.py +++ b/pkg/newlib/samtec/QTH.py @@ -29,7 +29,7 @@ if (ordinal < 1) or (ordinal > 5) or (positions%30 != 0): BodyWidth = (positions / 30) * 20.003 + 1.27 BodyHeight = 7.493 -HoleSpacing = (positions / 30) * 20.00 + 0.13 +HoleSpacing = (positions / 30) * 20.00 - 1.52 # we're going to use the 1/100 of a mil fundamental unit form def mm2mils100( mm ): -- 2.30.2