www.delorie.com/pcb/layers-shapes.html   search  
Layers, Shapes, and Multiboards

Today we talked about layers, shapes, and multi-board projects on IRC - again. This is a summary of what we talked about.


PCB currently has drawing layers and a simple stackup. The stackup (layer groups) turns the drawing layers into copper layers, and that's about it. We need to expand the drawing layers to include things like silk, paste, etc. but have a stackup that can manage them efficiently. Thus:

So, the user can define a drawing layer with a purpose, or more complex boards may use the stackup as a meta-definition of the whole project. Also, multiple stackups should be allowed, for example, a "stackup" for assembly drawings or documentation might differ from one for manufacturing, or one for simulation.

The stackup might need to have, or imply, or even have as a hidden layer, some form of composite layer that merges other layers in the stackup. For example, a series of positive/negative/positive silk layers might be used to make text-in-box or complex ground planes, but internally, it would be easier to work with one canonical layer when you're editing other parts of the board.

We may want to rename drawing layers as sketches, which some other CAD programs do.


PCB currently defines the outline by a series of traces on a magic layer. It would be better to define the outline using a polygon, assuming "polygon" can be extended to include arcs as well as straight edges, and/or bezier curves.

Holes in the board could be defined by more polygons, or by arcs/lines. For example, slots for component tabs are usually milled slots, and are best represented by a round-ended line (like a trace), but a large square cutout is best described by a polygon, regardless of how it's cut out (milled, stamped, or laser). Note that while lines and arcs might be more "natural" for the user to work with (such as a milled slot), internally PCB may create a meta-layer where all such objects are converted from stroked (lines/arcs) to outline (polygon) format, to simplify code elsewhere in PCB.

Cutouts may be through the whole PCB, or only partially through, much like blind/buried vias are. Example: blind or buried components.

Also, shapes may used to define PCBs that are more complex than just "a square board", such as flex pcbs, daughterboards, submodules, etc. Such shapes cause the definition of "top" and "bottom" to change depending on the location.

Multi-board Projects

Currently, PCB edits one pcb at a time, and while schematics support heirarchy and multi-page projects, there's no way to turn that into a single editing session that spans multiple boards.

So we talked about how the layout could span more than just one board, but define multiple related boards - such as two boards with a ribbon cable between them, or a daughterboard setup. PCB should be able to edit more than one board at a time, especially when the boards are related such as with cables or connectors.

This implies a few things:

This would automatically fix the "multiple pins, internally connected" problem too ;-)

Anyway, consider a main/daughter board configuration, such as an Arduino. You might want to edit both at the same time, including placing the connectors and DRC checking across both boards. There might be an "active" board, with the remainder greyed out. A 3D representation with 3D models of the components might be required for this. You might want to later create a new daughterboard with the same main board, still multiple boards loaded, but the main one might be "read only".

PCB should also support multiple editing windows, either for multiple views or editing different boards in each view.

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2017   by DJ Delorie     Updated Jan 15 2017