← Back to team overview

kicad-developers team mailing list archive

Re: Zone filling & display speed improvements

 

On 05/12/17 04:48, Henner Zeller wrote:
> Thanks Tom!
> 
> Nice, the [tom-faster-zones-dec01] branch works well and very fast. I
> have not seen any crashes anymore.
> 
> There is a leftover method mentioned in pcbnew/class_zone.h:
>   void RemoveInsulatedCopperIslands()
> .. which is not used/implemented so should be removed from the header.
> 
> One thing I noticed: since it is sooo fast now, the progress-popup is
> actually quite annoying as it just briefly blinks up and vanishes
> again (at least for the board I was testing it with). Maybe it should
> only show up if the operation is still ongoing after a second and less
> than 50% is done at that time ?
> 
> Another thought: if zone filling can be that fast, maybe we should
> only store zone outlines in the *.kicad_pcb file, not the
> (filled_polygon ...) that are now also stored. It is cheap to just
> recreate them when loading the file.
> Backround: This can save a lot of disk space as the filled polygons
> tend to create a lot of points and tend to completely change with tiny
> changes to other elements on the board, such as a moved via. This
> means that version control has to store huge changes every time and it
> is hard to see what actual changes are happening just looking at the
> diff (I like to inspect diffs before checking something in, and this
> makes it hard. Also it makes it hard to git merge kicad-pcbs).
> Downside is, that everyone loading a file has to pay the extra cost to
> create the zones (e.g. gerber generation). Maybe it could be a
> heuristic to not store the filled polygons if recreating it takes less
> than a second or so.

Hi Henner,

I wouldn't change the file format for such purpose (I'm opposed to using
textual diff for graphical files, like PCBs). Also I don't think these
days saving a few megabytes is worth it.

Concerning the heuristics - It's a good idea, but for the moment I have
a ton of P&S issues to fix before the V5 goes out. Also I'm a bit
discouraged to write any GUI code after many failed attempts to update a
wxProgressDialog from an OpenMP context.

Tom




References