← Back to team overview

kicad-developers team mailing list archive

Re: CERN work package 4 (Extend number of layers)

 

On 04.06.2014 08:51, jp charras wrote:
Le 03/06/2014 19:27, Vesa Solonen a écrit :
While working on the footprint library convention, the lack of extended
mechanical and production aid layers got in the way. Why, how and
revealing pictures in [1].

We would like to get extended layers part sorted in our draft and the
final document. To make it available for production it would need some
kind of an impelementation. The implementation is planned as one of the
CERN work packages [2] and it seems an usable implementation is already
in Lorenzo's branch [3].

The question is how to shape [3] so that it satisfies CERN work package
contents (or a part of it) and gets included in the mainline.

Best regards,
-Vesa


[1] https://lists.launchpad.net/kicad-lib-committers/msg00155.html
[2] http://www.ohwr.org/projects/cern-kicad/wiki/WorkPackages
[3] https://code.launchpad.net/~l-marcantonio/kicad/isofont-stuff


What kind of not yet existing layers is actually needed ?

Hi Jean-Pierre,

I've been hesitating to answer, fearing that it will end up - as usual - with a long thread of people arguing with each other and no constructive conclusion. Anyway, let's give a try...

These are the mechanical/assembly layers that CERN Drawing Office uses for standard PCB designs:
- board outline
- mounting/mechanical assembly holes
- mechanical component assembly outlines
- one or more dedicated layers for mechanical dimensions
- PCB corners for manual cutout
- peel-off masks for wave soldering of THT components (2x)
- panelization drawing
- component courtyards (x2)
- component body drawing (2x, for hand/semi-automatic assembly)

... 12 in total.

They are professionals and we fully trust them regarding the quality of PCB documentation. A sample PCB made by them can be found in [1].


If you are talking about assembly layers, they exists, and they are
called (for historical reasons) adhesive layers.
They are paired layers like silkscreen layers.

I thought adhesive layers are for SMD glue dispenser machine. The person doing manual assembly may need another technical layer (and silkscreen is often useless for densely packed components).



If you are talking about courtyard, it can be seen like a DRC
constraint, not necessary a board layer.

How is the DRC checker going to know the area taken by a component? Use its bounding box? We need something more sophisticated (for mechanical components, optical transceivers, heatsinks, power supply modules, etc.). These additional constraints would have to be saved in the PCB files too. IMHO drawing the courtyard using standard graphics primitives on a dedicated layer is the least disruptive way of achieving above.


Which is very different from a copper layer or a technical layer.
It could be a new feature, which does not imply a new layer, at least in
board and footprint files.

What would be the issue to add them to the sexpr file formats, that are meant to be extensible?


I want to know *exactly* what do you want to put on silkscreen layer, on
assembly layer, and what do you expect from a courtyard layer.


The mails about the footprint library convention are *not* clear about that.
IMHO it's up to the designer and the tools should not enforce anything. We need to develop a convention to be used in the official Kicad libraries, though.


Currently, which very few changes in code, 3 layers can be added.
(There are 29 layers, and the current limit is 32)

Adding much more layers is not only a matter of changes in code relative
to layers id.
This is also a lot of work to redesign the layer manager, and print and
plot dialogs.
For instance adding layer groups ( with a layer group editor ...),
because you cannot manage 64 layers and more like 30 layers.
You need a tool to group and filter these layers, and combine them at
print/plot time.


How about splitting the task into several steps to avoid disrupting pcbnew too much:
- write a type safe flag container (based on std::bitset, I guess),
- refactor the current layer set to use it,
- add a possibility to rename any layer (without changing its purpose),
- add new layers,
- add show/hide options and layer grouping in the layer manager.

Regards,
Tom

[1]. https://edms.cern.ch/nav/EDA-02267-V6-0


Follow ups

References