kicad-developers team mailing list archive
Mailing list archive
Re: IPC-D-356 exporter
Le 11/09/2013 22:23, Lorenzo Marcantonio a écrit :
> I noticed it was asked in the user list so I resuscitated it.
> I did it to use 356 instead of gencad for board testing but in the end
> the fabricator preferred gencad anyway...
> However, here it is:
> - Tested only with 3 boards (only dual side), so stuff may be wrong.
> Files are read correctly by both CAM350 and (an old version of)
> gerbtool. Real network names in the CAM are actually useful.
> - Fixed function, no dialog. Simply asks for the output file.
> I arbitrarily chose d356 as extension, another one found in the wild
> is .ipc
> - Always uses the auxiliary axis and always marks via as tented (I think
> these could be the only options)
> - Only does the old 356 format, *not* the 356A (however it seems the old
> format is somewhat more supported); shouldn't be too difficult to
> extend for the 356A format.
> - Outputs in decimils (i.e. CUST 0 format); gerbtool ignores the unit
> parameter so CUST 0 is the only one it works for it (it seems there is
> a race in suckitude between CAM vendors...)
> - It tries to be smart truncating network names, however there is no
> check for other kind of string overflows (the refdes, in particular).
> Coordinates however are clamped to the maximum representable (what
> about bigger boards/features? there seems to be a scaling facility but
> I guess nobody handle it correctly).
> Extended characters in refdes/pin name could be a problem too (since
> UTF would expand them and break the column alignment).
> Also, the specs are not anymore available, I did it using some PDF
> I found around; some things are not clear (so they may be wrong); in
> - The mask specification seems to imply that the value specified
> indicate the sides unavailable for probing; i.e. a tented via is 3 and
> a THT pad is 0.
> - Side number for access code: 0 is both sides, 1 is primary size (i.e.
> top) but the other layers? on a 'finished board' there is only the
> bottom side but the specs talk about inner layer too. So I export
> top as 1, bottom as num_copper_layers and the internal are between.
> I'm doubtful about the testability of inner layers before laminating,
> - I don't remember if I did the locale switching to C thing during the save;
> however it only writes integers so it shouldn't be an issue.
> How it works: really simple... it looks over all the vias and all the
> pins in the board and accumulates a vector with the info; then writes
> the file using the vector (a bunch of printf). It could have written it
> during the scan but later formats require a sorted vector, so I looked
> forward to them. The only fancy thing is keeping a map of shortened
> network names (one of the limitations of the format is only 14
> characters for the netname)
> Have fun
I committed your patch (with very minor changes).
But due to a mistake when sending the commit, I committed your patch
under my name.