Commit 9191f28a authored by Dick Hollenbeck's avatar Dick Hollenbeck

specctra_export to handle Edge Cuts graphics in modules

parent a9fbce5c
...@@ -767,36 +767,29 @@ PADSTACK* SPECCTRA_DB::makeVia( const SEGVIA* aVia ) ...@@ -767,36 +767,29 @@ PADSTACK* SPECCTRA_DB::makeVia( const SEGVIA* aVia )
void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) throw( IO_ERROR ) void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) throw( IO_ERROR )
{ {
TYPE_COLLECTOR items; TYPE_COLLECTOR items;
// get all the DRAWSEGMENTS into 'items', then look for layer == EDGE_N, // get all the DRAWSEGMENTS into 'items', then look for layer == EDGE_N,
// and those segments comprise the board's perimeter. // and those segments comprise the board's perimeter.
static const KICAD_T scanDRAWSEGMENTS[] = { PCB_LINE_T, EOT }; static const KICAD_T scan_graphics[] = { PCB_LINE_T, PCB_MODULE_EDGE_T, EOT };
items.Collect( aBoard, scanDRAWSEGMENTS );
bool haveEdges = false; items.Collect( aBoard, scan_graphics );
for( int i=0; i<items.GetCount(); ) for( int i=0; i<items.GetCount(); )
{ {
DRAWSEGMENT* item = (DRAWSEGMENT*) items[i]; if( items[i]->GetLayer() != EDGE_N )
wxASSERT( item->Type() == PCB_LINE_T );
if( item->GetLayer() != EDGE_N )
{ {
items.Remove( i ); items.Remove( i );
} }
else else // remove graphics not on EDGE_N layer
{ {
haveEdges = true;
++i; ++i;
D( item->Show( 0, std::cout );) D( item->Show( 0, std::cout );)
} }
} }
if( haveEdges ) if( items.GetCount() )
{ {
PATH* path = new PATH( boundary ); PATH* path = new PATH( boundary );
boundary->paths.push_back( path ); boundary->paths.push_back( path );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment