On Sun, Aug 7, 2011 at 7:47 PM, Rob Spanton <rspan...@zepler.net> wrote: > Hey all, > > I've recently been playing around with designing footprints by > describing a set of constraints that position features relative to each > other. This is rather than specifying the absolute co-ordinates of > every feature. > > I've written a small tool that allows this to be done. It pumps out a > gEDA PCB footprint when one wants :-) > > I've written more information about it in a blog post, where you'll also > find a link to the code: > https://xgoat.com/wp/2011/08/08/playing-with-footprints-and-constraints/ > > The tool is by no means complete... it's the result of just a few hours > work right now. Anyway, I hope either the tool or the concept of the > tool might be of use to at least some in the gEDA community. >
Reminds me of my turtle like c library for component creation (from long, long ago...) http://ftp.sunet.se/geda/mailinglist/geda-dev40/msg00036.html #include <stdio.h> #include <math.h> #include "library.h" #define DIMY 2.00 #define DIMG 3.50 #define DIMC 5.50 #define DIMZ 7.50 #define DIME 2.40 #define DIMD 5.00 #define DIMP 1.27 #define PAD_WIDTH 0.80 #define PAD_LEN DIMY #define DIMA DIMP * 3.0 #define CENTERY DIMD / 2.0 void make_element(void) { set_mm(); set_pad(PAD_WIDTH, PAD_LEN, 0.20, PAD_WIDTH + 0.10); pen_width(0.3); header("SOIC-8", "U1", "SOIC-8", 0, -1.50, RIGHT); pads(PAD_LEN / 2.0, CENTERY - DIMA / 2.0, DIMA, DOWN, 1, 4, 1); right(DIMC); pads_up(DIMA, 5, 8, 1); place((DIMZ - DIME) / 2.0, 0); pen_on(); down(DIMD); right(DIME); up(DIMD); left(DIME / 2.0 - .25); down(.5); left(.5); up(.5); left(DIME / 2.0 - .25); } _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user