Complex PCB footprints the easy wayCreating PCB "footprints" is a cumbersome (but necessary) part of PCB layouting. The open source PCB layout program pcb has some build-in features supporting creating complex footprints. See the homepage of DJ Delorie for more information. I'm only using the technique presented there without explaining them :) Another useful document is the official documentation of PCB about library creating in the "new style" format, that is one single file with extension .fp for each footprint.
For a power supply project I needed a Fischer FK201-SA-CB heatsink, so I downloaded the datasheet from the manufactor's homepage and loaded the PDF into GIMP using greyscale and 1200dpi. The outline of the heatsink then was cropped, so there is no margin around it.
Because PCB uses red and black for the component and the silkscreen layer, I did a colorize operation, so the image is greenish now:
Because the PPM format cannot store multi-layer images, we have to flatten the image. The image now contains only one single layer, so we can proceed and save it in the PPM format. DJ's guide tells you to use the "Raw" data formatting!
That's all about the background image ...
Now, let's actually make use of the background image, so I fired up pcb on the command line, using some additional argument:
pcb --bg-image fk201-sa-cb.ppmThe background image is scaled to fit the board dimensions, so we change these to the exterior dimensions of the heat sink. In the File, Preferences dialog, I set the board size to 1770 mil. The (visible) grid was set to 5 mil. The outline was drawn on the silk screen layer, two vias (drill dia 150mil, copper width 240mil each) were placed on the component layer.
The upper mounting hole is at (470 mil, 470 mil), TO220 has 670 mil vertical distance between the mounting hole and the pins, so pin 2 has to be at (470+670/sqrt(2), 470+670/sqrt(2)) = (945 mil, 945 mil). The same 45 degree rotation was applied to all other dimensions of TO220.fp.