diff --git a/pcbnew/router/pns_shove.cpp b/pcbnew/router/pns_shove.cpp index 9b3e44d30c..f5a83fcd51 100644 --- a/pcbnew/router/pns_shove.cpp +++ b/pcbnew/router/pns_shove.cpp @@ -1012,8 +1012,7 @@ SHOVE::SHOVE_STATUS SHOVE::onCollidingVia( ITEM* aCurrent, VIA* aObstacleVia ) const VIA& currentVia = currentLine->Via(); int viaClearance = getClearance( ¤tVia, aObstacleVia ); - viaCollision = aObstacleVia->Shape()->Collide( currentVia.Shape(), viaClearance, - &mtvVia ); + viaCollision = aObstacleVia->PushoutForce( m_currentNode, ¤tVia, mtvVia ); } } else if( aCurrent->OfKind( ITEM::SOLID_T ) ) @@ -1024,7 +1023,7 @@ SHOVE::SHOVE_STATUS SHOVE::onCollidingVia( ITEM* aCurrent, VIA* aObstacleVia ) // fixme: we may have a sign issue in Collide(CIRCLE, LINE_CHAIN) if( viaCollision ) - mtv = mtvVia; + mtv = -mtvVia; else if ( lineCollision ) mtv = -mtvLine; else