← Back to team overview

kicad-developers team mailing list archive

Re: [RFC] Experimental grid pattern in zone fill

 

Le 13/03/2018 à 20:47, Jon Evans a écrit :
> I wonder if it might be a faster algorithm to calculate the perimeter (and holes) of zones, offset
> it in by the zone thickness as a polygon, and then draw in the grid as line segments rather than as
> more holes in the polygon?

This is the first thing I tested. I abandoned this approach:
* It is not compatible with the current zone connectivity algo and the current algo to remove
insulated islands.
* It can be very costly in drawing time because line segments can be very numerous if the zone min
thickness is very small (because line segments must be set to this value to be able to "fill" the
zone), much more the full polygon approach.
(try to fill a zone with a very small min thickness with segments)

The zone as polygon is the best way for me.

Removing holes in filled areas is not time consuming.
Removing not connected copper islands and the connectivity calculation is more time consuming just
because there are more vertices.
This is also true when using 32 segments instead of 16 segments by circle.

> 
> On Tue, Mar 13, 2018 at 3:44 PM, jp charras <jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>>
> wrote:
> 
>     Le 13/03/2018 à 20:38, Jon Evans a écrit :
>     > For the last point, you could use the approach I put in GerbView of start measuring the time, and
>     > then throw up a progress window if the time exceeds N seconds (with a button to cancel the operation)
>     > That way you don't even see the window on small boards, but you get the feedback and can cancel the
>     > operation on large boards.
> 
>     Hi Jon,
>     Filling zones has already this progress window.
>     Grid pattern just can modify the calculation time due to more vertices in zone outlines.
> 
>     >
>     > On Tue, Mar 13, 2018 at 3:28 PM, jp charras <jp.charras@xxxxxxxxxx
>     <mailto:jp.charras@xxxxxxxxxx> <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>>>
>     > wrote:
>     >
>     >     Le 13/03/2018 à 18:24, Seth Hillbrand a écrit :
>     >     > Hi JP-
>     >     >
>     >     > I gave it a spin and definitely like it!  I have been using custom footprints for capacitive
>     >     > sensors, but this is much better.  A couple thoughts:
>     >     >
>     >     > 1) I'd prefer to have the angle saved as a parameter in the file rather than a fixed list of options.
>     >
>     >     Yes, good idea.
>     >
>     >     > 2) We'll definitely need to address the polygon issue.  I created a 10cmx10cm board and filled it
>     >     > with 45° at the minimum width/50% fill and my computer froze for 2 minutes while it thought about
>     >     > it.  Strangely, when I checked it was only using one core, so I'm not sure why the wm froze during
>     >     > the calculation.  Maybe some interaction with the graphics card.  
>     >     >
>     >
>     >     Strange.
>     >     What is the zone setup?
>     >
>     >     For basic boards, the fill zone calculation time is not noticeable on my computer.
>     >     Noticeable calculation time (a few seconds) happens only for *large* boards.
>     >
>     >
>     >     > If we can't fix the polygons before this, we should probably have a dummy-check pop-up warning of
>     >     > long compute times.  The polygons get calculated twice on closing the zone edit window.  Once with
>     >     > the cursor showing busy and then again with no indication of work.  This happens again when
>     >     > highlighting.
>     >     >
>     >     > Best-
>     >     > Seth
>     >
>     >     Trying to guess if the calculation time is long is really not easy.
>     >
>     >
>     >     >
>     >     > 2018-03-13 8:48 GMT-07:00 jp charras <jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx> <mailto:jp.charras@xxxxxxxxxx
>     <mailto:jp.charras@xxxxxxxxxx>>
>     >     <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx> <mailto:jp.charras@xxxxxxxxxx
>     <mailto:jp.charras@xxxxxxxxxx>>>>:
>     >     >
>     >     >     Le 13/03/2018 à 14:05, Jon Evans a écrit :
>     >     >     > Nice work!  It may just be experimental, but it seems pretty close to a feature
>     for 6.0 to me :-)
>     >     >     > I gave it a try on various boards I have worked on recently and it seems to work
>     as advertised and
>     >     >     > is not noticeably slower than a solid fill on my computer.
>     >     >     >
>     >     >     > Assuming we work out any issues related to this, I thought of two features we
>     might want to add
>     >     >     > after this:
>     >     >     > 1) Allow 45-degree grids instead of just 90
>     >     >     > 2) Add a DRC check for stitching vias that would have connected to a solid fill
>     but are off-grid and
>     >     >     > thus disconnected in grid fill?
>     >     >     >
>     >     >     > -Jon
>     >     >
>     >     >     Attached the experimental grid pattern in zone fill patch, with 45 degree grid option.
>     >     >
>     >     >     >
>     >     >     > On Tue, Mar 13, 2018 at 4:10 AM, jp charras <jp.charras@xxxxxxxxxx
>     <mailto:jp.charras@xxxxxxxxxx> <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>>
>     >     >     <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>
>     <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>>>
>     >     <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx> <mailto:jp.charras@xxxxxxxxxx
>     <mailto:jp.charras@xxxxxxxxxx>> <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>
>     >     <mailto:jp.charras@xxxxxxxxxx <mailto:jp.charras@xxxxxxxxxx>>>>>
>     >     >     > wrote:
>     >     >     >
>     >     >     >     I wrote a purely experimental option to fill zones (copper and not copper)
>     with a grid patter.
>     >     >     >     It is only an experimental feature made mainly to know what issues can be
>     created by this feature.
>     >     >     >
>     >     >     >     The main issue is the fact polygons have much more corners, thus creating a
>     longer calculation time.
>     >     >     >     (However, grid pattern is expected to be used in specific cases)
>     >     >     >
>     >     >     >     It should be compatible with the current DRC.
>     >     >     >
>     >     >     >     Regards
>     >     >     >
>     >     >     >     --
>     >     >     >     Jean-Pierre CHARRAS
>     >
>     >
>     >
>     >     --
>     >     Jean-Pierre CHARRAS
>     >
>     >     _______________________________________________
>     >     Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers> <https://launchpad.net/%7Ekicad-developers
>     <https://launchpad.net/%7Ekicad-developers>>
>     >     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers> <https://launchpad.net/%7Ekicad-developers
>     <https://launchpad.net/%7Ekicad-developers>>
>     >     More help   : https://help.launchpad.net/ListHelp <https://help.launchpad.net/ListHelp>
>     <https://help.launchpad.net/ListHelp <https://help.launchpad.net/ListHelp>>
>     >
>     >
> 
> 
>     --
>     Jean-Pierre CHARRAS
> 
> 


-- 
Jean-Pierre CHARRAS


Follow ups

References