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 22.214.171.124*||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|
|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’|
|%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.