← Back to team overview

kicad-developers team mailing list archive

Re: 6.0 Zone filling differences

 

Hi Jeff-

The new bits a much faster on the video project. Things are really looking promising here!

I'm attaching a board that takes ~2s to refill with the old algorithm but is about 2 minutes to refill with the new one. Most of that time is spent at 100% CPU (instead of threaded), so I suspect that there is a single zone that is having issues. After re-filling, the gnd planes are disconnected from the circular through-hole connectors at the top of the board as well as the VIN connection on U601 (and its mates).

This is a production board that is DRC error-free when using the current master branch.

Best-
Seth

On 2019-06-21 13:04, Jeff Young wrote:
I’ve pushed new bits.  So far these just address the performance
issues, not the anomalies.

JP, could you give it another run and see if it improves things enough?

Cheers,
Jeff.


On 21 Jun 2019, at 16:59, jp charras <jp.charras@xxxxxxxxxx> wrote:

Le 21/06/2019 à 17:41, Jeff Young a écrit :
Question for you polygon folks:

The old algorithm used to add a lot of pads to a “holes” polygon, then did a Simplify() on it, and then a BooleanSubtract() from the filled area.

The new code does a Simplify() and BooleanSubtract() per pad. Since the holes are all discrete in either case (ie: not overlapping or otherwise interacting with each other), I thought this would have similar performance, and it makes the code easier to understand. But perhaps this is the source of the performance issue?

Cheers,
Jeff.

Operations between polygons use fast algorithms and AFAIK scan only once the full set of segments, and calculation time is something like N log N
for N segments.
(But I am not a polygon specialist)

If you subtract holes by pad to the zone, the cost is N log N x pad
count, with a value for N similar to the full segment count.

Moreover Simplify() can be costly in calculation time (according to the
Clipper doc).

I always saw (when I tried this kind of calculations) the calculation
time exploding, or at least much higher than a global calculation made
only once.

--
Jean-Pierre CHARRAS


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Attachment: 8CH_Amplifier.kicad_pcb.xz
Description: application/xz


References