[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: next PCB release - 1.99za vs 4.0



On Sun, Sep 12, 2010 at 01:56:43PM -0400, DJ Delorie wrote:
> 
> > Alright, we'll allow a "top and bottom" layer group.
> 
> With flex cable, "top" and "bottom" aren't limited to one layer each.
> 

Aren't they? All layers except the top-most and bottom-most are
considered "inner" layers. This whole top/inner/bottom thing is
convienence for mapping footprints, and footprint mapping can
be changed after-the-fact for weird use cases.

What does it mean to have two "top layers"?

> > > > I think that if we want components on multiple layers (or all
> > > > layers), that should be a property of the component, not a layer
> > > > group/physical layer thing.
> > > 
> > > What's the difference?  It has to be implemented somehow.
> > >
> > 
> > Well, I'm trying to implement this, so "somehow" matters to me ;).
> 
> Either we have one loop that filters layers by need, or a nested pair
> of loops.  Same complexity.  How do you handle layers that aren't
> assigned to physical layers?  Like documentation layers?  What about
> layers that apply to more than one physical layer, like outers or
> inners, or all?  A tree structure ties you down to a specific physical
> structure, a list does not.  What about buried vias?  Do they go on a
> special layer that spans physical layers?
>

It's not the same complexity. Filtering layers by need requires filtering
through all the layers - a tree structure is much more efficient for
accessing specific layers.

"Outers" is a special case. "Inners" and "multiple layers" should be
handled on a per-element basis; vias (or anything) can be assigned to
more than one drawing layer, which in turn map to physical layers.

What use case is there for layers that map to multiple physical layers?

I did not consider layers that are not mapped to physical layers, except
the rats layer. I think the best way to do this would be to have another
class of layer group:

  Top, Bottom, Inner, Outers, None
 
> > I disagree. If physical layers can contain multiple drawing layers (and
> > they must, to keep silk and copper layers separate), it makes sense to
> > have a rigid structure. Then we can display the layer selector in a tree-
> > like display and it is clear to everyone what is what.
> 
> Internal structure and what we present to the user are two different
> problems.  Yes, we need to keep track of the physical stackup.  No,
> that does not need to dictate our internal structure.
> 

They are different problems, but they are closely related. If our presentation
layer is obscenely inefficient because our backend isn't appropriate, that is
a problem.

> > http://download.wpsoftware.net/code/pcb/layer.h
> 
> I would add a LayerPos to each Layer, and store the Layers separately.
> 
> >   1. At the top level, each PCB has a layer stack. This is the ordered
> >      list of physical layers, plus one "internal" layer that is never
> >      saved out or edited. (For now, this will contain the ratsnest layer
> >      and nothing else.)
> 
> Why one?  Why not save it?  We already save rats to file.  What about
> layers that don't correspond to a physical layer?
> 

Why have a different number than one? I could not think of a good reason
for this.

> >   3. Each drawing layer has a type associated with it - one of COPPER
> >      (conductive), SILK (non-conductive) or INTERNAL (not saved out:
> >      DRC highlights, etc, will be on such a layer).
> 
> paste mask keepout fab drill notes
>

Noted.
 
> Why not save DRC highlights?
>

You're right, we should be saving everything.

> >   4. TODO: There is no way to do keepouts. I have heard arguments for
> >      allowing global keepouts, per-layer keepouts, per-function-block
> >      keepouts, etc, and I don't know how it should be structured.
> 
> keepouts are just another layer.  Let DRC worry about what to do with
> it.
>

Ah, but what happens when you want a keepout on all layers? On one layer?
For only HV lines? For footprints but not traces? All these have been
mentioned on the list, and don't work well with "keepouts are just another
layer".


Andrew
 


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user