From 75fcdb3b08875944dcf4b08ec7d23a3fb38a1a9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20W=C5=82ostowski?= Date: Wed, 7 Aug 2019 23:44:35 +0200 Subject: [PATCH] router: disable hole to hole mechanical constraint in P&S until a suitable solution is found (as it is now it breaks springback) --- pcbnew/router/pns_item.cpp | 5 ----- pcbnew/router/pns_shove.cpp | 5 ++++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pcbnew/router/pns_item.cpp b/pcbnew/router/pns_item.cpp index e6ac6917a6..42230207a2 100644 --- a/pcbnew/router/pns_item.cpp +++ b/pcbnew/router/pns_item.cpp @@ -30,11 +30,6 @@ namespace PNS { bool ITEM::collideSimple( const ITEM* aOther, int aClearance, bool aNeedMTV, VECTOR2I* aMTV, const NODE* aParentNode, bool aDifferentNetsOnly ) const { - // hole-to-hole is a mechanical constraint (broken drill bits) not an electrical one, so - // it must be checked before checking aDifferentNetsOnly - if( aParentNode->GetRuleResolver()->CollideHoles( this, aOther, aNeedMTV, aMTV ) ) - return true; - // same nets? no collision! if( aDifferentNetsOnly && m_net == aOther->m_net && m_net >= 0 && aOther->m_net >= 0 ) return false; diff --git a/pcbnew/router/pns_shove.cpp b/pcbnew/router/pns_shove.cpp index a357ca99dd..03a442ab9e 100644 --- a/pcbnew/router/pns_shove.cpp +++ b/pcbnew/router/pns_shove.cpp @@ -776,7 +776,10 @@ SHOVE::SHOVE_STATUS SHOVE::onCollidingVia( ITEM* aCurrent, VIA* aObstacleVia ) // hole-to-hole is a mechanical constraint (broken drill bits), not an electrical // one, so it has to be checked irrespective of matching nets. - holeCollision = rr->CollideHoles( ¤tLine->Via(), aObstacleVia, true, &mtvHoles ); + + // temporarily removed hole-to-hole collision check due to conflicts with the springback algorithm... + // we need to figure out a better solution here - TW + holeCollision = false; //rr->CollideHoles( ¤tLine->Via(), aObstacleVia, true, &mtvHoles ); } // These aren't /actually/ lengths as we don't bother to do the square-root part,