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=FVl62Lir2NpLLe2KWIPsbBgmlnRk7iRiYS0ss+LHknA=; b=INAmAmrsV1ZzWUHkKSuE+Pma59LOChmRCa5YnbGFUZiuc/qk02vU6r8xqYVRaGopY7 O/kod/IOZhojyceboS3DzxAPbRpzdYX/hHV56Tlkuvxia1eVM85RdZrZ16lq/Srx0WmO V4bgdCyXlo1XE2nKOljVp9Kkz/Dsf4yqRmMIp3rNvusZ65W6vnsbAoGVSv8AGuCLIzWz OTVRfwpQEQdRKZ2fdzBA2xm5+wmMzOw7E3QRuzUKyAA4vr2vAUnLS/jEROHFGGwfGgey m4YAo+OCKkKQiQ0kHOaiouv7r5wdu3e/wSayWu6eDvnmZxsE708InX9QVnorUluMKZTm OvHA== MIME-Version: 1.0 X-Received: by 10.28.3.133 with SMTP id 127mr32774579wmd.101.1450836301516; Tue, 22 Dec 2015 18:05:01 -0800 (PST) In-Reply-To: References: <20151221030451 DOT 02399163eb3e40f21c622c41 AT gmail DOT com> <20151221203331 DOT 20837 DOT qmail AT stuge DOT se> <20151222002012 DOT a88d7fe32a9336855eccd1d0 AT gmail DOT com> <201512220412 DOT tBM4CJxb018546 AT envy DOT delorie DOT com> <20151222153828 DOT 28d3996c10f3182c5efc780a AT gmail DOT com> <20151222204233 DOT 0ccc392762ac3ee53ed6bad0 AT gmail DOT com> <20151222224041 DOT 45deaf70fe414a8c4cc3888f AT gmail DOT com> Date: Tue, 22 Dec 2015 17:05:01 -0900 Message-ID: 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]" To: geda-user AT delorie DOT com Content-Type: multipart/alternative; boundary=001a114527826119ba0527872688 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 Precedence: bulk --001a114527826119ba0527872688 Content-Type: text/plain; charset=UTF-8 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 --001a114527826119ba0527872688 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On Tue, Dec 22, 2015 at 1:02 PM, Peter Clifton (petercjclifton AT googlemail DOT com) [via geda-user AT delorie DOT com] <geda-use= r AT delorie DOT com> wrote:
> Then there is the problem is there is an unconnected objec= t 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 iteratin= g
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.=C2=A0 Variable clearance v= alues would be fairly easy to do as well, at least in an inefficient way: = =C2=A0find.c uses a single global "bloat" value to check for conn= ection changes at given bloats (which can be negative).=C2=A0 To handle a b= oard with variable clearance requirements, you could just start with the lo= west clearance and re-run the entire board for each different clearance val= ue.=C2=A0 If there weren't too terribly many it wouldn't be too slo= w.=C2=A0 Traces with larger clearance requirements probably also deserve la= rger overlap requirements, so you'd probably actually need two addition= al passes for each "special" wire class.
Britton
=C2=A0

--001a114527826119ba0527872688--