diff --git a/pcbnew/pcb_io/fabmaster/import_fabmaster.cpp b/pcbnew/pcb_io/fabmaster/import_fabmaster.cpp index f17cda02d3..8bdc2b1e21 100644 --- a/pcbnew/pcb_io/fabmaster/import_fabmaster.cpp +++ b/pcbnew/pcb_io/fabmaster/import_fabmaster.cpp @@ -2865,11 +2865,17 @@ bool FABMASTER::loadZone( BOARD* aBoard, const std::unique_ptr<FABMASTER::TRACE> zone_outline->Append( src->end_x, src->end_y, 0, hole_idx ); } - else if( seg->shape == GR_SHAPE_ARC ) + else if( seg->shape == GR_SHAPE_ARC || seg->shape == GR_SHAPE_CIRCLE ) { + /* Even if it says "circle", it's actually an arc, it's just closed */ const GRAPHIC_ARC* src = static_cast<const GRAPHIC_ARC*>( seg.get() ); zone_outline->Hole( 0, hole_idx ).Append( src->result ); } + else + { + wxASSERT_MSG( false, + wxString::Format( "Invalid shape type %d in zone outline", seg->shape ) ); + } } if( zone_outline->Outline( 0 ).PointCount() >= 3 )