From 18e043c780a534ed546da6311c81b56ea05e7354 Mon Sep 17 00:00:00 2001 From: Eldar Khayrullin Date: Fri, 4 Mar 2016 21:33:07 +0300 Subject: [PATCH] pcad2kicadpcb: ignore zero size pads and vias. No throw exceptions --- pcbnew/pcad2kicadpcb_plugin/pcb_pad.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pcbnew/pcad2kicadpcb_plugin/pcb_pad.cpp b/pcbnew/pcad2kicadpcb_plugin/pcb_pad.cpp index 966b920..f1e9b91 100644 --- a/pcbnew/pcad2kicadpcb_plugin/pcb_pad.cpp +++ b/pcbnew/pcad2kicadpcb_plugin/pcb_pad.cpp @@ -195,8 +195,6 @@ void PCB_PAD::AddToModule( MODULE* aModule, int aRotation, bool aEncapsulatedPad D_PAD* pad = new D_PAD( aModule ); - aModule->Pads().PushBack( pad ); - if( !m_isHolePlated && m_hole ) { // mechanical hole @@ -237,13 +235,16 @@ void PCB_PAD::AddToModule( MODULE* aModule, int aRotation, bool aEncapsulatedPad } } + if( width == 0 || height == 0 ) + { + delete pad; + return; + } + if( padType == PAD_ATTRIB_STANDARD ) // actually this is a thru-hole pad pad->SetLayerSet( LSET::AllCuMask() | LSET( 2, B_Mask, F_Mask ) ); - if( width == 0 || height == 0 ) - THROW_IO_ERROR( wxT( "pad with zero size" ) ); - pad->SetPadName( m_name.text ); if( padShapeName == wxT( "Oval" ) @@ -292,6 +293,8 @@ void PCB_PAD::AddToModule( MODULE* aModule, int aRotation, bool aEncapsulatedPad RotatePoint( &padpos, aModule->GetOrientation() ); pad->SetPosition( padpos + aModule->GetPosition() ); } + + aModule->Pads().PushBack( pad ); } @@ -323,7 +326,7 @@ void PCB_PAD::AddToBoard() } if( width == 0 || height == 0 ) - THROW_IO_ERROR( wxT( "pad or via with zero size" ) ); + return; if( IsCopperLayer( m_KiCadLayer ) ) { -- 2.5.0