← Back to team overview

kicad-developers team mailing list archive

Re: Latest info on copper zones using solid polygons without outline thickness.


Le 09/06/2019 à 19:56, Tomasz Wlostowski a écrit :
> On 05/06/2019 21:21, jp charras wrote:
>> It is on the master branch (just committed).
> Hi JP,
> I gave it a try with a bunch of designs. Here are my observations:
> - The filled zones look correct on the super-complex board and the
> number of unconnected nets is identical to the old algorithm.
> - There's a serios issue: connectivity algo can generate false positives
> (thinking zones are connected to tracks or other zones) because is still
> assumes all zones have thick outlines (see CN_ZONE::ContainsPoint). Did
> you foresee any means of indicating this in the file format? Should
> Gerber/other exporters be changed accordingly?
> - I would rephrase the board setup zone filling option choice - it's the
> max approximation error that defines the drawing quality, not the fact
> that zones are outlined with rounded segments. My choice for the option
> would be a single option "Use legacy zone filling outline method", off
> by default.
> - @Wayne/Seth I agree with JP that the change to the zone filling
> algorithm is not very intrusive (and I also trust Clipper's
> inflate/erode algorithms - they're used in the current zone filler and
> never failed us so far).
> I can fix the connectivity issue. Who's in for Gerber/other exporters
> (if needed?)
> Cheers,
> Tom

First, thanks Tom for your test.

But are the drawing issues (calculation time and memory overflow) fixed
by this change?
They were the main reason of this change.

* Unless bugs, plot functions are updated and are compatible with both
zone filling algos.

* The file format keep trace of the zone filling algo that filled the
zone (of course, because do not know how the zone was filled can create
serious issues):
the flag " (filled_areas_thickness no)" is added in the zone section
when the fill algo is "do not use thick outline".
It also ensure a "old" Pcbnew version cannot create broken Gerber files.

* The accessor to know the fill algo used to fill the zone is:
 bool GetFilledPolysUseThickness() const
that returns false for the new algo.

* I was not aware of the connectivity issue. Please, fix it.

* About the zone setup dialog:
For me, the choice is temporary, until we are confident with the new algo.
Usually, when a new option is added, the default choice is: keep the old
It avoid many bug reports.
However make the new algo the default could be the best way to test it...
I am not thrilled by messages like "Use legacy ..." because only core
developpers know the difference between "legacy" and "current" or "new"
about algorithms.
In fact, in my mind, the choice should be removed for the stable 6.0
version: the user has no knowledge to choose the right option.

Jean-Pierre CHARRAS

Follow ups