[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-user: Can someone who really knows rtree.c look at this?



I just filed this bug, and you can see I also found the cause and a
possible solution, but I'm surprised at how rtree works (as changed
by the patch attached to this bug).

Can someone who understands rtrees comment on the solution...

----- Forwarded message from "SourceForge.net" <noreply@xxxxxxxxxxxxxxx> -----

From: "SourceForge.net" <noreply@xxxxxxxxxxxxxxx>
To: noreply@xxxxxxxxxxxxxxx
Date: Sun, 15 Jul 2007 17:52:30 -0700
Subject: [ pcb-Bugs-1754502 ] 'find' will not find rat-to-rat conns at polygon corners

Bugs item #1754502, was opened at 2007-07-15 17:13
Message generated for change (Comment added) made by bjj
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=538811&aid=1754502&group_id=73743

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
>Priority: 7
Private: No
Submitted By: Ben Jackson (bjj)
Assigned to: Nobody/Anonymous (nobody)
Summary: 'find' will not find rat-to-rat conns at polygon corners

Initial Comment:
Rats group already-electrically-connected groups of objects in the same net by choosing the closest points between them and connecting them with rats.

Polygons are considered to be points (arbitrary vertex) in this process.

If you cause a rat to go from a pad to a polygon corner and then THAT is joined to ANOTHER pad from the corner, you have a pad-rat-rat-pad connection (with a polygon vertex equal to the intersection of the rats).

find doesn't traverse that.

I discovered this while modifying the rat code in a way which made it happen much more often, but the bug exists in cvs at the moment.  Just make a polygon, get it in some net.  Then take two resistors and put one near the "rat corner" inside and one just outside.  You'll get the construct I described.  Hit 'f' on one of the pads and observe the highlight trail stop at the rat-rat intersection.

I need this fixed for my other feature so I'll probably have a patch to find.c in a few minutes...

----------------------------------------------------------------------

>Comment By: Ben Jackson (bjj)
Date: 2007-07-15 17:52

Message:
Logged In: YES 
user_id=20600
Originator: YES

This could be fixed by explicitly looking for rat-to-rat connections, but
everything else works by finding that common object they touch, in this
case the polygon.

The reason the polygon isn't found is that the rat line goes to the exact
vertex of the polygon.  The rtree.c code looks at X,Y (the end of our rat)
and sees that it's EQUAL to one of the bounds, X1,Y1 and considers that a
miss.

I've included a patch to change rtree to consider things that touch like
that to be HITS instead of misses, but that may have far reaching
consequences.  Need someone who groks rtree.c to comment.
File Added: 1754502.DIFF

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=538811&aid=1754502&group_id=73743


----- End forwarded message -----

-- 
Ben Jackson AD7GD
<ben@xxxxxxx>
http://www.ben.com/


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user