← Back to team overview

kicad-developers team mailing list archive

Re: PCB Layer Stackup UI

 

Dick Hollenbeck wrote:
One idea to put on the table is an actual layer stack up sequence, which would be a modifiable data structure which defines the order of layers within a board. The current notion of layer mask would stay, it's just that a person could not assume that a layer with a mask of (1<<0) is next to a layer with a mask of (1<<1) unless the layer stackup sequence says it is.




Jean-Pierre,

I rarely settle on the first idea, so here is another one to put on the table. We make the BACK layer mask dynamic, not fixed. Its value would depend on the copper layer count. If the copper layer count is 2, then the BACK mask would be (1<<1), and the FRONT mask would be (1<<0). For a four layer board the back mask would be (1<<3), etc.

Mask
Bit# Layer#
0 0 Front
:
:
N N Back


Advantage: no dynamic stackup sequence, but does have the dynamic single BACK mask. The order of the bits in the mask set would be reversed. I do not think this one is hard to implement, the drawing code would simply walk the mask in reverse from what it is now, starting at position GetCopperLayerCount()-1. We could fix existing board files at time of first load, once and for ever after.

Eventually we can go to a 64 bit mask and expand the number of copper layers quite easily, using a datatype of uint64_t.

For a single layer board, the notion of back or front is moot, because the user can name the layer anything he wants.

Oops, I guess this is not a true statement since text is reversed, but maybe a 'side' flag in this case is needed, or we make this kind of boards simply have two sides, with one side being empty. All boards actually have two sides anyways if you think about it.

For a single layer board the layer mask would always be (1<<0)


Dick









Follow ups

References