netless zone support fix to specctra export
This commit is contained in:
parent
1d3f2d520c
commit
d58296c804
|
@ -19,6 +19,7 @@ email address.
|
||||||
================================================================================
|
================================================================================
|
||||||
++pcbnew
|
++pcbnew
|
||||||
added "cutout" from a ZONE_CONTAINER capability to the SPECCTRA export.
|
added "cutout" from a ZONE_CONTAINER capability to the SPECCTRA export.
|
||||||
|
added "netless zone" support to SPECCTRA export.
|
||||||
|
|
||||||
|
|
||||||
2009-Feb-6 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
2009-Feb-6 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||||
|
|
|
@ -1026,6 +1026,8 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
||||||
|
|
||||||
//-----<zone containers become planes>--------------------------------
|
//-----<zone containers become planes>--------------------------------
|
||||||
{
|
{
|
||||||
|
int netlessZones = 0;
|
||||||
|
|
||||||
static const KICAD_T scanZONEs[] = { TYPE_ZONE_CONTAINER, EOT };
|
static const KICAD_T scanZONEs[] = { TYPE_ZONE_CONTAINER, EOT };
|
||||||
items.Collect( aBoard, scanZONEs );
|
items.Collect( aBoard, scanZONEs );
|
||||||
|
|
||||||
|
@ -1041,6 +1043,24 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError )
|
||||||
|
|
||||||
plane->name = CONV_TO_UTF8( item->m_Netname );
|
plane->name = CONV_TO_UTF8( item->m_Netname );
|
||||||
|
|
||||||
|
if( plane->name.size() == 0 )
|
||||||
|
{
|
||||||
|
char name[32];
|
||||||
|
|
||||||
|
// This is one of those no connection zones, netcode=0, and it has no name.
|
||||||
|
// Create a unique, bogus netname.
|
||||||
|
NET* no_net = new NET( pcb->network );
|
||||||
|
|
||||||
|
sprintf( name, "@:no_net_%d", netlessZones++ );
|
||||||
|
no_net->net_id = name;
|
||||||
|
|
||||||
|
// add the bogus net name to network->nets.
|
||||||
|
pcb->network->nets.push_back( no_net );
|
||||||
|
|
||||||
|
// use the bogus net name in the netless zone.
|
||||||
|
plane->name = no_net->net_id;
|
||||||
|
}
|
||||||
|
|
||||||
mainPolygon->layer_id = layerIds[ kicadLayer2pcb[ item->GetLayer() ] ];
|
mainPolygon->layer_id = layerIds[ kicadLayer2pcb[ item->GetLayer() ] ];
|
||||||
|
|
||||||
int count = item->m_Poly->corner.size();
|
int count = item->m_Poly->corner.size();
|
||||||
|
|
Loading…
Reference in New Issue