> Hide all composites with attribute "type=via". The GUI probably > maintains an extra list of those, as well as a list of elements, for > performance.
Why the GUI? Why can't the core maintain that list, since a lot of things will need it? I care a lot about performance. > Exporters can only export what they know about. All layers can be > turned into gerbers. Except gerbers have special cases for thermals and pads, for example. If you use the special cases, other CAM tools empower their users to do more things (like auto-generate paste stencils when you forget the paste mask, which does NOT work with pcb's gerbers). But for the exporters to offer these special cases, they need to know more about the data they're given than just "draw circle here". > At the bottom, a layout is a set of layers with attributes, > containing shapes, maybe with attributes. and containing other layers as sub-layouts. I have never disagreed with this! What I disagree with is using this "at the bottom" information to re-produce the semantic information inherent in a "pcb layout". I see no reason why there can't be a semantic heierarchy to the data, so at a high level we have a collection of "all vias" that's a child of "this layout", so that the tools can find them easier and deal with them as a group. > The semantics of those attributes is what encapsulates the builtin > knowledge how to make PCBs, and the tool must fully exploit that > knowledge when presenting a layout to the user. Forcing tools to "fully exploit" data at too low a level makes it very difficult to create such tools in the first place. The move tool needs to know the difference between an element, a via, and a trace, so it can function properly. We need to consider these types of issues when designing the internal data structures, or it will be so difficult to write the software that it just won't get done. _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user