www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/12/24/13:44:12

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:content-type;
bh=0BhzYFN+O5f4SyxXnAg4/YhS6BR/hfzU9voDmAVgZFA=;
b=Tfnnst4RtnTRseTvCsuXDNAQkuCHD/n/qxTgRqn9+OQ5+jm6m4401SI9QiiwFHWQ8m
CUv2C5LGuK9s5IGY62u3fwrYNn2jc2PHsxd/YgDtQDsi17/e9FK2okVp0BQZd1ydFSJ/
1wBOIbYD19WvsWMyp6xmo30ux/0aeSFSWzV0TZgp4Hr3RVe2e5icugx5goNCxiYNXULu
Q6B8ENKFm7MSoRsDw1QkWv5h7XUzgYRrMa2odfjFbUMMrt85dARX5LhYvInvqB3Nuh5s
S3gotMfZJS7rShZtqC8h6NG1vbnyQDGqiCkzciT3YyWAMkS46FU0MOkDttOZkup/1IVr
6Agg==
MIME-Version: 1.0
X-Received: by 10.28.93.195 with SMTP id r186mr39793755wmb.37.1450982603855;
Thu, 24 Dec 2015 10:43:23 -0800 (PST)
In-Reply-To: <20151223102847.f3c44cabc40180fa4e85e2d7@gmail.com>
References: <CAOFvGD6OiYxcGkOiQRVnvXW3TLs42bt7PE5Ot9s09hsukYicKA AT mail DOT gmail DOT com>
<CAOP4iL1ri4UMeYr01Af-AH005DkLboKO72nGao+ByGmqA51W-A AT mail DOT gmail DOT com>
<20151222002012 DOT a88d7fe32a9336855eccd1d0 AT gmail DOT com>
<CAJXU7q9dU=z5KZmgsh+Vau4zZNfEh4Awr5xdzL=6xhimLYVNLw AT mail DOT gmail DOT com>
<alpine DOT DEB DOT 2 DOT 00 DOT 1512220421160 DOT 9035 AT igor2priv>
<201512220412 DOT tBM4CJxb018546 AT envy DOT delorie DOT com>
<alpine DOT DEB DOT 2 DOT 00 DOT 1512220528100 DOT 9035 AT igor2priv>
<CAJXU7q89cBkSZZfaS5p2CSDeJRTGCzNs+bNBjL8_KYQ=o7gi=Q AT mail DOT gmail DOT com>
<20151222153828 DOT 28d3996c10f3182c5efc780a AT gmail DOT com>
<CAJXU7q826wCc69qaQ71Y=Yqrnxg-044GD4ZSViCYSmf1SMiNNw AT mail DOT gmail DOT com>
<20151222204233 DOT 0ccc392762ac3ee53ed6bad0 AT gmail DOT com>
<CAJXU7q8kTP6NqozYJm+MC_j7GqVXWJctznZx-VzmJiB4z6A4dw AT mail DOT gmail DOT com>
<20151222224041 DOT 45deaf70fe414a8c4cc3888f AT gmail DOT com>
<CAJXU7q8pAStTq6yTq6wOP4=MWBGfURP_KvdEYv-npLmRBmPufA AT mail DOT gmail DOT com>
<CAC4O8c-oEf1n-EphBHqwARkEyLAeOF-3gYCrmQOXA55dMKh-TQ AT mail DOT gmail DOT com>
<20151223102847 DOT f3c44cabc40180fa4e85e2d7 AT gmail DOT com>
Date: Thu, 24 Dec 2015 09:43:23 -0900
Message-ID: <CAC4O8c-9dbdKhFyTz9=AbLQXCqwKdBc3cLAmMoLgARDpZPVjGw@mail.gmail.com>
Subject: Re: [geda-user] Prop ... Structure? (Clearance calculation)
From: "Britton Kerin (britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
To: geda-user AT delorie DOT com
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

--001a11469daeada1f80527a93607
Content-Type: text/plain; charset=UTF-8

On Wed, Dec 23, 2015 at 12:28 AM, Nicklas Karlsson (
nicklas DOT karlsson17 AT gmail DOT com) [via geda-user AT delorie DOT com] <
geda-user AT delorie DOT com> wrote:

