Wrong DRC and rendering of THT pads with selective inner copper layers
Description
When THT pad is configured to occupy only layers, where it is connected (top left in screenshot) what I understand as to not generate annual rings on layers without connection, zones and traces can be closer to hole. PCBnew displays annual rings incorrectly on innner layers where ring is not existent (right on screenshot). Drc also reacts with clearance violation (2nd screenshot). After exporting, ring is not there (bottom left on screenshot) and clearance is ok.
Config vs pcbnew vs gerbers (inner layer)
DRC report
It would be nice, if DRC could tell on which layer problem exists.
Steps to reproduce
- have footprint with THT pad with copper enabled on F.Cu,B.cu and connected layers only
- pour copper polygon of different net into inner layer
- observe presence of copper ring around THT pad in inner layer even though, there should not be one
- Run DRC and notice clearance violation (one error per inner layer with foreign net copper pour), it corresponds what we see in pcbnew
- Export gerbers and observe absence of annual ring in inner layer and no obvious clearance violation. (correct)
You can test it in attached PCB file. Try enabling/disabling various layers in copper zone settings. test.kicad_pcb
KiCad Version
Application: KiCad
Version: (5.99.0-7081-g99da663e82), release build
Libraries:
wxWidgets 3.0.5
libcurl/7.73.0 OpenSSL/1.1.1h zlib/1.2.11 zstd/1.4.5 libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.41.0
Platform: Linux 5.9.6-arch1-1 x86_64, 64 bit, Little endian, wxGTK, , x11
Build Info:
Date: Nov 19 2020 05:01:38
wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.72.0
OCC: 7.5.0
Curl: 7.73.0
ngspice: 33
Compiler: GCC 10.2.0 with C++ ABI 1014
Build settings:
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
KICAD_USE_OCC=ON
KICAD_SPICE=ON