kicad-developers team mailing list archive
Mailing list archive
Re: PCB Layer Stackup UI
Dick Hollenbeck <dick@...>
Mon, 07 Dec 2009 12:57:11 -0600
Thunderbird 18.104.22.168 (X11/20090817)
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.
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.
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)