From 2299fbdfdeca0ceca397f7471ce74d176d3a5d5a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 12 Aug 2012 23:07:37 -0700 Subject: [PATCH] Use the ATMEL QFN appnote AT88RF1354 to build a more credible footprint This steals the CC1111 footprint generator and hacks it to create an ATTiny85 footprint. Signed-off-by: Keith Packard --- micropeak.pcb | 145 ++++++++++++++++++++++++--------------------- micropeak.sch | 2 +- packages/MO-220.fp | 43 ++++++++++++++ packages/MO-220.py | 144 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 266 insertions(+), 68 deletions(-) create mode 100644 packages/MO-220.fp create mode 100644 packages/MO-220.py diff --git a/micropeak.pcb b/micropeak.pcb index 373de21..9b807d8 100644 --- a/micropeak.pcb +++ b/micropeak.pcb @@ -6,7 +6,7 @@ FileVersion[20070407] PCB["MicroPeak" 70000 56000] Grid[100.0 0 0 0] -Cursor[0 0 0.000000] +Cursor[2900 0 0.000000] PolyArea[200000000.000000] Thermal[0.500000] DRC[500 1000 500 500 1500 650] @@ -787,8 +787,8 @@ Symbol['~' 1200] SymbolLine[2000 3500 2500 3000 800] ) Attribute("PCB::grid::unit" "mil") -Via[51300 33000 3600 2000 0 2000 "" "thermal(1X)"] -Via[51300 37600 3600 2000 0 2000 "" "thermal(1X)"] +Via[55800 32000 3600 2000 0 2000 "" "thermal(1S)"] +Via[55800 38600 3600 2000 0 2000 "" "thermal(1S)"] Via[51900 4200 3600 2000 0 2000 "" "thermal(1S)"] Via[39900 12200 3600 2000 0 2000 "" ""] Via[37000 18400 3600 2000 0 2000 "" ""] @@ -797,8 +797,10 @@ Via[64800 1800 3600 2000 0 2000 "" "thermal(1S)"] Via[26500 15100 3600 2000 0 2000 "" "thermal(1S)"] Via[32400 48100 3600 2000 0 2000 "" "thermal(1S)"] Via[49500 22500 3600 2000 0 2000 "" ""] -Via[46600 46500 3600 2000 0 2000 "" ""] Via[21200 30300 3600 2000 0 2000 "" "thermal(1S)"] +Via[49200 38600 3600 2000 0 2000 "" "thermal(1S)"] +Via[49200 32000 3600 2000 0 2000 "" "thermal(1S)"] +Via[50200 45600 3600 2000 0 2000 "" ""] Element["" "0603diode" "D1" "red" 35000 52500 -11800 -3000 0 100 ""] ( @@ -834,7 +836,7 @@ Element["" "hole-M2.5" "H2" "unknown" 7500 48500 -16900 -21000 0 100 ""] ) -Element["" "hole-M2.5" "H1" "unknown" 62500 48500 -16900 -21000 0 100 ""] +Element["" "hole-M2.5" "H1" "unknown" 62500 48500 -2500 -3200 0 100 ""] ( Pin[0 0 11000 2000 11000 9800 "1" "1" "usetherm,thermal(1S)"] ElementArc [0 0 7000 7000 0 360 1000] @@ -862,44 +864,13 @@ Element["" "0402" "C2" "0.1uF" 64800 6700 -1698 7624 0 100 ""] ) -Element["" "0402" "C1" "0.1uF" 34974 28100 -9198 -3298 0 100 ""] +Element["" "0402" "C1" "0.1uF" 39874 28100 -9198 -3298 0 100 ""] ( Pad[-1574 -393 -1574 393 1968 2000 2568 "1" "1" "square"] Pad[1574 -393 1574 393 1968 2000 2568 "2" "2" "square"] ) -Element["" "QFN20_4" "U1" "unknown" 49000 35300 -9358 -16308 0 100 ""] -( - Pad[-3937 5866 -3937 8307 1102 2000 1402 "(PCINT5/nRESET/ADC0/dW) PB5" "1" "square,edge2"] - Pad[-1968 5866 -1968 8307 1102 2000 1402 "(PCINT3/XTAL1/CLKI/nOC1B/ADC3) PB3" "2" "square,edge2"] - Pad[0 5866 0 8307 1102 2000 1402 "3" "3" "square,edge2"] - Pad[1968 5866 1968 8307 1102 2000 1402 "4" "4" "square,edge2"] - Pad[3937 5866 3937 8307 1102 2000 1402 "(PCINT4/XTAL2/CLK)/OC1B/ADC2) PB4" "5" "square,edge2"] - Pad[5866 3937 8307 3937 1102 2000 1402 "6" "6" "square,octagon,edge2"] - Pad[5866 1968 8307 1968 1102 2000 1402 "7" "7" "square,octagon,edge2"] - Pad[5866 0 8307 0 1102 2000 1402 "GND" "8" "square,octagon,edge2"] - Pad[5866 -1968 8307 -1968 1102 2000 1402 "9" "9" "square,octagon,edge2"] - Pad[5866 -3937 8307 -3937 1102 2000 1402 "10" "10" "square,octagon,edge2"] - Pad[3937 -8307 3937 -5866 1102 2000 1402 "(MOSI/DI/SDA/AIN0/OC0A/nOC1A/AREF/PCINT0) PB0" "11" "square"] - Pad[1968 -8307 1968 -5866 1102 2000 1402 "(MISO/DO/AIN1/OC0B/OC1A/PCINT1) PB1" "12" "square"] - Pad[0 -8307 0 -5866 1102 2000 1402 "13" "13" "square"] - Pad[-1968 -8307 -1968 -5866 1102 2000 1402 "(SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) PB2" "14" "square"] - Pad[-3937 -8307 -3937 -5866 1102 2000 1402 "VCC" "15" "square"] - Pad[-8307 -3937 -5866 -3937 1102 2000 1402 "16" "16" "square,octagon"] - Pad[-8307 -1968 -5866 -1968 1102 2000 1402 "17" "17" "square,octagon"] - Pad[-8307 0 -5866 0 1102 2000 1402 "18" "18" "square,octagon"] - Pad[-8307 1968 -5866 1968 1102 2000 1402 "19" "19" "square,octagon"] - Pad[-8307 3937 -5866 3937 1102 2000 1402 "20" "20" "square,octagon"] - Pad[0 0 0 0 10236 1000 10736 "GND Exposed" "21" "square,octagon,edge2"] - ElementLine [-9858 -9858 9858 -9858 1000] - ElementLine [-9858 -9858 -9858 9858 1000] - ElementLine [-9858 9858 9858 9858 1000] - ElementLine [9858 -9858 9858 9858 1000] - ElementLine [-9858 9858 -11358 11358 1000] - - ) - Element["" "MS5611" "U2" "unknown" 51900 12200 -16961 -10811 0 100 ""] ( Pad[7381 3345 7381 5314 2362 2559 2962 "SCLK" "8" "square,edge2"] @@ -934,6 +905,47 @@ Element["" "pico-ezmate-2" "J1" "unknown" 17100 28000 5951 -8869 0 100 ""] ElementLine [-17000 -11000 -17000 -6000 100] ElementLine [-17000 -11000 1000 -11000 100] + ) + +Element["" "MO-220" "U1" "unknown" 52500 35300 -10300 -11000 0 100 ""] +( + Pad[0 0 0 0 10236 0 0 "pin21" "21" "square,nopaste"] + Pad[-3411 -3411 -3411 -3411 3412 0 0 "pin21" "21" "square,nopaste"] + Pad[0 -3411 0 -3411 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[0 -3411 0 -3411 1500 0 3412 "pin21" "21" "square"] + Pad[3412 -3411 3412 -3411 3412 0 0 "pin21" "21" "square,edge2,nopaste"] + Pad[-3411 0 -3411 0 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[-3411 0 -3411 0 1500 0 3412 "pin21" "21" "square"] + Pad[0 0 0 0 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[0 0 0 0 1500 0 3412 "pin21" "21" "square"] + Pad[3412 0 3412 0 3412 0 3412 "pin21" "21" "square,edge2,nopaste"] + Pad[3412 0 3412 0 1500 0 3412 "pin21" "21" "square,edge2"] + Pad[-3411 3412 -3411 3412 3412 0 0 "pin21" "21" "square,nopaste"] + Pad[0 3412 0 3412 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[0 3412 0 3412 1500 0 3412 "pin21" "21" "square"] + Pad[3412 3412 3412 3412 3412 0 0 "pin21" "21" "square,edge2,nopaste"] + Pad[-3936 -7912 -3936 -6653 906 1063 1457 "pin15" "15" ""] + Pad[-3936 6654 -3936 7913 906 1063 1457 "pin1" "1" "edge2"] + Pad[6654 -3936 7913 -3936 906 1063 1457 "pin10" "10" "edge2"] + Pad[-7912 -3936 -6653 -3936 906 1063 1457 "pin16" "16" ""] + Pad[-1968 -7912 -1968 -6653 906 1063 1457 "pin14" "14" ""] + Pad[-1968 6654 -1968 7913 906 1063 1457 "pin2" "2" "edge2"] + Pad[6654 -1968 7913 -1968 906 1063 1457 "pin9" "9" "edge2"] + Pad[-7912 -1968 -6653 -1968 906 1063 1457 "pin17" "17" ""] + Pad[0 -7912 0 -6653 906 1063 1457 "pin13" "13" ""] + Pad[0 6654 0 7913 906 1063 1457 "pin3" "3" "edge2"] + Pad[6654 0 7913 0 906 1063 1457 "pin8" "8" "edge2"] + Pad[-7912 0 -6653 0 906 1063 1457 "pin18" "18" ""] + Pad[1969 -7912 1969 -6653 906 1063 1457 "pin12" "12" ""] + Pad[1969 6654 1969 7913 906 1063 1457 "pin4" "4" "edge2"] + Pad[6654 1969 7913 1969 906 1063 1457 "pin7" "7" "edge2"] + Pad[-7912 1969 -6653 1969 906 1063 1457 "pin19" "19" ""] + Pad[3937 -7912 3937 -6653 906 1063 1457 "pin11" "11" ""] + Pad[3937 6654 3937 7913 906 1063 1457 "pin5" "5" "edge2"] + Pad[6654 3937 7913 3937 906 1063 1457 "pin6" "6" "edge2"] + Pad[-7912 3937 -6653 3937 906 1063 1457 "pin20" "20" ""] + ElementArc [-7873 7874 500 500 0 360 1000] + ) Layer(1 "top") ( @@ -962,39 +974,37 @@ Layer(1 "top") Line[32441 52500 32441 48141 1000 2000 ""] Line[32441 48141 32400 48100 1000 2000 ""] Line[37559 52500 41326 52500 1000 2000 ""] - Line[50968 28214 50968 25032 1000 2000 "clearline"] - Line[50968 25032 52400 23600 1000 2000 "clearline"] - Line[52400 23600 52400 21300 1000 2000 "clearline"] - Line[49439 16530 49439 18339 1000 2000 "clearline"] - Line[52400 21300 49439 18339 1000 2000 "clearline"] - Line[54360 16530 54360 24140 1000 2000 "clearline"] - Line[54360 24140 53000 25500 1000 2000 "clearline"] - Line[53000 25500 53000 28150 1000 2000 "clearline"] - Line[53000 28150 52937 28214 1000 2000 "clearline"] - Line[56086 35300 58800 35300 1000 2000 "clearline"] - Line[58800 35300 62500 39000 1000 2000 "clearline"] - Line[62500 39000 62500 48500 1000 2000 "clearline"] - Line[47032 28214 47032 24968 1000 2000 "clearline"] - Line[47032 24968 49500 22500 1000 2000 "clearline"] - Line[47032 42386 47032 46068 1000 2000 "clearline"] - Line[47032 46068 46600 46500 1000 2000 "clearline"] - Line[44474 52500 45400 52500 1000 2000 "clearline"] - Line[45400 52500 52900 45000 1000 2000 "clearline"] - Line[52900 45000 52900 42424 1000 2000 "clearline"] - Line[52900 42424 52937 42386 1000 2000 "clearline"] - Line[45063 28214 45063 26463 1000 2000 "clearline"] - Line[45063 26463 37000 18400 1000 2000 "clearline"] - Line[45063 42386 39786 42386 1000 2000 "clearline"] - Line[36548 28100 45063 28100 1000 2000 "clearline"] - Line[26500 15100 26500 23100 1000 2000 "clearline"] - Line[26500 23100 31500 28100 1000 2000 "clearline"] - Line[31500 28100 33400 28100 1000 2000 "clearline"] Line[17100 30362 21138 30362 1000 2000 "clearline"] Line[21138 30362 21200 30300 1000 2000 "clearline"] - Line[39814 42386 39786 42386 1000 2000 "clearline"] - Line[39786 42386 23000 25600 1000 2000 "clearline"] Line[23000 25600 17138 25600 1000 2000 "clearline"] Line[17138 25600 17100 25638 1000 2000 "clearline"] + Line[56437 28018 56437 21837 1000 2000 "clearline"] + Line[56437 21837 54400 19800 1000 2000 "clearline"] + Line[54400 19800 54400 16570 1000 2000 "clearline"] + Line[54400 16570 54360 16530 1000 2000 "clearline"] + Line[54469 28018 54469 23269 1000 2000 "clearline"] + Line[54469 23269 49500 18300 1000 2000 "clearline"] + Line[49500 18300 49500 16590 1000 2000 "clearline"] + Line[49500 16590 49439 16530 1000 2000 "clearline"] + Line[50532 28018 50532 23532 1000 2000 "clearline"] + Line[50532 23532 49500 22500 1000 2000 "clearline"] + Line[48564 42584 39984 42584 1000 2000 "clearline"] + Line[39984 42584 23000 25600 1000 2000 "clearline"] + Line[56437 42584 56437 43463 1000 2000 "clearline"] + Line[56437 43463 47400 52500 1000 2000 "clearline"] + Line[47400 52500 44474 52500 1000 2000 "clearline"] + Line[50532 42584 50532 45268 1000 2000 "clearline"] + Line[50532 45268 50200 45600 1000 2000 "clearline"] + Line[62500 48500 62500 36100 1000 2000 "clearline"] + Line[62500 36100 61700 35300 1000 2000 "clearline"] + Line[61700 35300 59784 35300 1000 2000 "clearline"] + Line[41448 28100 48482 28100 1000 2000 "clearline"] + Line[48482 28100 48564 28018 1000 2000 "clearline"] + Line[48564 28018 46618 28018 1000 2000 "clearline"] + Line[46618 28018 37000 18400 1000 2000 "clearline"] + Line[38300 28100 36500 28100 1000 2000 "clearline"] + Line[36500 28100 26500 18100 1000 2000 "clearline"] + Line[26500 18100 26500 15100 1000 2000 "clearline"] ) Layer(2 "bottom") ( @@ -1004,11 +1014,12 @@ Layer(2 "bottom") Line[55900 28000 55600 27700 2500 2000 ""] Line[39900 12200 39900 13400 1000 2000 "clearline"] Line[39900 13400 46600 20100 1000 2000 "clearline"] - Line[46600 20100 46600 46500 1000 2000 "clearline"] Line[63600 42000 63600 18300 2500 2000 ""] Line[49500 22500 54500 22500 1000 2000 "clearline"] Line[54500 22500 64800 12200 1000 2000 "clearline"] Line[37000 18400 37000 23200 2500 2000 "clearline"] + Line[46600 20100 46600 42000 1000 2000 "clearline"] + Line[46600 42000 50200 45600 1000 2000 "clearline"] Polygon("clearpoly") ( [500 500] [69500 500] [69500 55500] [500 55500] diff --git a/micropeak.sch b/micropeak.sch index 7bd89ce..7845ba7 100644 --- a/micropeak.sch +++ b/micropeak.sch @@ -3,7 +3,7 @@ C 40000 40000 0 0 0 title-B.sym C 42000 44500 1 0 0 attiny85.sym { T 41995 44475 5 10 0 1 0 0 1 -footprint=QFN20_4 +footprint=MO-220 T 46900 48100 5 10 1 1 0 0 1 refdes=U1 T 42400 48100 5 10 1 1 0 0 1 diff --git a/packages/MO-220.fp b/packages/MO-220.fp new file mode 100644 index 0000000..316a73b --- /dev/null +++ b/packages/MO-220.fp @@ -0,0 +1,43 @@ +# author: Keith Packard +# email: keithp@keithp.com +# dist-license: GPL 2 +# use-license: unlimited +Element[0x0 "MO-220" "" "" 0 0 0 0 0 100 0x0] +( + Pad[ 0 0 0 0 10236 0 0 "pin21" "21" "square,nopaste"] + Pad[ -3411 -3411 -3411 -3411 3412 0 0 "pin21" "21" "square,nopaste"] + Pad[ 0 -3411 0 -3411 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[ 0 -3411 0 -3411 1500 0 3412 "pin21" "21" "square"] + Pad[ 3412 -3411 3412 -3411 3412 0 0 "pin21" "21" "square,nopaste"] + Pad[ -3411 0 -3411 0 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[ -3411 0 -3411 0 1500 0 3412 "pin21" "21" "square"] + Pad[ 0 0 0 0 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[ 0 0 0 0 1500 0 3412 "pin21" "21" "square"] + Pad[ 3412 0 3412 0 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[ 3412 0 3412 0 1500 0 3412 "pin21" "21" "square"] + Pad[ -3411 3412 -3411 3412 3412 0 0 "pin21" "21" "square,nopaste"] + Pad[ 0 3412 0 3412 3412 0 3412 "pin21" "21" "square,nopaste"] + Pad[ 0 3412 0 3412 1500 0 3412 "pin21" "21" "square"] + Pad[ 3412 3412 3412 3412 3412 0 0 "pin21" "21" "square,nopaste"] + Pad[ -3936 -7912 -3936 -6653 906 1063 1457 "pin15" "15" 0x0000] + Pad[ -3936 6654 -3936 7913 906 1063 1457 "pin1" "1" 0x0000] + Pad[ 6654 -3936 7913 -3936 906 1063 1457 "pin10" "10" 0x0000] + Pad[ -7912 -3936 -6653 -3936 906 1063 1457 "pin16" "16" 0x0000] + Pad[ -1968 -7912 -1968 -6653 906 1063 1457 "pin14" "14" 0x0000] + Pad[ -1968 6654 -1968 7913 906 1063 1457 "pin2" "2" 0x0000] + Pad[ 6654 -1968 7913 -1968 906 1063 1457 "pin9" "9" 0x0000] + Pad[ -7912 -1968 -6653 -1968 906 1063 1457 "pin17" "17" 0x0000] + Pad[ 0 -7912 0 -6653 906 1063 1457 "pin13" "13" 0x0000] + Pad[ 0 6654 0 7913 906 1063 1457 "pin3" "3" 0x0000] + Pad[ 6654 0 7913 0 906 1063 1457 "pin8" "8" 0x0000] + Pad[ -7912 0 -6653 0 906 1063 1457 "pin18" "18" 0x0000] + Pad[ 1969 -7912 1969 -6653 906 1063 1457 "pin12" "12" 0x0000] + Pad[ 1969 6654 1969 7913 906 1063 1457 "pin4" "4" 0x0000] + Pad[ 6654 1969 7913 1969 906 1063 1457 "pin7" "7" 0x0000] + Pad[ -7912 1969 -6653 1969 906 1063 1457 "pin19" "19" 0x0000] + Pad[ 3937 -7912 3937 -6653 906 1063 1457 "pin11" "11" 0x0000] + Pad[ 3937 6654 3937 7913 906 1063 1457 "pin5" "5" 0x0000] + Pad[ 6654 3937 7913 3937 906 1063 1457 "pin6" "6" 0x0000] + Pad[ -7912 3937 -6653 3937 906 1063 1457 "pin20" "20" 0x0000] + ElementArc[ -7873 7874 500 500 0 360 1000 ] +) diff --git a/packages/MO-220.py b/packages/MO-220.py new file mode 100644 index 0000000..aeae929 --- /dev/null +++ b/packages/MO-220.py @@ -0,0 +1,144 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for MO-220 package used by the ATTiny85 +# + +# dimensions in mm from the ATTiny datasheed + +PinWidth = 0.23 # b +PinHeight = 0.55 # L +PinSpacing = 0.50 # e +Overall = 4.25 # E +GndSquare = 2.60 # D2 & E2 +CoreSquare = 2.60 + +# ATMEL specifies 120-150 microns between pad and solder mask +# AT88RF1354 Appplication note +# +PinResist = PinWidth + (2 * 0.07) + +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: Keith Packard' +print '# email: keithp@keithp.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +print 'Element[0x0 "MO-220" "" "" 0 0 0 0 0 100 0x0]' +print "(" + +# pad under the chip, must be grounded +print ' Pad[',\ + mm2mils100(0), \ + mm2mils100(0), \ + mm2mils100(0), \ + mm2mils100(0), \ + mm2mils100(GndSquare), \ + 0, \ + 0, \ + '"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[',\ +# mm2mils100(2 * viacol * CoreSquare / 5), \ +# mm2mils100(2 * viarow * CoreSquare / 5), \ +# 2900, \ +# 2500, \ +# 0, \ +# 1500, \ +# '"pin21" "21" 0x0002]' + +# break pad under chip into a grid to control the resist and paste masks + +blocks=3 + +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[',\ + mm2mils100(viacol * CoreSquare / blocks), \ + mm2mils100(viarow * CoreSquare / blocks), \ + mm2mils100(viacol * CoreSquare / blocks), \ + mm2mils100(viarow * CoreSquare / blocks), \ + mm2mils100((CoreSquare)/blocks), \ + 0, \ + 0, \ + '"pin21" "21" "square,nopaste"]' + else: + # copper sub-square without resist + print ' Pad[',\ + mm2mils100(viacol * CoreSquare / blocks), \ + mm2mils100(viarow * CoreSquare / blocks), \ + mm2mils100(viacol * CoreSquare / blocks), \ + mm2mils100(viarow * CoreSquare / blocks), \ + mm2mils100((CoreSquare)/blocks), \ + 0, \ + mm2mils100((CoreSquare)/blocks), \ + '"pin21" "21" "square,nopaste"]' + # copper spot to control paste mask generation + print ' Pad[',\ + mm2mils100(viacol * CoreSquare / blocks), \ + mm2mils100(viarow * CoreSquare / blocks), \ + mm2mils100(viacol * CoreSquare / blocks), \ + mm2mils100(viarow * CoreSquare / blocks), \ + 1500, \ + 0, \ + mm2mils100((CoreSquare)/blocks), \ + '"pin21" "21" "square"]' + +# pins +for pin in range (1,6): + print ' Pad[',\ + mm2mils100((-3 + pin) * PinSpacing), \ + mm2mils100(-Overall/2 + PinWidth/2), \ + mm2mils100((-3 + pin) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]' + + print ' Pad[',\ + mm2mils100((-3 + pin) * PinSpacing), \ + mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \ + mm2mils100((-3 + 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((-3 + pin) * PinSpacing), \ + mm2mils100(Overall/2 - PinWidth/2), \ + mm2mils100((-3 + pin) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]' + + print ' Pad[',\ + mm2mils100(-Overall/2 + PinWidth/2), \ + mm2mils100((-3 + pin) * PinSpacing), \ + mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \ + mm2mils100((-3 + pin) * PinSpacing), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinResist), \ + '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]' + +print ' ElementArc[',\ + mm2mils100(-2.0), \ + mm2mils100(2.0), \ + '500 500 0 360 1000 ]' +print ")" -- 2.47.2