So, I had the realisation last night that the biggest sunk cost with getting a PCB made in China is the shipping. The boards are about 50 cents each, and then its $25 for shipping (US dollars of course). I should therefore be packing as many boards into a single order as possible to reduce the shipping cost per board.
I have a couple of boards on the trot at the moment, my RFID attendance tracker project (called GangScan), and I’ve just decided to actually get my numitrons working and whipped up a quick break out board for those. You’ll see more about that one later I’m sure.
I decided to ask my friends in Canberra if they needed any boards made, and one friend presented with a set of Gerber CAM files and nothing else. That’s a pain because I need to know the dimensions of the board for the quoting system. Of course, I couldn’t find a tool to do extract that for me with a couple of minutes of Googling, so… I decided to just learn to read the file format.
Gerber is well specified, with a quite nice specification available online. So it wasn’t too hard to dig out the dimensions layer from the zipped gerber files and then do this:
| Contents of file | Meaning | Dimensional impact |
| G04 DipTrace 3.3.1.2* | Comment | |
| G04 BoardOutline.gbr* | Comment | |
| %MOIN*% | File is in inch units | |
| G04 #@! TF.FileFunction,Profile* | Comment | |
| G04 #@! TF.Part,Single* | Comment | |
| %ADD11C,0.005512*% | Defines an apperture. D11 is a circle with diameter 0.005512 inches | |
| %FSLAX26Y26*% | Resolution is 2.6, i.e. there are 2 integer places and 6 decimal places | |
| G04* | Comment | |
| G70* | Historic way of setting units to inches | |
| G90* | Historic way of setting coordinates to absolute notation | |
| G75* | Sets quadrant mode graphics state parameter to ‘multi quadrant’ | |
| G01* | Sets interpolation mode graphics state parameter to ‘linear interpolation’ | |
| G04 BoardOutline* | Comment | |
| %LPD*% | Sets the object polarity to dark | |
| X394016Y394016D2* | Set current point to 0.394016, 0.394016 (in inches) | Top left is 0.394016, 0.394016 inches |
| D11* | Draw the previously defined tiny circle | |
| Y1194016D1* | Draw a vertical line to 1.194016 inches | Board is 1.194016 inches tall |
| X1931366Y1194358D1* | Draw a line to 1.931366, 1.194358 inches |
Board is 1.931366 inches wide (and not totally square)
|
| Y394358D1* | Draw a vertical line to 0.394358 inches | |
| X394016Y394016D1* | Draw a line to 0.394016, 0.394016 inches | |
| M02* | End of file |
So this board is effectively 3cm by 5cm.
A nice little nerd snipe to get the morning going.