kicad-developers team mailing list archive
Mailing list archive
Re: Pcbnew layers
If you are modifying layers, I would like to add something:
Something that is missin in kicad and is very anoying is a keepout
layer. I believe that al least 3 shouls exist: top, bottom and all.
I miss this very much. Sometimes I have a metal part touching the board
(like a cristal or an RJ45) and Freeroute makes a mess...
Another thing that I miss, is one or two "assempbly" layers. this is
very usefull. I used it very much in Tango. These layers are just
ignored by autoroute and DRC and so can be used for drawing other things...
As Dick already said, I have some ideas about the layers user interface. I will try to explain and would like to know the other's opinions.
Pcbnew has a total of 29 layers, 16 copper and 13 non-copper.
Today it is possible to configure the number of used copper layers, and the unused layer names don't appear in the current layer selection widget, but they do in the layer color and visibility dialog.
The non-copper layers names always appear in every related widget/dialog, irrespective if they are used or not.
What I'm sugesting is that we add a bit-mask member to the class BOARD (suggestion: int m_EnabledLayers) which will control what layers names will be shown in the dialogs/widgets.
Question: Is it possible to add this member to the class BOARD without breaking file format compatibility?
It would be nice if older versions of Pcbnew just ignore this extra field and new versions just assume all layers enabled if the field is not present.
Please note that this "Enabled Layers" is different than "Visible Layers". Today it appears that the concept of enabled/disabled is indeed visible/invisible. If layers in Pcbnew were objects that could be created/destroyed, then there would be no need for such distinction, but as the layers are always there then we need two different concepts.
In another post I will explain my ideas for layer setup and control dialogs, and also the concept of "layer sets" (in my opinion a great time-saver when designing/routing boards).