Fix clearance for s-pwson-n8 footprint, make TI DRV8837 use it
[hw/altusmetrum] / packages / footprint.5c
index e3bcdd485183a9e12db4855a5fe5c955704cbbbf..e6af81a9304f2332de4b7964cd762ffe08acff51 100644 (file)
@@ -115,7 +115,7 @@ namespace Footprint {
                        y2 = center_y + (height - width) / 2;
                }
 
-               real mask = thickness + process_clearance / 2;
+               real mask = thickness + clearance / 2;
 
                printf ("    Pad[");
                printf (" %6d %6d %6d %6d",
@@ -164,6 +164,50 @@ namespace Footprint {
                             name,
                             num);
        }
+       public void pad_mm_options(real center_x,
+                                  real center_y,
+                                  real width,
+                                  real height,
+                                  string name,
+                                  string num,
+                                  string options)
+       {
+               pad_mm_clear_options(center_x,
+                                    center_y,
+                                    width,
+                                    height,
+                                    process_clearance,
+                                    name,
+                                    num,
+                                    options);
+       }
+
+       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,
@@ -282,4 +326,14 @@ namespace Footprint {
                line(x+w,y+h,x,y+h);
                line(x,y+h,x,y);
        }
+
+       public void arc (real center_x, real center_y,
+                        real radius_x, real radius_y,
+                        real start_angle, real delta_angle)
+       {
+               printf ("    ElementArc[ %6d %6d %6d %6d %3d %3d %d]\n",
+                       mm2mils100(center_x), mm2mils100(center_y),
+                       mm2mils100(radius_x), mm2mils100(radius_y),
+                       start_angle, delta_angle, line_thickness);
+       }
 }