> > On Tue, Dec 22, 2015 at 1:02 PM, Peter Clifton (
> > petercjclifton AT googlemail DOT com) [via geda-user AT delorie DOT com] <
> > geda-user AT delorie DOT com> wrote:
> >
> > > > Then there is the problem is there is an unconnected object within
> > > distance but I guess it could worked around if not already done by at
> least
> > > temporary assign all objects to a net.
> > >
> > > I "think" this works ok, but I'm on a Win7 box with no PCB right now
> > > to check... OK, no wait - I did install PCB (remember it also ports to
> > > Win32 if you like masochism)...
> > >
> > >
> > > So - it "nearly" works.. two tracks violating DRC clearance, on a
> > > board with no netlist - no DRC results.
> > > Throw down a via, and touch it to one of those tracks - and we see 1x
> > > DRC violations - "Copper areas too close".
> > >
> > > Bug - one I'm sure could be fixed. We're probably just not iterating
> > > over all of the non "PV" type objects as potential DRC check
> > > start-points. (DRC draws a distinction between the in-layer objects
> > > like lines, arcs, polygons etc.. and the "PV" type objects (pin, via),
> > > which can traverse layers..
> > >
> >
> > Yes this would be fairly straightforward to fix.  Variable clearance
> values
> > would be fairly easy to do as well, at least in an inefficient way:
> find.c
> > uses a single global "bloat" value to check for connection changes at
> given
> > bloats (which can be negative).  To handle a board with variable
> clearance
> > requirements, you could just start with the lowest clearance and re-run
> the
> > entire board for each different clearance value.  If there weren't too
> > terribly many it wouldn't be too slow.  Traces with larger clearance
> > requirements probably also deserve larger overlap requirements, so you'd
> > probably actually need two additional passes for each "special" wire
> class.
> >
> > Britton
>
> different net<-->net clearances should not be to hard once every object on
> copper layer have been assigned a net name:
>   1. Check global value as is done now.
>   2. Check clerance for each other net<-->net combintion, during this pass
> all other nets could be ignored.
> The trick is for each net with a particular value you check clearance to
> the other nets instead of all nets at once.
>

I think you can accomplish this with a run of the existing code along only
the high-clearance wires, and an elevated bloat setting.  Then you would be
using all the same code, admittedly in a slightly tortured way.

Britton

--001a11469daeada1f80527a93607
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Dec 23, 2015 at 12:28 AM, Nicklas Karlsson (<a href=3D"mailto:n=
icklas DOT karlsson17 AT gmail DOT com">nicklas DOT karlsson17 AT gmail DOT com</a>) [via <a href=
=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>] <span dir=3D"l=
tr">&lt;<a href=3D"mailto:geda-user AT delorie DOT com" target=3D"_blank">geda-use=
r AT delorie DOT com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">&gt; =
On Tue, Dec 22, 2015 at 1:02 PM, Peter Clifton (<br>
&gt; <a href=3D"mailto:petercjclifton AT googlemail DOT com">petercjclifton AT google=
mail.com</a>) [via <a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delor=
ie.com</a>] &lt;<br>
&gt; <a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>&gt;=
 wrote:<br>
&gt;<br>
&gt; &gt; &gt; Then there is the problem is there is an unconnected object =
within<br>
&gt; &gt; distance but I guess it could worked around if not already done b=
y at least<br>
&gt; &gt; temporary assign all objects to a net.<br>
&gt; &gt;<br>
&gt; &gt; I &quot;think&quot; this works ok, but I&#39;m on a Win7 box with=
 no PCB right now<br>
&gt; &gt; to check... OK, no wait - I did install PCB (remember it also por=
ts to<br>
&gt; &gt; Win32 if you like masochism)...<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; So - it &quot;nearly&quot; works.. two tracks violating DRC clear=
ance, on a<br>
&gt; &gt; board with no netlist - no DRC results.<br>
&gt; &gt; Throw down a via, and touch it to one of those tracks - and we se=
e 1x<br>
&gt; &gt; DRC violations - &quot;Copper areas too close&quot;.<br>
&gt; &gt;<br>
&gt; &gt; Bug - one I&#39;m sure could be fixed. We&#39;re probably just no=
t iterating<br>
&gt; &gt; over all of the non &quot;PV&quot; type objects as potential DRC =
check<br>
&gt; &gt; start-points. (DRC draws a distinction between the in-layer objec=
ts<br>
&gt; &gt; like lines, arcs, polygons etc.. and the &quot;PV&quot; type obje=
cts (pin, via),<br>
&gt; &gt; which can traverse layers..<br>
&gt; &gt;<br>
&gt;<br>
&gt; Yes this would be fairly straightforward to fix.=C2=A0 Variable cleara=
nce values<br>
&gt; would be fairly easy to do as well, at least in an inefficient way:=C2=
=A0 find.c<br>
&gt; uses a single global &quot;bloat&quot; value to check for connection c=
hanges at given<br>
&gt; bloats (which can be negative).=C2=A0 To handle a board with variable =
clearance<br>
&gt; requirements, you could just start with the lowest clearance and re-ru=
n the<br>
&gt; entire board for each different clearance value.=C2=A0 If there weren&=
#39;t too<br>
&gt; terribly many it wouldn&#39;t be too slow.=C2=A0 Traces with larger cl=
earance<br>
&gt; requirements probably also deserve larger overlap requirements, so you=
&#39;d<br>
&gt; probably actually need two additional passes for each &quot;special&qu=
ot; wire class.<br>
&gt;<br>
&gt; Britton<br>
<br>
different net&lt;--&gt;net clearances should not be to hard once every obje=
ct on copper layer have been assigned a net name:<br>
=C2=A0 1. Check global value as is done now.<br>
=C2=A0 2. Check clerance for each other net&lt;--&gt;net combintion, during=
 this pass all other nets could be ignored.<br>
The trick is for each net with a particular value you check clearance to th=
e other nets instead of all nets at once.<br>
</blockquote></div><br></div><div class=3D"gmail_extra" style=3D"">I think =
you can accomplish this with a run of the existing code along only the high=
-clearance wires, and an elevated bloat setting.=C2=A0 Then you would be us=
ing all the same code, admittedly in a slightly tortured way.=C2=A0</div><d=
iv class=3D"gmail_extra" style=3D""><br></div><div class=3D"gmail_extra" st=
yle=3D"">Britton</div><div class=3D"gmail_extra"><br></div></div>

--001a11469daeada1f80527a93607--

- Raw text -


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