Add support for fp cutouts in Altium libs

This commit is contained in:
Seth Hillbrand 2023-08-31 09:14:29 -07:00
parent 24d3df5416
commit b8b2498e0c
1 changed files with 14 additions and 3 deletions

View File

@ -1995,6 +1995,10 @@ void ALTIUM_PCB::ConvertShapeBasedRegions6ToBoardItem( const AREGION6& aElem )
} }
} }
} }
else if( aElem.kind == ALTIUM_REGION_KIND::BOARD_CUTOUT )
{
ConvertShapeBasedRegions6ToBoardItemOnLayer( aElem, Edge_Cuts );
}
else else
{ {
wxLogError( _( "Ignored polygon shape of kind %d (not yet supported)." ), aElem.kind ); wxLogError( _( "Ignored polygon shape of kind %d (not yet supported)." ), aElem.kind );
@ -2055,9 +2059,12 @@ void ALTIUM_PCB::ConvertShapeBasedRegions6ToFootprintItem( FOOTPRINT* aFoot
aPrimitiveIndex ); aPrimitiveIndex );
} }
} }
else if( aElem.kind == ALTIUM_REGION_KIND::DASHED_OUTLINE ) else if( aElem.kind == ALTIUM_REGION_KIND::DASHED_OUTLINE
|| aElem.kind == ALTIUM_REGION_KIND::BOARD_CUTOUT )
{ {
PCB_LAYER_ID klayer = GetKicadLayer( aElem.layer ); PCB_LAYER_ID klayer = aElem.kind == ALTIUM_REGION_KIND::BOARD_CUTOUT
? Edge_Cuts
: GetKicadLayer( aElem.layer );
if( klayer == UNDEFINED_LAYER ) if( klayer == UNDEFINED_LAYER )
{ {
@ -2085,7 +2092,11 @@ void ALTIUM_PCB::ConvertShapeBasedRegions6ToFootprintItem( FOOTPRINT* aFoot
shape->SetPolyShape( linechain ); shape->SetPolyShape( linechain );
shape->SetFilled( false ); shape->SetFilled( false );
shape->SetLayer( klayer ); shape->SetLayer( klayer );
if( aElem.kind == ALTIUM_REGION_KIND::DASHED_OUTLINE )
shape->SetStroke( STROKE_PARAMS( pcbIUScale.mmToIU( 0.1 ), PLOT_DASH_TYPE::DASH ) ); shape->SetStroke( STROKE_PARAMS( pcbIUScale.mmToIU( 0.1 ), PLOT_DASH_TYPE::DASH ) );
else
shape->SetStroke( STROKE_PARAMS( pcbIUScale.mmToIU( 0.1 ), PLOT_DASH_TYPE::SOLID ) );
aFootprint->Add( shape, ADD_MODE::APPEND ); aFootprint->Add( shape, ADD_MODE::APPEND );
} }