mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-04-21 19:03:45 +00:00
pcbnew: distinguish between KEEPOUT and PLACEMENT rule areas in the DRC (ignore PLACEMENT for the moment)
This commit is contained in:
parent
c4d5c99b42
commit
60ba72ad5c
@ -106,6 +106,9 @@ static bool isKeepoutZone( const BOARD_ITEM* aItem, bool aCheckFlags )
|
||||
if( !zone->GetIsRuleArea() )
|
||||
return false;
|
||||
|
||||
if( zone->GetRuleAreaType() != RULE_AREA_TYPE::KEEPOUT )
|
||||
return false;
|
||||
|
||||
if( aCheckFlags )
|
||||
{
|
||||
if( !zone->GetDoNotAllowTracks()
|
||||
|
@ -171,7 +171,7 @@ void DRC_INTERACTIVE_COURTYARD_CLEARANCE::testCourtyardClearances()
|
||||
|
||||
for( ZONE* zone : m_board->Zones() )
|
||||
{
|
||||
if( !zone->GetIsRuleArea() || !zone->GetDoNotAllowFootprints() )
|
||||
if( !zone->GetIsRuleArea() || zone->GetRuleAreaType() != RULE_AREA_TYPE::KEEPOUT || !zone->GetDoNotAllowFootprints() )
|
||||
continue;
|
||||
|
||||
bool disallowFront = ( zone->GetLayerSet() & LSET::FrontMask() ).any();
|
||||
|
@ -90,7 +90,9 @@ bool DRC_TEST_PROVIDER_DISALLOW::Run()
|
||||
{
|
||||
ZONE* zone = dynamic_cast<ZONE*>( item );
|
||||
|
||||
if( zone && zone->GetIsRuleArea() && zone->GetDoNotAllowCopperPour() )
|
||||
if( zone && zone->GetIsRuleArea()
|
||||
&& zone->GetRuleAreaType() == RULE_AREA_TYPE::KEEPOUT
|
||||
&& zone->GetDoNotAllowCopperPour() )
|
||||
antiCopperKeepouts.push_back( zone );
|
||||
else if( zone && zone->IsOnCopperLayer() )
|
||||
copperZones.push_back( zone );
|
||||
@ -260,7 +262,7 @@ bool DRC_TEST_PROVIDER_DISALLOW::Run()
|
||||
{
|
||||
ZONE* zone = dynamic_cast<ZONE*>( item );
|
||||
|
||||
if( zone && zone->GetIsRuleArea() )
|
||||
if( zone && zone->GetIsRuleArea() && zone->GetRuleAreaType() == RULE_AREA_TYPE::KEEPOUT )
|
||||
return true;
|
||||
|
||||
item->ClearFlags( HOLE_PROXY ); // Just in case
|
||||
|
Loading…
Reference in New Issue
Block a user