kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #01870
Re: Zone filling optimizations, first results
-
To:
kicad-devel@xxxxxxxxxxxxxxx
-
From:
"wafeliron" <wafeliron@...>
-
Date:
Thu, 09 Oct 2008 20:33:46 -0000
-
In-reply-to:
<48DE0687.4080802@...>
-
User-agent:
eGroups-EW/0.82
I think it would be more nice to "lock" PCBnew from being changed and
show some kind of progress dialog or something like that. Because i
have also the same with Altium Designer... i dont see its rendering
the fill, also a option could be to disable/enable render after redraw
track/via/pad/module.
Jerry
--- In kicad-devel@xxxxxxxxxxxxxxx, "Ing. Gabriele Oberhammer"
<gabriele@...> wrote:
>
>
>
> Magnus Beischer wrote:
>
> > I have another approach that might be worth looking at. One question
> > we might ask is:
> > - What can be done in the background (not in the GUI thread) that
> > helps the user to accept long processing times?
> >
> > The idea is that as a user I might accept long processing times if for
> > instance I can keep working immediately after I have started a zone
> > fill (in a restricted way). For my own work I'd be happy if I could
> > start to fill a zone, move to the next zone and start to fill that
> > one, change layer and start to fill zones on that layer, take a break
> > from work and come back and see that all the zones are filled in a
> > beautifull way.
> >
>
> First of all, sorry for the late reply, I was on vacation :-)
>
> I had already though about using a separate thread, but as others
> already stated, this would cause problems. Basically all the
> optimizations are done iterating through the linked list of zone
tracks,
> so bad things could happen if you add/remove zone tracks to/from the
> list while the optimization is running in background. You can avoid
this
> disabling the zone user operations during optimization, but I don't
like
> this approach.
>
> > Another idea is that as a user I might want to control in my settings
> > if I want "fast zone generation", "beautiful zone edges" or "optimize
> > for redrawing speed".
> >
>
> I agree, this should be way to go. I'm still doing some tests and
trying
> some optimizations to speed it up a bit. But when the patch will be
> ready and the main developers think it's worth adding in Kicad sources,
> I'll be happy to add all the needed options to the zone properties
> dialog (or in any other better place).
>
> We could have two approaches: do the chosen optimizations every time a
> zone is filled or apply them just once before plotting the gerbers.
> It is very difficult to decide!
> For small boards there is very little difference, because zone
> optimizations are fast so is worth doing it every time a zone is
filled.
> But in small boards zone redrawing on the screen is fast too, so zone
> optimization will less usefull (but it will reduce file size and memory
> consumption).
> For big boards more testing is needed. I work only on small boards, so
> for me is difficult to say if, for example, a zone fill which takes two
> minutes to complete is worth the faster zone screen redraw...
>
> So now I'm separating the optimization code (the one that reduce the
> number of segments laving the final gerber zone layout the same) from
> the code that beautify (smooth) the zone margins. This way we obtain
> more flexibility and anyone would decide what is the best for every
board.
> Fore example on a medium board one can decide to reduce the number of
> segments every time he fills a zone and to do the margin smoothing only
> once before plotting.
>
> Could someone send me some 'big' board for testing purposes? (only
track
> and zones, no modules, etc) ?
>
> For people working on big boards: may I assume that video.brd in the
> demos is sufficiently complex that I can use it for testing or you
> design much more complicated boards than that?
>
>
> PS: I'm also working to add teardrops for pads ;-)
>
References