PcbNew: can not place vias at the end of a trace if there is a keepout area for "no trace" on any other layer.

Bug #1819186 reported by Gaetano
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
KiCad
Expired
Medium

Bug Description

Defining a keepout area on a ground plane, flagging in the keepout options only the “No tracks” option, PcbNew doesn’t allow to place stitching vias on that area.
Also, exporting a Specctra dsn file and trying to route using Freerouting software, produces the same effect: Freerouting doesn’t place tracks on that keepout area, as requested in the keepout area options, but also doesn’t place stitching vias on that zone.

Application: pcbnew
Version: (5.0.2)-1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Seth Hillbrand (sethh) wrote :

I am unable to recreate this. Can you test with a nightly build of 5.1 9https://kicad-downloads.s3.cern.ch/index.html?prefix=windows/nightly/)

Application: kicad
Version: (5.1.0-rc2-48-g26d04269ac), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.64.0 OpenSSL/1.1.1a zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
Platform: Linux 4.19.0-2-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
    Boost: 1.67.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.64.0
    Compiler: Clang 7.0.1 with C++ ABI 1002

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

Changed in kicad:
status: New → Incomplete
Revision history for this message
David Pearce (halzia) wrote :

I can replicate this on a recent Nightly.
Via placement is permitted and plane fill, but I still cannot place the via.

Application: kicad
Version: (5.1.0-rc2-39-gd2d210117), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Seth Hillbrand (sethh) wrote :

Could you make a video of how you are doing this? I might be trying this differently

Revision history for this message
Rene Poeschl (poeschlr) wrote :

@sethh i discovered that no net traces ignore keepouts so my guess is that your vias do not have a net assigned while the ones by @halzia have one.

Revision history for this message
Seth Hillbrand (sethh) wrote :

Maybe. But how do you get a via with a net in there with no track? Placing free stitching vias works for me

Revision history for this message
Rene Poeschl (poeschlr) wrote :

I tested this in both nightly and stable now. It seems i can always add a via with the add via tool with the setup described here. So yes we will need further info from @halzia.

Revision history for this message
David Pearce (halzia) wrote :

A trivial example.
The B layer is a GND zone with a keep out zone, no tracks, but vias and copper fill allowed.
I draw a track from R1 to the left and try to drop a via to the plane below by pressing "V", but not allowed.
Using the via tool on the RH toolbar does work.
Strangely the via tool would not work for me either a few hours ago.

Revision history for this message
David Pearce (halzia) wrote :
Revision history for this message
Gaetano (gaetanocirillo) wrote :
Revision history for this message
Rene Poeschl (poeschlr) wrote : Re: PcbNew: can not place vias inside "no traces" keepout

As expected you try to place a trace. KiCad does not allow that in a "no traces" keepout area.

There is a separate tool to add stitching vias (one button below the interactive router button.)

summary: - PcbNew: keepout area options get ignored
+ PcbNew: can not place vias inside "no traces" keepout
Revision history for this message
Rene Poeschl (poeschlr) wrote :

You seem to be allowed to create a trace from the inside of the keepout and end it on the outside. This is at least strange if not a bug. (Might need another separate bug report.)

Revision history for this message
Gaetano (gaetanocirillo) wrote :

@Rene
"You seem to be allowed to create a trace from the inside of the keepout and end it on the outside. This is at least strange if not a bug."

Sorry, but maybe I'm missing your point; The keepout zone in my video is for the BOTTOM layer, and the trace I drawn in that video starting inside the keepout area is on the TOP layer, hence I don't see anything wrong in this behaviour. Right?

"As expected you try to place a trace. KiCad does not allow that in a "no traces" keepout area."

Uhmmm...lets me disagree on this; As I already said just above, I drawn the trace starting in the keepout zone, it's true, but on the TOP layer; and that keepout zone should forbid placing tracks in the BOTTOM layer, not in the TOP. So it behaves as expected from that point of view; then, I try to place a via for stitching to the bottom ground plane, and also that should be allowed, because "forbid via" option is disabled in that keepout zone. Only after this action, hence allowing placing a via to join the ground plane, it shouldn't allow drawing on that plane, because now you're trying to draw tracks on the bottom layer, and that isn't allowed because of my option settings. What's wrong with my reasoning?

Revision history for this message
David Pearce (halzia) wrote :

To me saying that the topside track cannot be finished by pressing "V" and connecting immediately to its plane because this means creating a track in the keep out does not seem correct. Obviously extending a track in the keep out zone from the zone should not be allowed and seems to be the case.

Revision history for this message
Rene Poeschl (poeschlr) wrote :

Ok i have a better understanding of the issue now.

I did miss the fact that the keepout was on the bottom layer.

I now understand that the bug affects placing vias at the end of a trace if there is a keepout area on a different layer. @sethh i think we now have all the information needed so this can move from incomplete to whatever you deem appropriate.

I can reproduce this behavior on yesterdays nightly as well. (I tested it on a 4 layer setup and all layers behave the same.)

summary: - PcbNew: can not place vias inside "no traces" keepout
+ PcbNew: can not place vias at the end of a trace if there is a keepout
+ area for "no trace" on any other layer.
Seth Hillbrand (sethh)
Changed in kicad:
status: Incomplete → Triaged
importance: Undecided → Medium
assignee: nobody → Seth Hillbrand (sethh)
milestone: none → 5.1.1
Changed in kicad:
milestone: 5.1.1 → 5.1.2
Changed in kicad:
milestone: 5.1.2 → 5.1.3
Changed in kicad:
milestone: 5.1.3 → 5.1.4
Changed in kicad:
milestone: 5.1.4 → 5.1.5
Changed in kicad:
milestone: 5.1.5 → 5.1.6
Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

KiCad bug tracker has moved to Gitlab. This report is now available here: https://gitlab.com/kicad/code/kicad/-/issues/1799

Changed in kicad:
status: Triaged → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.