From d043531bdded029ea8f414bb77ae7bf2e0f9619a Mon Sep 17 00:00:00 2001 From: Johann Klammer Date: Sun, 3 Jun 2018 19:05:05 +0200 Subject: [PATCH] Fix the rectangular footprints
--- lib/geda.inc | 19 +++++++++++++++++++ lib/misc.inc | 30 ++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+)
diff --git a/lib/geda.inc b/lib/geda.inc index ecee911..4f93dfa 100644
--- a/lib/geda.inc
+++ b/lib/geda.inc @@ -612,6 +612,25 @@ define(`PKG_RCY1100P', `PKG_RADIAL_CAN(`$1', `$2', `$3', 2200, 1)'); define(`PKG_RCY1200P', `PKG_RADIAL_CAN(`$1', `$2', `$3', 2400, 1)'); #
+## Bottom lead rectangular non-polar component (typically capacitor)
+# pin spacing 100 mil and up
+# BRE100 .. BRE1200
+#
+define(`PKG_BRE100', `PKG_RECTANGULAR2N(`$1', `$2', `$3', 200, 50)');
+define(`PKG_BRE200', `PKG_RECTANGULAR2N(`$1', `$2', `$3', 400, 100)');
+define(`PKG_BRE300', `PKG_RECTANGULAR2N(`$1', `$2', `$3', 600, 150)');
+define(`PKG_BRE400', `PKG_RECTANGULAR2( `$1', `$2', `$3', 600, 200)');
+define(`PKG_BRE500', `PKG_RECTANGULAR2( `$1', `$2', `$3', 750, 250)');
+define(`PKG_BRE600', `PKG_RECTANGULAR2( `$1', `$2', `$3', 1200, 300)');
+define(`PKG_BRE700', `PKG_RECTANGULAR2( `$1', `$2', `$3', 1050, 350)');
+define(`PKG_BRE800', `PKG_RECTANGULAR2( `$1', `$2', `$3', 1200, 400)');
+define(`PKG_BRE900', `PKG_RECTANGULAR2( `$1', `$2', `$3', 1350, 450)');
+define(`PKG_BRE1000', `PKG_RECTANGULAR2( `$1', `$2', `$3', 1500, 500)');
+define(`PKG_BRE1100', `PKG_RECTANGULAR2( `$1', `$2', `$3', 1650, 550)');
+define(`PKG_BRE1200', `PKG_RECTANGULAR2( `$1', `$2', `$3', 1800, 600)');
+
+
+# ## Crystals # # diff --git a/lib/misc.inc b/lib/misc.inc index 0b0518f..b25de1b 100755
--- a/lib/misc.inc
+++ b/lib/misc.inc @@ -633,6 +633,36 @@ Element(0x00 "$1" "`$2'" "$3" eval(`$4') 0 0 100 0x00) Mark (X1 Y) )')
+# a rectangular package
+#
+# $1: canonical name
+# $2: name on PCB
+# $3: value
+# $4: package width in MIL
+# $5: half pin spacing in MIL
+define(`PKG_RECTANGULAR2N',
+ `define(`X1', `eval(-`$5')')
+ define(`X2', ``$5'')
+ define(`X3', `eval(-`$4' /2)')
+ define(`X4', `eval(`$4' /2)')
+ define(`Y', `0')
+ define(`Y1', `eval(-`$4' /4)')
+ define(`Y2', `eval(+`$4' /4)')
+ define(`PINSIZE', `ifelse(eval($4 >= 600), 1, 80, 55)')
+ define(`DRILLSIZE', `ifelse(eval($4 >= 600), 1, 50, 30)')
+Element(0x00 "$1" "`$2'" "$3" eval(`$4') 0 0 100 0x00)
+(
+ PIN(X1, Y, 60, DRILLSIZE, 1)
+ PIN(X2, Y, 60, DRILLSIZE, 2)
+ ElementLine(X3 Y1 X4 Y1 10)
+ ElementLine(X4 Y1 X4 Y2 10)
+ ElementLine(X4 Y2 X3 Y2 10)
+ ElementLine(X3 Y2 X3 Y1 10)
+ Mark (X1 0)
+)')
+
+define(`PKG_RECTANGULAR2',`PKG_RECTANGULAR2N(`$1', `$2', `$3', `$4', `$5')');
- # a core surface mount package # 12/99 Larry Doolittle #
--
2.1.4