Since it got out these days (well, yesterday) I have a proposal for
pcbnew batch plotting.
The idea is more or less like that of the eagle postprocessor, i.e. a
list of layers to plot with flags for *each* layer. Also each layer
can be plotted multiple time with different options to a different
file (obviously...)
For example, our fabricator for a 4 layer board requires a PDF layout
and lots of gerbers. So I need to do:
Postscript plot of: - Drawings (with borders and title block) -
Comment, silk top, silk bottom, mask top, mask bottom (with default
options) - These ps are externally combined to make the layout pdf
DXF of: - Silk top, silk bottom, show hidden, no values in files
-AssyTop and AssyBottom (references simply don't fit in the silks)
Gerbers of: - Copper layers, comments, solder masks and solder pastes
(depending on the assembly), edges excluded - PCB edges - Silk top,
silk bottom with mask removed for actual silk masks if desired - The
same as the dxf before but in gerber format - Silk top, silk bottom
without mask removal and without references (no idea of what the need
this for...)
Other files: - Positions (pick and place), drill plated, drill
unplated, drill report (for tool cross checking) and gencam or 356
for board testing
All of these must have the base name of the board *with revision*,
then these are zipped and sent for panelization.
As you can see there is a lot of work to do for each interaction with
the fabricator (like: could you move that fiducial to avoid extra
tracking? --- all to be replotted!)
My idea is to have some kind of control file (and maybe a gui to fill
it) to drive at least the plotting infrastructure (for the moment...
I can survive having to reexport drills, positions and test
records).
In short each 'record' (or line, or list entry) would contain *all*
the pcbnew plot dialog options with a single layer and a single
output file name (or maybe file name suffix). Having that driving the
plotting circus (as someone called it) would be mostly trivial: read
one record, set the options, plot one layer, rinse and repeat until
EOF. Or end of list or whatever. Adding support for drills and other
would be *slightly* more difficult (since these are in other classes
with wildly different options).
The question is: how and where should we represent this 'batch plot
control file'? inside the .brd? as a separate file? do we already
have some kind of parser useful for handling that? like the sexp
based one, can be used for this?