From ba30f8335225109577752d2777fdb72f73c99a87 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Jul 2013 03:31:55 -0700 Subject: [PATCH] Add 2mm pitch pin header package Signed-off-by: Keith Packard --- packages/footprint.5c | 31 +++++++++++++++++++++++ packages/pinheader/2mmpitch.5c | 46 ++++++++++++++++++++++++++++++++++ packages/pinheader/Makefile | 6 ++++- 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 packages/pinheader/2mmpitch.5c diff --git a/packages/footprint.5c b/packages/footprint.5c index 3fd921c..e3bcdd4 100644 --- a/packages/footprint.5c +++ b/packages/footprint.5c @@ -186,6 +186,28 @@ namespace Footprint { } + public void pin_mm_clear_options(real x, real y, real drill, real copper, real clearance, + string name, + string number, + string options) + { + real thickness = drill + copper * 2; + real mask = thickness + clearance / 2; + printf(" Pin["); + printf(" %6d %6d", + mm2mils100(x), + mm2mils100(y)); + printf(" %6d %6d %6d %6d", + mm2mils100(thickness), + mm2mils100(clearance), + mm2mils100(mask), + mm2mils100(drill)); + printf (" \"%s\" \"%s\"", + name, number); + printf (" \"%s\"]\n", options); + + } + public void pin_mm_clear_mask_options(real x, real y, real drill, real copper, real clearance, real mask, string name, string number, string options) @@ -233,6 +255,15 @@ namespace Footprint { name, number); } + public void pin_mm_options(real x, real y, real drill, real copper, + string name, + string number, + string options) + { + pin_mm_clear_options(x, y, drill, copper, process_clearance, + name, number, options); + } + public void line (real x1, real y1, real x2, real y2) { printf (" ElementLine["); diff --git a/packages/pinheader/2mmpitch.5c b/packages/pinheader/2mmpitch.5c new file mode 100644 index 0000000..22afacf --- /dev/null +++ b/packages/pinheader/2mmpitch.5c @@ -0,0 +1,46 @@ +/* + * Copyright © 2013 Keith Packard + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +load "../footprint.5c"; +import Footprint; + +real pin_spacing = 2; +real pin_hole = 0.8; +real pin_copper = 0.25; + +pins = atoi(argv[1]); +if (pins < 2) { + File::fprintf (stderr, "must have at least two pins\n"); + exit(1); +} + +printf ("# author: Keith Packard\n"); +printf ("# email: keithp@keithp.com\n"); +printf ("# dist-license: GPL 2\n"); +printf ("# use-license: unlimited\n"); + +element_start(sprintf ("2mm%dpin", pins)); + +for (int pin = 0; pin < pins; pin++) + pin_mm_options(pin * pin_spacing, 0, pin_hole, pin_copper, + sprintf ("%d", pin + 1), + sprintf ("%d", pin + 1), + pin == 0 ? "square" : ""); +element_end(); + + + diff --git a/packages/pinheader/Makefile b/packages/pinheader/Makefile index 7da0a58..2edf618 100644 --- a/packages/pinheader/Makefile +++ b/packages/pinheader/Makefile @@ -1,11 +1,15 @@ FOOTPRINTS = \ - 50mil4pin.fp + 50mil4pin.fp \ + 2mm2pin.fp all: $(FOOTPRINTS) .gitignore 50mil4pin.fp: 50milpitch.py ./50milpitch.py 4 > 50mil4pin.fp +2mm2pin.fp: 2mmpitch.5c + nickle 2mmpitch.5c 2 > $@ + clean: rm -f $(FOOTPRINTS) -- 2.47.2