Router: Do not collide items within a net tie footprint

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13909
This commit is contained in:
Jon Evans 2023-02-14 21:08:30 -05:00
parent e5b376721d
commit 2d7c5c5c0f
1 changed files with 11 additions and 0 deletions

View File

@ -235,6 +235,17 @@ bool PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion( const PNS::ITEM* aItem,
std::shared_ptr<DRC_ENGINE> drcEngine = m_board->GetDesignSettings().m_DRCEngine;
BOARD_ITEM* collidingItem = aCollidingItem->Parent();
FOOTPRINT* collidingFp = static_cast<FOOTPRINT*>( collidingItem->GetParentFootprint() );
FOOTPRINT* itemFp = aItem->Parent()
? static_cast<FOOTPRINT*>( aItem->Parent()->GetParentFootprint() )
: nullptr;
if( collidingFp && itemFp && ( collidingFp == itemFp ) && itemFp->IsNetTie() )
{
// Two items colliding from the same net tie footprint are not checked
return true;
}
if( drcEngine && collidingItem )
{
return drcEngine->IsNetTieExclusion( aItem->Net(), ToLAYER_ID( aItem->Layer() ),