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();