Eagle PCB import: disable copper pour for imported *Restrict layer polygons

Fixes: lp:1772245
* https://bugs.launchpad.net/kicad/+bug/1772245
This commit is contained in:
Maciej Suminski 2018-05-23 17:44:45 +02:00
parent 3893c43eb0
commit 190d4d6f55
1 changed files with 112 additions and 113 deletions

View File

@ -1080,29 +1080,29 @@ ZONE_CONTAINER* EAGLE_PLUGIN::loadPolygon( wxXmlNode* aPolyNode )
EPOLYGON p( aPolyNode );
PCB_LAYER_ID layer = kicad_layer( p.layer );
ZONE_CONTAINER* zone = nullptr;
bool keepout = ( p.layer == EAGLE_LAYER::TRESTRICT || p.layer == EAGLE_LAYER::BRESTRICT );
if( !IsCopperLayer( layer ) && !keepout )
return nullptr;
// Handle copper and keepout layers
if( IsCopperLayer( layer )
|| p.layer == EAGLE_LAYER::TRESTRICT || p.layer == EAGLE_LAYER::BRESTRICT )
{
// use a "netcode = 0" type ZONE:
zone = new ZONE_CONTAINER( m_board );
zone->SetTimeStamp( EagleTimeStamp( aPolyNode ) );
m_board->Add( zone, ADD_APPEND );
if( p.layer == EAGLE_LAYER::TRESTRICT )
{
zone->SetIsKeepout( true );
if( p.layer == EAGLE_LAYER::TRESTRICT ) // front layer keepout
zone->SetLayer( F_Cu );
}
else if( p.layer == EAGLE_LAYER::BRESTRICT )
else if( p.layer == EAGLE_LAYER::BRESTRICT ) // bottom layer keepout
zone->SetLayer( B_Cu );
else
zone->SetLayer( layer );
if( keepout )
{
zone->SetIsKeepout( true );
zone->SetLayer( B_Cu );
}
else
{
zone->SetLayer( layer );
zone->SetDoNotAllowVias( true );
zone->SetDoNotAllowTracks( true );
zone->SetDoNotAllowCopperPour( true );
}
// Get the first vertex and iterate
@ -1202,7 +1202,6 @@ ZONE_CONTAINER* EAGLE_PLUGIN::loadPolygon( wxXmlNode* aPolyNode )
int rank = p.rank ? (p.max_priority - *p.rank) : p.max_priority;
zone->SetPriority( rank );
}
return zone;
}