← Back to team overview

kicad-developers team mailing list archive

Re: Filling Zones with the Kicad 5 python API


Hi Laen-

Unfortunately, zone filling was factored out into a second file in Dec 2017
and it looks like you are the first person to note that the python SWIG
includes did not update with it.  So, at the moment, KiCad v5 doesn't have
a zone fill command in python.  I'll see about updating that for v5.0.1.

Once we fix this, the python command will change as we now have a dedicated
zone_filler class.  The calling structure will also change.  The following
will be the new routine to achieve this:

import pcbnew
board = pcbnew.GetBoard()
filler = pcbnew.ZONE_FILLER(board)
zones = board.Zones()


Am Mi., 8. Aug. 2018 um 11:30 Uhr schrieb James Neal <laen@xxxxxxxxxxx>:

> Hey!
> We use the kicad python library to CAM boards for manufacturing.   One of
> the big issues we see in customer uploads is they fail to fill zones before
> saving the file, so we use this function:
>   def __Fill_All_Zones(self):
>     # Kicad doesn't refresh ground pours automatically during plotting
>     # This can lead to unusual errors if minor adjustments were made,
>     # and the designer didn't manually refresh.
>     # This glorious function added thanks to Adam Wolf
>     for zone_index in xrange(0, self.board.GetAreaCount()):
>       zone = self.board.GetArea(zone_index)
>       if not zone.GetIsKeepout():
>         #__Fill_Zone(self.board, zone)
>         zone.ClearFilledPolysList();
>         zone.UnFill();
>         if zone.GetIsKeepout():
>             return
>         zone.BuildFilledSolidAreasPolygons(self.board);
>         zone.SetIsFilled(True)
> It looks like zone.BuildFilledSolidAreasPolygons has been removed in the
> KiCAD 5 python API.  Was it replaced with something else, or is there a new
> way to do this?
> Thanks!
> -Laen
> OSH Park
> _______________________________________________
> 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