← Back to team overview

kicad-developers team mailing list archive

Proposal for batch plotting


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?

Waiting for comments

Lorenzo Marcantonio
Logos Srl

Follow ups