delorie.com/archives/browse.cgi | search |
"Nicklas Karlsson (nicklas DOT karlsson17 AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> writes: >> > The PCB layout has an object of type pcb_layout as the root object, which can contain an arbitrary number of pcb_layer objects--which in turn contain the geometric primitives--and pcb_element objects which aren't associated with a layer. Objects of type pcb_polygon can have child objects of type pcb_polygon_hole: >> > >> > pcb_layout >> > +- pcb_layer >> > +- pcb_arc >> > +- pcb_line >> > +- pcb_pad >> > +- pcb_pin >> > +- pcb_polygon >> > +- pcb_polygon_hole >> > +- pcb_rat >> > +- pcb_text >> > +- pcb_via >> > +- pcb_element >> >> Sounds reasonable, and similar to what we have now but with much cleaned up >> naming and hierarchy. > > I would say then looking at data layer by layer there are: arc, line, > circle, polygon and cutout of these drawing primitives. > > Pad/pin/via is a composite of these drawing primitives on different > layer, this is the case no matter how they are represented. I believe it is a mistake to have pcb_layer contain the drawing primitives. A pcb_via or pcb_element shall contain the same drawing primitives, for any layers. There may be a (hierarchy of) container(s) for drawing elements not contained in a pcb_via or pcb_element. pcb_via and pcb_element shall be subclasses of such containers. > A hole is equal to a round cut out usually thru all board layers with > or without plating. Text is probably also a composite of other drawing > primitives. A hole is a connection between layers. No further assumptions about holes is needed before an export HID or a DRC ruleset is called. -- Stephan
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |