← Back to team overview

kicad-developers team mailing list archive

Re: Reason for non-stroked zones?


Hi JP,

The new algorithm produced very sharp points where the min-width setting resulted in drop-outs.  These would be prone to peeling.  So I changed Clipper’s MiterLimit to nicely chop them off (giving square ends, but with angles above 90º).  I then modified Clipper to round them off so they looked like the old algorithm — but of course that will increase the number of vertices.  

The two changes are orthogonal, though, so the second one isn’t required.  But do we want a preference for it?  (That preference could replace the preference for choosing the legacy algorithm since the new one with rounded corners mimics it pretty well.)


PS: my boards are very simple, but beauty is important to me.  But as long as max_error and friends are adjustable, I don’t care what the defaults are.

> On 15 Jul 2019, at 08:29, jp charras <jp.charras@xxxxxxxxxx> wrote:
> Le 14/07/2019 à 22:14, Jeff Young a écrit :
>> Hi JP,
>> Why were the non-stroked zones implemented?  Is it entirely for performance?
>> Is the plan to make them default in 6.0?
>> Thanks,
>> Jeff.
> It is mainly to fix an issue for very large boards: stroked filled
> polygons generate a lot of rounded segments and on OpenGL these segments
> are costly in time and memory resource.
> So these polygons are sometimes not drawable (very long time to draw,
> glitches and crashes)
> Non stroked polygons have a bit more vertices, but no segments to draw.
> An other advantage of non stroked polygons is the fact the zone shape is
> exactly the polygons shape, and this is useful when exporting a copper
> layer to an external tool (for simulation for instance).
> Do not forget:
> the number of vertices created by filling algo must be minimal:
> Reducing the number of vertices is *much more important* than creating
> beautiful shapes.
> This is a reason I am thinking the "max_error" default value should be
> 0.01mm instead of 0.005mm
> We could make non-stroked algo the default in 6.0 when we be reasonably
> sure it works fine.
> For now, I am thinking this option could be available without set its
> availability in advanced config.
> -- 
> 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