delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/01/22/11:52:54

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-Virus-Scanned: by amavisd-new (Uni-Kiel/l3ms-sc)
From: geda AT psjt DOT org (Stephan =?utf-8?Q?B=C3=B6ttcher?=)
To: <geda-user AT delorie DOT com>
Subject: Re: [geda-user] PCB data structures
References: <1512221837 DOT AA25291 AT ivan DOT Harhan DOT ORG>
<20160106143629 DOT 4D39D809D79B AT turkos DOT aspodata DOT se>
<CACwWb3BXbnQXs+DwVVzmC8DrhwOYxPgVyUhZTPL9bM9cJbHimw AT mail DOT gmail DOT com>
<20160106164022 DOT D0D4E809D79B AT turkos DOT aspodata DOT se>
<20160106180912 DOT 42ddf4079d91384f206b7c35 AT gmail DOT com>
<20160106191433 DOT 5dc5cb59 AT jive DOT levalinux DOT org>
<20160106202817 DOT 56197b2c539d426a1b724c9e AT gmail DOT com>
<568E09ED DOT 1080508 AT m0n5t3r DOT info>
<CACwWb3AhSh-+NNu--bVMGZBfjaoA+hHg7gbXnoyNv3oMq=e17g AT mail DOT gmail DOT com>
<568E6354 DOT 80302 AT m0n5t3r DOT info>
<20160108002640 DOT 03233b24 AT jive DOT levalinux DOT org>
<20160108175259 DOT 127a3f073616758434f7edff AT gmail DOT com>
<20160109020345 DOT 1e07cb84 AT jive>
<CAC4O8c-nqs2+9rgsD-Gsks-wSmJ1eCkJ9PFMi3XqMrYE2FO3Ew AT mail DOT gmail DOT com>
<20160109112851 DOT 1129dc38 AT wind DOT levalinux DOT org>
<CAC4O8c_tFOOXCA5ABEMuSU8BnXMZWauV+uJYy-TJO7nJYBS9+A AT mail DOT gmail DOT com>
<alpine DOT DEB DOT 2 DOT 11 DOT 1601111649470 DOT 5421 AT nimbus>
<CAC4O8c-jS6spZU0yh3oZJ02G9GU7pE5hwvP2O_LfC9k6dCD96A AT mail DOT gmail DOT com>
<20160122094909 DOT 08704cd6e4dfc8a35e1ac734 AT gmail DOT com>
Date: Fri, 22 Jan 2016 13:10:24 +0100
In-Reply-To: <20160122094909.08704cd6e4dfc8a35e1ac734@gmail.com> (Nicklas
Karlsson's message of "Fri, 22 Jan 2016 09:49:09 +0100")
Message-ID: <s6nbn8dvmq7.fsf@falbala.ieap.uni-kiel.de>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
MIME-Version: 1.0
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

"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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019