Bug regarding clearance in pads set as no-connect-to-copper-zones

I wonder whether there’s something I’m not seeing, or whether this is a bug (or intended feature, for a reason that I can’t see / understand)

See attached project (I manually deleted the bak and fp-cache-info files)
demo-bug-clearance.zip (4.5 KB)

“Global” default clearance is 0.2mm. Copper zone is for net GND, has “solid” connection to pads, and 0.25mm clearance.

R2 has all defaults, so its GND pin connects to the zone, and the other pin shows the outline of the default clearance at 0.2mm, but the actual clearance goes a bit farther (the 0.25mm zone clearance).

However, in R1, I specified a clearance (for the footprint) of 0.3mm, and for pad 2 (the one that connects to GND), I set its Connect to copper zones = “none”.

Why the weird actual clearance of R1’s pin 2 (GND)? (something around 0.38 or 0.39mm)

No matter what the settings for the footprint or for pin 1 (the one that is not the same net as the zone), its clearance is always what it has to be. I’m talking about setting a clearance for the footprint or leaving it as default, setting a clearance for pin 1 or leaving it as “from parent footprint”, setting pin 1 “connect to copper zone” as “from parent” or setting it to “none” … in all cases, pin 1’s clearance is fine; either the default 0.2mm, or the zone’s clearance, or the specified footprint clearance, or the specified pin 1’s clearance.

Funny case: even if I set the footprint’s clearance to something large, say 0.5mm, and leave pin 2’s clearance as default, with zone’s clearance at 0.25mm, I still get the same weird 0.38~0.39 mm actual clearance, even though the outline of the clearance is farther, at 0.5mm.

The behaviour seems to depend on other factors; for a larger actual project I’m working on, it would seem like in that case, the actual clearance is the sum of the pin’s (or footprint’s) clearance and the zone’s clearance. However, I can’t reproduce that exact behaviour in this “minimal” project (and I cannot post that layout, as it is part of an actual research project for which I cannot disclose any details at this time)

Can someone shed some light on this? Either what am I missing / doing wrong, or if it is indeed a bug: any workarounds?

  • In pcbnew right click on R1 and ‘Update Footprint…’.
    This will reassign values as defined in library.
  • R1 pin 2 pad connection is set to none.
  • Select pin 2 press E for edit. Change in ‘Local Clearance and Settings’

Did you import those resistors by any chance? (eagle?)

No. Just created a “minimal” project that demonstrates the issue. Everything is from KiCAD’s built-in libraries.

BTW, I forgot to include in the OP: I’m working with KiCAD 5.1.5 on Ubuntu 18.04:

Application: KiCad
Version: 5.1.5-52549c5~84~ubuntu18.04.1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.58.0 OpenSSL/1.1.1 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 5.3.0-26-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
    Boost: 1.65.1
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.58.0
    Compiler: GCC 7.4.0 with C++ ABI 1011

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=ON
    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
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.