← Back to team overview

kicad-developers team mailing list archive

Re: Live zone filling

 

I don't think it's an either/or, I think you do both in an ideal world:
mark parts dirty, and regenerate in another thread. This will also allow
live recheck of DRC to be sped up by only rechecking objects that have been
marked dirty.

-Jon

On Sep 19, 2017 11:01, "Clemens Koller" <cko@xxxxxxxxx> wrote:

> On 2017-09-19 15:59, Jon Evans wrote:
> > What I want to investigate first is how difficult it would be to
> subdivide a zone into chunks that can be generated independently.  If this
> is done, than the chunks can be done one after the other in a
> single-threaded world, or split up between threads if threading is
> possible.  But, the key advantage is that if you drag a track, you can just
> mark the chunks that are near the action as dirty, and not need to
> regenerate the entire zone.
>
> Splitting the zones up in chunks sounds preferrable. Regenerating whole
> zone might not scale well with bigger designs.
> Instead of marking chunks as dirty + regen after dragging the track, it
> might be an idea to regenerate/recalculate them on the fly/in realtime in
> another thread... :-)
>
> Regards,
>
> Clemens
>
>
>
> >
> > -Jon
> >
> > On Tue, Sep 19, 2017 at 9:56 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
> >
> >     On 9/19/2017 9:53 AM, Simon Küppers wrote:
> >     > I agree with JP, however I see a chance for KiCad, where this
> feature
> >     > might work better than in other EDA packages.
> >     > I think the only way to get this feature to perform well is to use
> all
> >     > available processor cores.
> >     > Maybe it is enough to distribute all the zones to the processor
> cores.
> >     > However i do not know if the KiCad sources allow this kind of
> >     > multithreading.
> >
> >     Multi-threading inside context switching.  That could be interesting!
> >
> >     >
> >     > Best Regards
> >     >
> >     >
> >     > Am 2017-09-19 15:26, schrieb Jon Evans:
> >     >> Yes, I used Xpedition in a past life and one of my missions is to
> >     >> bring some of its cool features to KiCad :-)
> >     >>
> >     >> JP, I will do some tests on more complex boards and look in to
> >     >> possible solutions.
> >     >> I think this is quite a big challenge but want to take it on,
> because
> >     >> I think some of the underlying work needed will also be very
> useful
> >     >> for other things (like live DRC checking, autorouting, etc)
> >     >>
> >     >> -Jon
> >     >>
> >     >>> On Tue, Sep 19, 2017 at 8:35 AM, Clemens Koller <cko@xxxxxxxxx
> <mailto:cko@xxxxxxxxx>>
> >     >>> wrote:
> >     >>>
> >     >>>> Hello, Jon!
> >     >>>>
> >     >>>> Just for Reference: That's how Mentor Expedition is exposing
> >     >>>> dynamic plane generation:
> >     >>>> https://www.youtube.com/watch?v=n6TskayF1Oc <
> https://www.youtube.com/watch?v=n6TskayF1Oc> [1]
> >     >>>>
> >     >>>> I would be glad to test these things in Kicad...
> >     >>>>
> >     >>>> Regards,
> >     >>>>
> >     >>>> Clemens
> >     >>>>
> >     >>>> On 2017-09-19 02:18, Jon Evans wrote:
> >     >>>>> Hi all,
> >     >>>>>
> >     >>>>> I've been wanting to take a look at live zone filling, as it's
> a
> >     >>>> really useful feature that some professional EDA tools have.  If
> >     >>>> zones refill in real time as you move things around, it's easy
> to
> >     >>>> make sure you leave enough space for your fill to succeed.
> >     >>>>>
> >     >>>>> I made a quick patch to pcbnew showing this after an
> interactive
> >     >>>> trace move (see attached gif)
> >     >>>>> For this board and my computer, refilling is fast enough that
> >     >>>> this isn't a problem (I disabled the pop up window showing a
> >     >>>> progress bar for the "refill all zones" command).
> >     >>>>>
> >     >>>>> Can anyone point me to (or send me) some really complicated
> >     >>>> KiCad designs in terms of zone fills?  Do people have designs
> that
> >     >>>> take a while to fill even on recent computers?
> >     >>>>>
> >     >>>>> If I proposed this as a patch, I'd make it an option (disabled
> >     >>>> by default) in case it slows down old computers, but I think if
> >     >>>> zone filling for moderately complex boards still takes a while
> >     >>>> even on fast modern computers, we should look at optimizing it
> so
> >     >>>> that we can achieve real-time filling on modern computers.
> >     >>>>>
> >     >>>>> Thanks,
> >     >>>>> Jon
> >     >>>>>
> >     >>>>>
> >     >>>>
> >     >>>>> _______________________________________________
> >     >>>>> Mailing list: https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers> [2]
> >     >>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:
> kicad-developers@xxxxxxxxxxxxxxxxxxx>
> >     >>>>> Unsubscribe : https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers> [2]
> >     >>>>> More help   : https://help.launchpad.net/ListHelp <
> https://help.launchpad.net/ListHelp> [3]
> >     >>>>>
> >     >>
> >     >>
> >     >>
> >     >> Links:
> >     >> ------
> >     >> [1] https://www.youtube.com/watch?v=n6TskayF1Oc <
> https://www.youtube.com/watch?v=n6TskayF1Oc>
> >     >> [2] https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers>
> >     >> [3] https://help.launchpad.net/ListHelp <
> https://help.launchpad.net/ListHelp>
> >     >> _______________________________________________
> >     >> Mailing list: https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers>
> >     >> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:
> kicad-developers@xxxxxxxxxxxxxxxxxxx>
> >     >> Unsubscribe : https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers>
> >     >> More help   : https://help.launchpad.net/ListHelp <
> https://help.launchpad.net/ListHelp>
> >     >
> >     > _______________________________________________
> >     > Mailing list: https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers>
> >     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:
> kicad-developers@xxxxxxxxxxxxxxxxxxx>
> >     > Unsubscribe : https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers>
> >     > More help   : https://help.launchpad.net/ListHelp <
> https://help.launchpad.net/ListHelp>
> >
> >     _______________________________________________
> >     Mailing list: https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers>
> >     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:
> kicad-developers@xxxxxxxxxxxxxxxxxxx>
> >     Unsubscribe : https://launchpad.net/~kicad-developers <
> https://launchpad.net/~kicad-developers>
> >     More help   : https://help.launchpad.net/ListHelp <
> https://help.launchpad.net/ListHelp>
> >
> >
> >
> >
> > _______________________________________________
> > 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
> >
>
> _______________________________________________
> 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
>

References