[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: next PCB release - 1.99za vs 4.0
On Sep 12, 2010, at 12:29 PM, Andrew Poelstra <[1]asp11@xxxxxx> wrote:
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
None is a bad name, Documentation
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.
[2]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.
Not all layers will be copper. Use conductor and the conductor then
has the metal type attribute attached. As I think of silver ink
flexes.
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".
Layers with attributes here are a solution. The drc reads in the
attribute and decide what to do. Oh this drc layer says Blah, another
says foo.
Andrew
_______________________________________________
geda-user mailing list
[3]geda-user@xxxxxxxxxxxxxx
[4]http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
References
1. mailto:asp11@xxxxxx
2. http://download.wpsoftware.net/code/pcb/layer.h
3. mailto:geda-user@xxxxxxxxxxxxxx
4. http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user