Edge connectors shouldn't trigger edge clearance violations.

Fixes https://gitlab.com/kicad/code/kicad/issues/14199

(cherry picked from commit 33e7c78533)
This commit is contained in:
Jeff Young 2023-03-07 12:21:23 +00:00
parent 7fa758358f
commit 154f64dae3
1 changed files with 11 additions and 6 deletions

View File

@ -283,7 +283,7 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
bool testSilk = !m_drcEngine->IsErrorLimitExceeded( DRCE_SILK_EDGE_CLEARANCE );
if( !testCopper && !testSilk )
return false; // We're done
return false; // All limits exceeded; we're done
if( !reportProgress( ii++, count, progressDelta ) )
return false; // DRC cancelled; we're done
@ -291,10 +291,15 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
if( isInvisibleText( item ) )
return true; // Continue with other items
if( item->Type() == PCB_PAD_T
&& static_cast<PAD*>( item )->GetProperty() == PAD_PROP::CASTELLATED )
if( item->Type() == PCB_PAD_T )
{
return true;
PAD* pad = static_cast<PAD*>( item );
if( pad->GetProperty() == PAD_PROP::CASTELLATED
|| pad->GetAttribute() == PAD_ATTRIB::CONN )
{
return true; // Continue with other items
}
}
const std::shared_ptr<SHAPE>& itemShape = item->GetEffectiveShape();