← Back to team overview

kicad-developers team mailing list archive

Re: PCB Layer Stackup UI


Dick Hollenbeck a écrit :

jean-pierre. charras@gipsa- lab.inpg. fr <mailto:jean-pierre.charras%40gipsa-lab.inpg.fr> wrote:
> Dick Hollenbeck a écrit :
>> I meant to say specctra syntax, not specctra format. There is no
>> specctra format that can fully describe a board. Briefly, there is the
>> DSN format and the SES format. The DSN describes the copper layers
>> only, no technical layers. No text. The SES format describes a subset
>> of the copper layers and has less information in it.
> I did not understood that.
> So, I do not see any problem to use the Specctra syntax.

One or more sample board files should be created then before any coding
is done IMO, using a text editor and a brain.

Ok. I have already a text editor.

I think this process is easiest to create the sample(s):

1) load a DSN file from the specctra_export into a text editor or have
it as a hardcopy printout nearby for reference.

2) load an existing board file, one with multiple layers, components,
tracks, vias, drawings, and multiple zones.

3) copy the board file to a new window, and convert it to the new
syntax, but incorporate some new concepts. This is an object
conversion, not so much a line by line conversion.

New concepts in the file:

** Special layer names. Any technical layers, plus front and back
copper, should get fixed names rather than layer numbers

** Layer sets as discussed.

** unit_res see this in the specctra spec, it allows different regions
in the file to to have different units. each unit_res has a limited
scope of applicability.

** use concise element names, pay attention to frequency of use. no
element should have a lot of unnamed parameters, but instead use nested
elements to make the file self documenting.

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

We also 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 or negative values for non copper layers or disabled layers ... is just a coding design
and does not appears in files.

Questions to be answered:

** which coordinates should coordinates be relative to the origin of
their containing object, and which should be relative to the board?
Perhaps all should be relative to their containing object.

All should be relative to their containing object.

Generally speaking, data in files must give properties and never the internal coding used in Kicad
(like internal units, internal angles units, Y axis orientation ... )
Also in a perfect world (well, or file format) the usual Y axis orientation must be used, instead of the reverse Y screen orientation (like now).

** Do you introduce a (transform ...) element, so objects can be
presented in a uniform un-transformed way on the front layer? Here the
specctra spec will be helpful.

Gencad format also use transform elements ( keywords like ROTATE <angle>, FLIP, MIRROR) and give always the un-transformed description of footprints.
Seems a good idea.

Jean-Pierre, do you want to do a board like this? Do you want me to do
one? Or should we both do one and combine the concepts later?


I'll start this work asap.
But i am thinking 2 brains are better than one, and combine the concepts later is a good idea.
So feel free to also create such a board.

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