/* * Copyright © 2021 Bdale Garbee * GPL v3 */ /* intended for use with the onsemi CAT24C32 eeprom and similar chips */ load "footprint.5c" import Footprint; real pad_width = 0.68; real pad_height = 0.30; real pad_spacing = 0.50; /* center to center, along the pads */ real pad_center = 3.40-pad_width; /* center to center, across the part */ real center_width = 1.45; real center_height = 1.56; real package_width = 3; real package_height = 2; real pad_x_off = pad_center / 2; real num_pad = 4; /* per side */ element_start("udfn8"); real pad_off(int n) { return pad_spacing * (n - (num_pad - 1) / 2); } real corner(int dx, int dy) { real x = dx * package_width / 2; real y = dy * package_height / 2; real len = 0.4; line(x, y, x - dx * len, y); line(x, y, x, y - dy * len); } corner(-1, -1); corner(1, -1); corner(-1, 1); corner(1, 1); 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 (int pad = 0; pad < num_pad; pad++) { /* left side (1-4) */ pad_mm(-pad_x_off, pad_off(pad), pad_width, pad_height, sprintf("%d", pad + 1), sprintf("%d", pad + 1)); /* right side (5-8) */ pad_mm(pad_x_off, -pad_off(pad), pad_width, pad_height, sprintf("%d", pad + 5), sprintf("%d", pad + 5)); } /* center pad */ pad_mm(0, 0, center_width, center_height, "9", "9"); element_end();