delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/02/02/12:25:25

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/l2ms-sc)
From: geda AT psjt DOT org (Stephan =?utf-8?Q?B=C3=B6ttcher?=)
To: "Nicklas Karlsson \(nicklas.karlsson17\@gmail.com\) \[via geda-user\@delorie.com\]" <geda-user AT delorie DOT com>
Subject: Re: [geda-user] The nature of gEDA layers
References: <alpine DOT DEB DOT 2 DOT 00 DOT 1601180756390 DOT 9035 AT igor2priv>
<s6n37tjt1tv DOT fsf AT falbala DOT ieap DOT uni-kiel DOT de>
<56A8F74B DOT 8080304 AT ecosensory DOT com>
<CAC4O8c9UKLsh5FAAwUMEtHThKH-w3gUmCU2i9dRW9igkyRt-TQ AT mail DOT gmail DOT com>
<CAJZxidDmjMtd_fKvR5qZVRa+hwDUbvfaz79oZjkBgDuE1m8RBg AT mail DOT gmail DOT com>
<56A961BC DOT 3040405 AT ecosensory DOT com>
<CAJZxidC=nbxAinOtpfGHHqwPXbEMrhfat7jKgA9KBp3EVVg4_Q AT mail DOT gmail DOT com>
<s6nbn863xlu DOT fsf AT blaulicht DOT dmz DOT brux> <56A9E416 DOT 8080500 AT ecosensory DOT com>
<20160128124020 DOT 8f2f33210481f637a696f5d0 AT gmail DOT com>
<CAJZxidD7=NE+Q3FGOU+ER3Xh7TRskEPRTKa=yrwUm51_VaYw0A AT mail DOT gmail DOT com>
<20160128164922 DOT 7bd920859ab8462f8abb0f40 AT gmail DOT com>
<s6ny4b9r3x7 DOT fsf AT falbala DOT ieap DOT uni-kiel DOT de>
<20160128191943 DOT d3f06f258e112a8d7d532327 AT gmail DOT com>
<s6nio2d2yr0 DOT fsf AT blaulicht DOT dmz DOT brux>
<20160201113121 DOT 9e1229dc74b565f082c3bfba AT gmail DOT com>
<n8pqa8$5fb$1 AT ger DOT gmane DOT org>
<20160202102831 DOT 87be1281db69271eaf892fc9 AT gmail DOT com>
<s6nh9hr9ssr DOT fsf AT falbala DOT ieap DOT uni-kiel DOT de>
<20160202173714 DOT 071b35be76f3179b3e4f493c AT gmail DOT com>
Date: Tue, 02 Feb 2016 18:24:56 +0100
In-Reply-To: <20160202173714.071b35be76f3179b3e4f493c@gmail.com> (Nicklas
Karlsson's message of "Tue, 2 Feb 2016 17:37:14 +0100")
Message-ID: <s6nvb6758k7.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:

>> Levels/depths are the drawing order of graphics items within a single
>> layer.  What item shall be cleared by a line clearance, and what item
>> shall persist?
>> 
>>  1st draw a DARK polygon
>>  2nd draw a CLEAR circle areound a via hole
>>  3rd draw a DARK circle and a DARK line wowards that circle
>> 
>> The CLEAR circle must not clear the via pad nor the line, but it must
>> clear the polygon.  The standard library will assign level numbers to
>> certain classes of graphical items, with gaps for special needs.
>
> Now I got it, depth is useful to mix dark and clear. It is useful for
> example to draw thermals but ror the most cases it should not be
> needed.

Almost every copper trace will be have a polygon clearance attached.

Line {
  Attribute{routingstyle="default"},
  Path{(x1, y1), (y2,y2), ... },
  Stroke{ layer="top", ends=round, depth=100, width=10mil },
  Stroke{ layer="top", ends=round, depth=-500, width=30mil },
}

A polygon would be at depth=900.  The Line{} first clears a hole into
the polygon and then draws a trace into the hole.  The hole would not
cut through other lines or pads, only through the polygon below.

Or a Via:

Line {
  Attribute{viastyle="default"},
  Path{(x, y)}
  Stroke{ layer="plated", ends=round, width=16mil },
  Stroke{ layer="top", ends=round, depth=100, width=36mil },
  Stroke{ layer="top", ends=round, depth=-500, width=56mil },
  Stroke{ layer="bot", ends=round, depth=100, width=36mil },
  Stroke{ layer="bot", ends=round, depth=-500, width=56mil },
  Stroke{ layer="gnd", ends=round, depth=100, width=36mil },
  Stroke{ layer="gnd", ends=round, depth=-500, width=56mil },
  Stroke{ layer="sig", ends=round, depth=100, width=36mil },
  Stroke{ layer="sig", ends=round, depth=-500, width=56mil },
  Stroke{ layer="topmask", ends=round, depth=-100, width=42mil},
  Stroke{ layer="botmask", ends=round, depth=-100, width=42mil},
}

Maybe it is more efficient for the geometry engine to allow references
to routing style libraries.

Line {
  Attribute{routingstyle="default"},
  name="default_trace",
  Stroke{ layer="top", ends=round, depth=100, width=10mil },
  Stroke{ layer="top", ends=round, depth=-500, width=30mil },
}

Line {
  Path{(x1, y1), (y2,y2), ... },
  ref="default_trace",
}

Same for Vias stacks.  If you edit such an object, it would make a copy.
But if you edit the routing style, all objects still referring to it
would change.  The routing style tool would ask if you intend to change
those 423 objects, or better bump the serial number of the style and
keep those objects to refer to the old values.

> I guess depth is in sort of local to avoid interleaved order for overlapping drawing drawing primitives?
>
> Nicklas Karlsson

-- 
Stephan

- Raw text -


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