← Back to team overview

kicad-developers team mailing list archive

Re: Ratsnest release note

 

On 11/25/2013 10:55 PM, Wayne Stambaugh wrote:
On 11/25/2013 11:31 AM, Maciej Sumiński wrote:
Ladies and Gentlemen,

Finally, there is the ratsnest compatible with the GAL available for
testing in our branch [1]. Hopefully after some testing time and main
developers approval, it will get merged to the testing branch.
The main difference introduced is that the ratsnest now takes into
account tracks and vias too. It came at some performance cost, but it
should not be a very big price for the functionality.

For those that are slightly more interested in implementation details:
- The board is processed, ie. all items are split to nodes (connection
points such as pads, vias, track endings) and connections (tracks).
- Basic grid of connections if computed by Delaunay triangulation
(ignores the fact if connections exist or not, just prepares the grid).
It is done using the TTL[2] library, tailored to the needs of the
algorithm.
- Minimum spanning tree is computed, taking into account if connections
exist or not.
For the items that are modified by the tools, it takes too much time to
recompute the whole ratsnest, so there is only one line drawn for each
node. After modifications are finished, all nets that were influenced
are refreshed.

Things that I would like to add in the nearest future:
- pool allocators - I believe this should significantly increase the
speed, but I was not able at the time being to use it properly to gain
some boost. I just need some experiments to combine those with shared_ptrs.
- toggling ratsnest per net - There could be a menu for hiding specific
nets. I used to hide power nets in my designs, as they were introducing
lots of missing connections that were littering my screen.

As usual, both tests and opinions are more than welcome. Myself, I am
going to further develop the selection tool.

Kind regards,
Orson

[1] lp:~cern-kicad/kicad/ratsnest
[2] http://www.sintef.no/Projectweb/Geometry-Toolkits/TTL/


Orson,

I take it that the Boost geometry library does not have support for
triangulation.  I hate to keep adding more dependencies unless we
absolutely need to.  I'll try to test is over the Thanksgiving holiday
if I get some time.

Thanks,

Wayne

Hi Wayne,

Boost.Polygon is able to generate Voronoi diagrams that are quite close to triangulation, but it does not fulfill needs of the algorithm. I know that adding external libraries may sometimes pull other dependencies, but this one should be easily handled. The TTL library was stripped down to one .cpp file and 6 headers - I rather could not do any better with my own solutions.
I am looking forward to your (and others) review.

Regards,
Orson


References