fix handling of filled circle and default layer width

This commit is contained in:
Thomas Pointhuber 2019-01-26 16:16:35 +01:00 committed by Seth Hillbrand
parent 90178eb681
commit 4fc692f04b
1 changed files with 6 additions and 34 deletions

View File

@ -1395,22 +1395,7 @@ void EAGLE_PLUGIN::packageWire( MODULE* aModule, wxXmlNode* aTree ) const
if( width <= 0 ) if( width <= 0 )
{ {
switch( layer ) width = aModule->GetBoard()->GetDesignSettings().GetLineThickness( layer );
{
case Edge_Cuts:
width = DEFAULT_EDGE_WIDTH;
break;
case F_SilkS:
case B_SilkS:
width = DEFAULT_SILK_LINE_WIDTH;
break;
case F_CrtYd:
case B_CrtYd:
width = DEFAULT_COURTYARD_WIDTH;
break;
default:
width = DEFAULT_LINE_WIDTH;
}
} }
// FIXME: the cap attribute is ignored because kicad can't create lines // FIXME: the cap attribute is ignored because kicad can't create lines
@ -1732,32 +1717,19 @@ void EAGLE_PLUGIN::packagePolygon( MODULE* aModule, wxXmlNode* aTree ) const
dwg->SetDrawCoord(); dwg->SetDrawCoord();
} }
void EAGLE_PLUGIN::packageCircle( MODULE* aModule, wxXmlNode* aTree ) const void EAGLE_PLUGIN::packageCircle( MODULE* aModule, wxXmlNode* aTree ) const
{ {
ECIRCLE e( aTree ); ECIRCLE e( aTree );
PCB_LAYER_ID layer = kicad_layer( e.layer ); PCB_LAYER_ID layer = kicad_layer( e.layer );
EDGE_MODULE* gr = new EDGE_MODULE( aModule, S_CIRCLE ); EDGE_MODULE* gr = new EDGE_MODULE( aModule, S_CIRCLE );
int width = e.width.ToPcbUnits(); int width = e.width.ToPcbUnits();
int radius = e.radius.ToPcbUnits();
// with == 0 means filled circle
if( width <= 0 ) if( width <= 0 )
{ {
switch( layer ) width = radius;
{ radius = radius / 2;
case Edge_Cuts:
width = DEFAULT_EDGE_WIDTH;
break;
case F_SilkS:
case B_SilkS:
width = DEFAULT_SILK_LINE_WIDTH;
break;
case F_CrtYd:
case B_CrtYd:
width = DEFAULT_COURTYARD_WIDTH;
break;
default:
width = DEFAULT_LINE_WIDTH;
}
} }
aModule->GraphicalItemsList().PushBack( gr ); aModule->GraphicalItemsList().PushBack( gr );
@ -1775,7 +1747,7 @@ void EAGLE_PLUGIN::packageCircle( MODULE* aModule, wxXmlNode* aTree ) const
gr->SetLayer( layer ); gr->SetLayer( layer );
gr->SetTimeStamp( EagleTimeStamp( aTree ) ); gr->SetTimeStamp( EagleTimeStamp( aTree ) );
gr->SetStart0( wxPoint( kicad_x( e.x ), kicad_y( e.y ) ) ); gr->SetStart0( wxPoint( kicad_x( e.x ), kicad_y( e.y ) ) );
gr->SetEnd0( wxPoint( kicad_x( e.x + e.radius ), kicad_y( e.y ) ) ); gr->SetEnd0( wxPoint( kicad_x( e.x ) + radius, kicad_y( e.y ) ) );
gr->SetDrawCoord(); gr->SetDrawCoord();
} }