X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Envelope-From: paubert AT iram DOT es Date: Wed, 12 Dec 2012 11:28:27 +0100 From: Gabriel Paubert To: geda-user AT delorie DOT com Subject: Re: [geda-user] Find rat lines Message-ID: <20121212102827.GA4068@visitor2.iram.es> References: <20121204183305 DOT 6b04c0dc AT jive DOT levalinux DOT org> <20121208112649 DOT 388a9d22 AT jive DOT levalinux DOT org> <1355011808 DOT 19390 DOT 8 DOT camel AT localhost> <1355188647 DOT 12937 DOT 14 DOT camel AT localhost> <1355266018 DOT 18878 DOT 38 DOT camel AT localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-SPF-Received: 2 X-Spamina-Bogosity: Unsure X-Spam-Score: -1.4 (-) X-Spam-Report: Content analysis details: (-1.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -1.4 ALL_TRUSTED Passed through trusted hosts only via SMTP 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 On Wed, Dec 12, 2012 at 07:25:52AM +0100, gedau AT igor2 DOT repo DOT hu wrote: > > > On Tue, 11 Dec 2012, Peter Clifton wrote: > > >Yes - had a fear it might be complex. > > > >That doesn't mean it is intractable though,.. board auto-routing is a NP > >complete problem, but we still do a reasonable job. > > I agree. My point is: finding a clean solution backed up with graph > theory (proven to work on all cases perfectly) needs a very > different approach than finding a set of good-enough methods and > heuristics to get a pretty good result in most of the cases. At > least according to my experience with such problems... > > > > >>There were some alternative ideas, mostly improvements of the propagation > >>idea; instead of finding a single object to blame, it may highlight a > >>longer set of lines in a way that it is very likely to contain the part > >>the user is interested in, but this needs some more thinking. > > > >It is probably impossible to identify a single (or list of) object(s) > >which is/are to blame in any general case we encounter. There might be > >multiple solutions to resolve the short. We just need to try to provide > >helpful information to the user so she may resolve the issue. > > Agreed. I'd further refine this part: in case we find the problem is > NP, we can safely tell we won't come up with a perfect solution and > then we could concentrate on one(s) that come(s) up with reasonable > results for the most common cases. Or even, results better than what > we have now. > > > > > > >I'm trying to think of the class of mistakes I make when causing > >shorts.. > > > >1. Dragged random object out of place (or moved instead of > >rubber-banded). > > > >2. Applied thermal to wrong layer > > > >3. Had inappropriately tagged / named mechanical layer short across some > >pins or vias. > > > >4. Routed tracks after (1, 2 or 3), compounding the issue with more > >cross-connected geometry. This will probably be in the form of wiring > >some pins / pads to the wrong track, or to adjacent pins on the shorted > >net. It might (occasionally) be due to adding more thermals to the wrong > >layer. > > 5. random modification somewhere that modifies how polys are > separated; for example deleting a long trace that used to separate > two smaller polys in some unseen corner. > > 6. random mod of lines that modifies dicing of a poly > > 7. component rotated - i obviously get this 50% of the cases with > resistors Speaking of this, for all (to my knowledge) resistors, most (but not all) inductors and most (but again not all) unpolarized capacitors, would it be possible to have a "symmetric dipole" attribute that means that the 2 pins are interchangeable. I'm somewhat fed up of rotating these components by 180 degrees because they come with the wrong orientation (this often involves rotating again the reference designator so that the orientation stays the same). Another option would be to have the ability to rotate a component without moving the reference designator (using the Ctrl key for example in the GUI). Sorry to hijack this mathematical thread with this minor request... Regards, Gabriel