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.