← Back to team overview

kicad-developers team mailing list archive

Re: [RFC] Experimental grid pattern in zone fill

 

OK, Makes sense.

On Tue, Mar 13, 2018 at 4:25 PM, jp charras <jp.charras@xxxxxxxxxx> wrote:

> 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
>
> _______________________________________________
> 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
>

Follow ups

References