add support for arbitrary pads, use it to add diagonals to cubesatshield
authorBdale Garbee <bdale@gag.com>
Sun, 6 Oct 2013 22:52:16 +0000 (16:52 -0600)
committerBdale Garbee <bdale@gag.com>
Sun, 6 Oct 2013 22:52:16 +0000 (16:52 -0600)
packages/cubesatshield.5c
packages/footprint.5c

index d352524cc1e44508a9642981bc96f6b18ee45c32..6326793a8ac4e9afdc92f0b22f3a7799e0acc2c6 100644 (file)
@@ -62,6 +62,11 @@ pad_mm(-edge_width / 2, (-shield_width + corner_inset) / 2,
        pad_width, corner_inset + pad_width,
        "1", "1");
 
+pad_mm_arbitrary(-shield_width/2 + corner_inset, -edge_width / 2,
+                -edge_width / 2, -shield_width/2 + corner_inset,
+                pad_width, 
+               "1", "1", "");
+
 /* NE corner */
 pad_mm((shield_width - corner_inset) / 2, -edge_width /2,
        corner_inset + pad_width, pad_width,
@@ -71,6 +76,11 @@ pad_mm(edge_width / 2, (-shield_width + corner_inset) / 2,
        pad_width, corner_inset + pad_width,
        "1", "1");
 
+pad_mm_arbitrary(shield_width/2 - corner_inset, -edge_width / 2,
+                edge_width / 2, -shield_width/2 + corner_inset,
+                pad_width, 
+               "1", "1", "");
+
 /* SW corner */
 pad_mm((-shield_width + corner_inset) / 2, edge_width /2,
        corner_inset + pad_width, pad_width,
@@ -80,6 +90,11 @@ pad_mm(-edge_width / 2, (shield_width - corner_inset) / 2,
        pad_width, corner_inset + pad_width,
        "1", "1");
 
+pad_mm_arbitrary(-shield_width/2 + corner_inset, edge_width / 2,
+                -edge_width / 2, shield_width/2 - corner_inset,
+                pad_width, 
+               "1", "1", "");
+
 /* SE corner */
 pad_mm((shield_width - corner_inset) / 2, edge_width /2,
        corner_inset + pad_width, pad_width,
@@ -89,6 +104,10 @@ pad_mm(edge_width / 2, (shield_width - corner_inset) / 2,
        pad_width, corner_inset + pad_width,
        "1", "1");
 
+pad_mm_arbitrary(shield_width/2 - corner_inset, edge_width / 2,
+                edge_width / 2, shield_width/2 - corner_inset,
+                pad_width, 
+               "1", "1", "");
 
 element_end();
 
index 0a080f3fa78bc98f9b0e7daaa9b0c8c42ef5938c..7e454891f38ecdf4af122f47ac4bd5a950d7762d 100644 (file)
@@ -165,6 +165,33 @@ namespace Footprint {
                             num);
        }
 
+public void pad_mm_arbitrary(   real x1,
+                                real y1,
+                                real x2,
+                                real y2,
+                                real thickness,
+                                string name,
+                                string num,
+                                string options)
+{
+        real clearance = process_clearance;
+
+        real mask = thickness + clearance / 2;
+
+        printf ("    Pad[");
+                printf (" %6d %6d %6d %6d",
+                        mm2mils100(x1),
+                        mm2mils100(y1),
+                        mm2mils100(x2),
+                        mm2mils100(y2));
+                printf (" %6d %6d %6d",
+                        mm2mils100(thickness),
+                        mm2mils100(clearance),
+                        mm2mils100(mask));
+                printf (" \"%s\" \"%s\" \"%s\"]\n",
+                        name, num, options);
+}
+
        public void pin_mm_clear(real x, real y, real drill, real copper, real clearance,
                        string name,
                        string number)