Browse Source

DSN export: export keepout zone polygons on each layer they are living

pull/5/merge
jean-pierre charras 8 years ago
parent
commit
bd73a39a4b
  1. 15
      pcbnew/specctra_export.cpp

15
pcbnew/specctra_export.cpp

@ -1087,13 +1087,25 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard )
else
keepout_type = T_keepout;
// Now, build keepout polygon on each copper layer where the item
// keepout is living (keepout zones can live on many copper layers)
const int copperCount = aBoard->GetCopperLayerCount();
for( int layer = 0; layer < copperCount; layer++ )
{
if( layer == copperCount-1)
layer = B_Cu;
if( !item->IsOnLayer( PCB_LAYER_ID( layer ) ) )
continue;
KEEPOUT* keepout = new KEEPOUT( pcb->structure, keepout_type );
pcb->structure->keepouts.push_back( keepout );
PATH* mainPolygon = new PATH( keepout, T_polygon );
keepout->SetShape( mainPolygon );
mainPolygon->layer_id = layerIds[ kicadLayer2pcb[ item->GetLayer() ] ];
mainPolygon->layer_id = layerIds[ kicadLayer2pcb[ layer ] ];
// Handle the main outlines
SHAPE_POLY_SET::ITERATOR iterator;
@ -1137,6 +1149,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard )
}
}
}
}
//-----<build the images, components, and netlist>-----------------------
{

Loading…
Cancel
Save