Pad inside isolated zone "island" is not marked as unconnected
Description
I somehow created a PCB with a ground pour with a GND pad on an isolated island that isn't marked as unconnected to other GND pads on the board. This is a result of the GND zone pour having "filled_polygons" on internal layers even though the PCB stack-up is only 2 layers. This causes DRC to believe some isolated GND pad is connected to the rest of the board through the non-existent layers and as such no DRC violation is reported, and no unconnected signals are reported.
The zone property panel doesn't show the non-existent internal layers, so I am unable to deselect them. The only way I've found to fix this is to manually edit the PCB file, or to set the board to multi layer stack-up, deselect the internal layers in the zone property panel, and then return the stack-up back to 2 layers.
I am not sure how the PCB got into this state. I suspect it has something to do with the board previously using a 4 layer stack-up that was eventually changed to 2 layers, however I've tried to recreate the issue and it looks like this action normally takes care of this situation. Regardless, I think it would be ideal for the DRC to report that zones have non-existent copper layers, and for the zone re-pour action to remove the non-existent layers.
Steps to reproduce
I'm not sure how I got my original PCB into such a state, and wasn't able to recreate the issue. I had to manually recreate the behavior in an example project. (Test.zip)
- Create the PCB in KiCad on a four layer board and fill the GND pour on all layers.
- Open the pcb in a text editor and remove the Inner Copper and prepreg layers from the stackup.
- Opn the PCB back in Kicad.
- Run DRC and note that there are no unconnected signals reported.
- Repour the zones and note that there are still no unconnected signals reported.
Note I didn't do manual editing when I originally ran into this.
KiCad Version
Application: KiCad x64 on x64
Version: 8.0.0, release build
Libraries:
wxWidgets 3.2.4
FreeType 2.12.1
HarfBuzz 8.3.0
FontConfig 2.14.2
libcurl/8.5.0-DEV Schannel zlib/1.3
Platform: Windows 11 (build 22631), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
Date: Feb 23 2024 02:24:15
wxWidgets: 3.2.4 (wchar_t,wx containers)
Boost: 1.83.0
OCC: 7.7.1
Curl: 8.5.0-DEV
ngspice: 42
Compiler: Visual C++ 1936 without C++ ABI
Build settings: