PNS doesn't respect "Minimum hole to hole"

Bug #1833214 reported by Frank Severinsen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Won't Fix
Medium
Tomasz Wlostowski

Bug Description

When Shoving the router happily stacks vias closer than minimum hole to hole.

tested with night and pre 5.1.3

Application: Pcbnew
Version: 6.0.0-unknown-b5cf03f~100~ubuntu19.04.1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.64.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh/0.8.6/openssl/zlib nghttp2/1.36.0 librtmp/2.3
Platform: Linux 5.0.0-17-generic 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: GCC 8.3.0 with C++ ABI 1013

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
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Tags: drc pcbnew pns
Frank Severinsen (shack)
tags: added: pcbnew pns
tags: added: doc
tags: added: drc
removed: doc
Changed in kicad:
milestone: none → 5.1.3
Jeff Young (jeyjey)
Changed in kicad:
status: New → Triaged
importance: Undecided → Medium
Jeff Young (jeyjey)
Changed in kicad:
assignee: nobody → Jeff Young (jeyjey)
status: Triaged → In Progress
Revision history for this message
Jeff Young (jeyjey) wrote :

@Frank, I've fixed this for stitching vias, which are by far the worst offenders. (For others, it would be very odd to have a hole-to-hole minimum that was larger than the via pad + the via-to-via clearance.)

If you have other instances that are still problematic, please post a board & steps to reproduce. (Not saying I can fix it -- the router is a bit of a mystery to me.)

Cheers,
Jeff.

Changed in kicad:
status: In Progress → Fix Committed
Revision history for this message
Frank Severinsen (shack) wrote :

@Jeff
I'm not sure if not shoving the stitching vias at all is a great solution.
I think that was one of the nicer things with the "real" stitch vias, compared to the via footprints I used in V4.

Slightly off topic, I made a patch some time ago, about only allowing stitch via placements if it respected minimum hole-to-hole. I think it drowned in the mail list, would you mind reviewing it?
https://lists.launchpad.net/kicad-developers/msg40736.html

Revision history for this message
Frank Severinsen (shack) wrote :

@Jeff @Tom
In case we decide stitch vias shouldn't be dragged, I believe this bug is practically solved as well:
https://bugs.launchpad.net/kicad/+bug/1833216

Revision history for this message
Jeff Young (jeyjey) wrote :

@Frank, the mechanics of the patch looks good, but that code has changed a lot. Do you want to rebase it, or would you like me to adapt it?

Revision history for this message
Frank Severinsen (shack) wrote :

It would be great if you can adapt it (if it aint too much trouble)

Revision history for this message
Jeff Young (jeyjey) wrote :

No worries.

Revision history for this message
Frank Severinsen (shack) wrote :

Hi Jeff

Looking at your commits I'm slightly confused.
It seems like you add the min hole to hole check to PNS in commit 6f44b00b2cd9a3ac85ab3c70670c8ebfd32d3997

and afterwards disable shoving of the stitch vias in commit
aa4d7682ca77bf9cbc388e215c73873fbd334373

Am I misunderstanding something? In case I'm not, I don't see why the shoving should be disabled

Revision history for this message
Jeff Young (jeyjey) wrote :

@Frank, the PNS router only uses the Collide routines under some circumstances. Pushing vias sadly isn't one of those cases.

Revision history for this message
Jeff Young (jeyjey) wrote :

I chased down all the other circumstances, so you should be able to push stitching vias for real now.

Revision history for this message
Frank Severinsen (shack) wrote :

@Jeff
Sounds like you have dine some major Improvements! Looking forward to trying them out :)

Revision history for this message
Frank Severinsen (shack) wrote :

@Jeff

could the PNS fixes be cherrypicked to V5.1? alternatively, shouldn't the milestones be changed to V6.0.0?

Revision history for this message
Tomasz Wlostowski (twlostow) wrote :

Hi Jeff,

I'm reopening the bug and marking it as won't fix.

Unfortunately checking hole-to-hole collisions causes a major issue in the springback algorithm (effectively rolling back every shove attempt to the initial state of the board if vias are involved). The P&S was not designed in mind with shoving anything within the same net.

Frankly, I don't see *ANY* reason to worry about hole-to-hole clearance in the P&S if we disallow shoving free (stitching) vias. It's the job of DFM (design for manufacturing) DRC rules.

Tom

Changed in kicad:
status: Fix Committed → Won't Fix
assignee: Jeff Young (jeyjey) → Tomasz Wlostowski (twlostow)
Revision history for this message
Jeff Young (jeyjey) wrote :

Bummer. It would have been nice to have been able to shove free/stitching vias.

But I agree that the hole-to-hole clearance issue only comes up if we did allow it.

Revision history for this message
Jeff Young (jeyjey) wrote :

@Tom, can you back the change out by hand? There was some variable renaming and commenting that went with it that I think would be good to keep.

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.