← Back to team overview

kicad-developers team mailing list archive

Re: Zone fill issue


I would not want to accept this patch, or any like it. However, we could put it into the repository for future use.

My concern:
Zone filling and drawing is way too slow now. This patch would affect the basic drawing on screen of zones also I presume.

I have some very elaborate boards for which it takes 3 minutes to fill zones even on a fast computer. It takes 2 seconds to draw these boards on screen onces the zones rasters are in place, again on a fast computer.

I cannot tolerate any slower zone drawings.

If and when we move the zone raster generation to the gerber generation process/step, then an improvement like this would be worth considering.

Until then, perhaps the electrons will not complain about their playground having a ragged fence around it.


I wrote a small patch for starting to address this issue.
You can look at the results on this images, where the *_ORIG images are generated using Kicad SVN 1241 and the corresponding *_SMOOTH images are generated with the patched version. The board used for the screenshots is pic_programmer.brd from the demos:


(Sorry, but I did not had the time to set up a proper html page :-) )

What the patch basically does is to connect every start/end point of a zone track to any other start/end point nearer than 'g_GridRoutingSize'

If you find it useful, I can post the patch in few days (after modifying it to obey Kicad coding standards).

General considerations:

- this is my first patch to Kicad, so be gentle... :-)

- we can achieve good results with 45degree zones and with box-shaped regions

- with circular regions (like the ones around pads and thermals) its difficult to say if the result is better (i.e. more 'professional') or worse then the unpatched version

- pheraps we could achieve better results if we permit to the zone tracks to overlay for 1/2, like you can see in the images from http://beischer.com/opencad/fillzone.htm

- it adds a lot of small tracks to the zone (I'll do more test to figure out how many more in percentage)

- it is quite slow, so it would be better to use this function only once, just before plotting the gerbers

- as far as I can see, there should be no worries regarding wrong connections (i.e. connecting zones that should not be connected) if 'g_Grid_RoutingSize' is smaller then the clearance. I've run the DRC several times and with different fill grid sizes without finding any problem...

Best regards, Gabriele


Yahoo! Groups Links

Follow ups