← Back to team overview

kicad-developers team mailing list archive

Re: PLUGIN::Footprint*() from python

 

Good afternoon,

I've been glancing at this thread on&off for a while and have and have an
observation and suggestion.

A board has a distinct set of lamination layers:
    Front
    Inner 1
       :
    Inner n
    Back

Each lamination may have one or more physical materials or operations:
    Substrate, Copper, Adhesive, Solder Paste, Solder Mask, Silk Screen,
Drill, Place Parts, Probe, etc...

Each lamination may have optional engineering and documentation data:
    Drawings, Comments, ECOs, Test Parameters, Thermal Profiles, and
whatnot.

Following the style proposed by Wayne, I suggest the following naming
scheme:

{Layer}.{Type}

Where:
  Layer is a symbolic name (such as Front, Inner1, Inner2, Inner{n}, Back),
a symbolic abbreviation (F, I1, I2, I{n}, B), or corresponding numeric
layer number (0 - {n}).
  Type is a concise symbolic identifier for a material or documentation
type: Sub, Cu, Adh, Paste, Mask, Silk, Drill, Part, Probe, ..., Draw, Cmnt,
Eco, etc.

An optional form of {Layer}.{Type}{n} would allow for multiple ECO, Silk
Screen, or other types on a given layer where it may be appropriate, while
still following the style.

Group selections take the form:
    {Layer}.*              - All materials and documentation on a given
layer ( Front.* for the entire front layer in the stack)
    {Layer}+{Layer}.*  - All materials and documentation on given layers
(F+B.* for everything on the front and back)
    {Layer}-{Layer}.*   - All materials and documentation on range of
layers (0-6.* for the front and top 6 inner layers)


    *.{Type}               - Given type on all layers (*.Cu for all copper
layers)
    *.{Type}{n}           - Given specific type with index on all layers
 (*.Part3 for parts in 3rd stuffing procedure)
    *.{Type}{n}+{n}     - Given specific types with given indices on all
layers   (*.Eco1+4 for ECOs 1&4)
    *.{Type}{n}-{n}      - Given range of specific types on all layers (
*.Silk1-3 for White, Red, and Yellow silk screens)

    and all reasonable linear combinations of the above, subject to
existing internal restrictions, such as
    {Layer}.{Type}{n}-{n}   - Given range of types on specific layer (
B.Eco1-5 for the first 5 ECOs on the back layer)

...just my thoughts, take them with a grain of salt.

   ~~~Chris Giorgi~~~


On Tue, Nov 13, 2012 at 9:36 AM, Wayne Stambaugh <stambaughw@xxxxxxxxxxx>wrote:

> On 11/13/2012 10:16 AM, Dick Hollenbeck wrote:
>
>> The open issue of changing the non-copper names is best settled if we had
>>> a complete
>>>
>> list of proposed names to change to, and to make the determination if
>> this is worth the
>> disruption.
>>
>>
>> Aw oh.   I slept on it and woke up thinking about this as my first
>> conscious waking
>> thoughts this morning.  (Don't say it, I know I need to get a life, I've
>> been working on
>> that, for a loooong time.)
>>
>>
>> As I attempt to show, I think there are some improvements in conciseness
>> possible
>> (conciseness = ratio of clarity to size), even in the copper layer naming.
>>
>>
>> I like the wildcard notion and wanted to be able to use it in a few other
>> places.  I also
>> noticed that "Inner3" does not explicitly say it is a copper layer.
>>
>>
>> Of course the value of the combos is the reduction in Pcbnew data file
>> size, and increased
>> speed of parsing.  (Would put the [combo] mask into the hashtable instead
>> of the layer index.)
>>
>>
>> Attached is my proposal and recommendation.
>>
>> I would say that the combos can be used even in *.kicad_pcb files where
>> they can.  Custom
>> layer names pertain to cu layers, and to tracks more than pads.  Here are
>> the heuristics:
>>
>>
>> a) if a combo can be recognized in a layerMask when Format()ing, then it
>> should be used,
>> in either BOARDs or MODULEs.
>>
>> b) otherwise, if saving a BOARD, then use the translated layer names.
>>
>> c) otherwise, if saving a MODULE, then use the untranslated english layer
>> names.
>>
>
> Your proposal makes sense to me.  I like the use of the wildcard search
> pattern to indicate multiple layers.  You might consider renaming *.SoldP
> to *.Paste for the solder paste layer if your going to use *.Mask for the
> solder mask layer.  It's a bit more consistent and solder is also implied
> in the case of *.Paste.
>
> Wayne
>
>
>
>>
>>
>>
>> ______________________________**_________________
>> Mailing list: https://launchpad.net/~kicad-**developers<https://launchpad.net/~kicad-developers>
>> Post to     : kicad-developers@lists.**launchpad.net<kicad-developers@xxxxxxxxxxxxxxxxxxx>
>> Unsubscribe : https://launchpad.net/~kicad-**developers<https://launchpad.net/~kicad-developers>
>> More help   : https://help.launchpad.net/**ListHelp<https://help.launchpad.net/ListHelp>
>>
>>
>
> ______________________________**_________________
> Mailing list: https://launchpad.net/~kicad-**developers<https://launchpad.net/~kicad-developers>
> Post to     : kicad-developers@lists.**launchpad.net<kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-**developers<https://launchpad.net/~kicad-developers>
> More help   : https://help.launchpad.net/**ListHelp<https://help.launchpad.net/ListHelp>
>

Follow ups

References