Fill zone redraws in Python API ignores Net Class Clearance of other signals
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Critical
|
Seth Hillbrand |
Bug Description
When using the Python API to redraw fill zones, the Net Class Rules for adjacent signals are ignored, and the fill zone is re-drawn using the Polygon Isolation. This results in filling areas that should not have been filled.
When using the UI's fill zone commands, the Net Class Rules are honored. This means that redrawing and plotting generate different output when using the API and the UI.
Notably, some DRC rules are still followed consistently in both, such as Pad Local Isolation (shown on 2 pads in this file).
The API code used for filling zones is:
filler = ZONE_FILLER(board)
zones = board.Zones()
filler.
(Note, this will only work in Kicad 5, due to changes in zone fill APIs between 4 and 5)
The attached zip contains
- .Kicad PCB file demonstrating the issue
- Gerber files generated by the UI and python script
- A modified plot_gerbers.py script which fills zones before plotting.
- Images to show the difference between the gerbers , with blue representing the over-filled regions of the board.
The differences can also be seen here: https:/
This bug exists in both Kicad 4 and 5,and confirmed on the following Kicad 5 version:
Application: pcbnew
Version: 5.0.1-33cea8e~
Libraries:
wxWidgets 3.0.4
libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 4.15.0-36-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,
Boost: 1.65.1
OpenCASCADE Community Edition: 6.9.1
Curl: 7.58.0
Compiler: GCC 7.3.0 with C++ ABI 1011
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON
Changed in kicad: | |
status: | New → In Progress |
importance: | Undecided → Critical |
assignee: | nobody → Seth Hillbrand (sethh) |
milestone: | none → 5.1.0 |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
Looks like the kicad_pcb file is missing. Can you upload it?