Fix process-specific values in nickle-generated footprints
[hw/altusmetrum] / packages / qfn16-3x3.5c
index fedd52c24f43f119d3a34a9cdeeacc9e213952ef..4d860a0175ae1c503b3252496afe1adaaa1d1806 100644 (file)
@@ -61,86 +61,52 @@ real dot_off = .3;
 line(-package_width/2 + dot_off, -package_height/2 + dot_off,
      -package_width/2 + dot_off, -package_height/2 + dot_off);
 
-for (pad = 0; pad < num_pad; pad++) {
+for (int pad = 0; pad < num_pad; pad++) {
        /* left side (1-4) */
 
-       pad_mm_clear(-pad_x_off - pad_width / 2,
-                    pad_off(pad),
-                    pad_width,
-                    pad_height,
-                    pad_clearance,
-                    sprintf("%d", pad + 1),
-                    sprintf("%d", pad + 1));
+       pad_mm(-pad_x_off - pad_width / 2,
+              pad_off(pad),
+              pad_width,
+              pad_height,
+              sprintf("%d", pad + 1),
+              sprintf("%d", pad + 1));
 
        /* bottom (5-8) */
 
-       pad_mm_clear(pad_off(pad),
-                    pad_y_off + pad_width / 2,
-                    pad_height,
-                    pad_width,
-                    pad_clearance,
-                    sprintf("%d", pad + 5),
-                    sprintf("%d", pad + 5));
+       pad_mm(pad_off(pad),
+              pad_y_off + pad_width / 2,
+              pad_height,
+              pad_width,
+              sprintf("%d", pad + 5),
+              sprintf("%d", pad + 5));
 
        /* right side (9-12) */
 
-       pad_mm_clear(pad_x_off + pad_width / 2,
-                    -pad_off(pad),
-                    pad_width,
-                    pad_height,
-                    pad_clearance,
-                    sprintf("%d", pad + 9),
-                    sprintf("%d", pad + 9));
+       pad_mm(pad_x_off + pad_width / 2,
+              -pad_off(pad),
+              pad_width,
+              pad_height,
+              sprintf("%d", pad + 9),
+              sprintf("%d", pad + 9));
 
        /* top (13-16) */
 
-       pad_mm_clear(-pad_off(pad),
-                    -pad_y_off - pad_width / 2,
-                    pad_height,
-                    pad_width,
-                    pad_clearance,
-                    sprintf("%d", pad + 13),
-                    sprintf("%d", pad + 13));
-
+       pad_mm(-pad_off(pad),
+              -pad_y_off - pad_width / 2,
+              pad_height,
+              pad_width,
+              sprintf("%d", pad + 13),
+              sprintf("%d", pad + 13));
 }
 
-int pad_blocks = 3;
-
-real block_width = center_width / pad_blocks;
-real block_height = center_height / pad_blocks;
-
-real block_x(int x) = (x - (pad_blocks - 1)/2) * block_width;
-real block_y(int y) = (y - (pad_blocks - 1)/2) * block_height;
-
-bool via_block(int x, int y) {
-       return (x & 1) == 0 && (y & 1) == 0;
-}
-
-real via_hole = 13/1000 * 25.4;                /* 13 mil drill */
-real via_copper = 7/1000 * 25.4;       /* 5.6 mil anulus */
-
-for (int pad_y = 0; pad_y < pad_blocks; pad_y++) {
-       for (int pad_x = 0; pad_x < pad_blocks; pad_x++)
-               if (via_block(pad_x, pad_y)) {
-                       pin_mm_clear_mask(block_x(pad_x), block_y(pad_y),
-                                         via_hole, via_hole + 2 * via_copper, pad_clearance, 0,
-                                         "GND", "GND");
-                       pad_mm_clear_mask_options(block_x(pad_x), block_y(pad_y),
-                                                 block_width, block_height,
-                                                 pad_clearance, 0,
-                                                 "GND", "GND","square,nopaste");
-               } else {
-                       /* full square of metal */
-                       pad_mm_clear_options(block_x(pad_x), block_y(pad_y),
-                                            block_width, block_height,
-                                            0,
-                                            "GND", "GND","square,nopaste");
-                       /* 1/4 full of solder paste */
-                       pad_mm_clear_options(block_x(pad_x), block_y(pad_y),
-                                            block_width/2, block_height/2,
-                                            0,
-                                            "GND", "GND","square");
-               }
-}
+center_pad((center_t) {
+               .x = 0,
+               .y = 0,
+               .width = center_width,
+               .height = center_height,
+               .via_cols = 2,
+               .via_rows = 2,
+               .name = "GND"
+               });
 
 element_end();