← Back to team overview

kicad-developers team mailing list archive

Re: PCB Layer Stackup UI


Wayne Stambaugh a écrit :

Dick Hollenbeck wrote:
>> ** the first copper layer is number 0 but has a special name 'front', in
>> addition to any name the user gives it.

Is we are talking about layer numbering in files, we can use keywords instead of numbers
like in Gencad format (see export_gencad.cpp)
layer identification use TOP, BOTTOM, INNER1, INNER2, SOLDERPASTE_TOP ...
and no numbers.
So use 0 for the first copper or the last is just a coding problem, and does not appears in files.

> Clarification: each copper layer has both a user given name, and a
> layer number, just as now. The reserved token 'front' and 'back' are
> simply "special layer numbers", not actually in the same name space as
> layer names.
> After declaring the layers up front in the file, throughout the board we
> will use layer numbers rather than layer names. However, rather than
> becoming too dependent on the layer count, which changes the numeric
> value of the back of the board, we will use 'back' in certain situations
> in place of the layer number for back. Likewise for front, it is a
> layer number, not a layer name per se.
> We saw an example of this a few postings ago:
> (layers front back) # a LAYERSET object which includes only the front
> and back copper layers.
> (layers front 1 back ) # I suppose this has to be legal also


I'm assuming from the previous discussion about single layer boards that:

( layers front ) # Front layer only.
( layers back ) # Back layer only.

are also legal. But what about:

( layers front 1 2 ) # No back layer.
( layers 1 2 back ) # No front layer.

I don't know if this makes sense or even if any pcb manufacturers would
make boards with these types of layer stacks. Just curious.


Or consider a single layer board as a 2 layers board (do not know a single layer board)
And disable one layer.
About single layers boards we must keep in mind this:
1 - a single layer board does not exists.
(I forgot this obvious fact in the 3D frame code showing the board, and some time ago "one layers" boards crashes pcbnew when opening the 3D frame. Now the one layer boards are converted to 2 layers when shown in 3D). 2 - Guys who want a single layer board in fact want a double sided with a layer that have no route, but no necessary no copper.
I explain:
Hobbyists (and me too when I want to test a small design) use single layers boards. They use a double sided board (components mounted on front and back for SMD) and use only the back side for route.
(and no copper on the front side).
Microwave designs use a double sided board, with all components mounted on front side, and "routes " also on the front layer. (the routes are tracks and mainly shapes that are passive components like inductiors, capacitors and others microwave passive items like filters) and the back is always a copper plane.
At least for simple designs.

So, if the enable/disable layers feature is supported, this could be the way to handle these 2 types of one layer boards.

> Techical layers:
> In the case of technical layers, I would be inclined to not expose nor
> support any "user defined technical layer names". This is as now. But
> in the board file, I would chose to use a fixed special token to these
> special layers similar to 'front' and 'back'.
> examples: soldp_fr, soldp_bk, silks_fr, silks_bk.
> These special tokens are treated like layer numbers.

1000% (and more) Ok.

> This way the board never becomes dependent on layer numbers other than
> copper layer numbers.
> Scream now if this hurts, nod if it seems reasonable.
> Dick

Jean-Pierre CHARRAS

Maître de conférences
Directeur d'études 2ieme année.
Génie Electrique et Informatique Industrielle 2
Institut Universitaire de Technologie 1 de Grenoble
BP 67, 38402 St Martin d'Heres Cedex

Recherche :
Rue de la Houille Blanche
38400 Saint Martin d'Heres

Follow ups