From 701222628482aee7ac8ea26346022c5ee3cce71f Mon Sep 17 00:00:00 2001 From: Seth Hillbrand Date: Wed, 5 Sep 2018 22:52:21 -0700 Subject: [PATCH] pcbnew: Set soldermask on NPTH imported from Eagle Fixes: lp:1773253 * https://bugs.launchpad.net/kicad/+bug/1773253 --- pcbnew/eagle_plugin.cpp | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/pcbnew/eagle_plugin.cpp b/pcbnew/eagle_plugin.cpp index ee68c4b181..e9571cca71 100644 --- a/pcbnew/eagle_plugin.cpp +++ b/pcbnew/eagle_plugin.cpp @@ -680,43 +680,17 @@ void EAGLE_PLUGIN::loadPlain( wxXmlNode* aGraphics ) else if( grName == "hole" ) { m_xpath->push( "hole" ); - EHOLE e( gr ); // Fabricate a MODULE with a single PAD_ATTRIB_HOLE_NOT_PLATED pad. // Use m_hole_count to gen up a unique name. MODULE* module = new MODULE( m_board ); m_board->Add( module, ADD_APPEND ); - - char temp[40]; - snprintf( temp, sizeof( temp ), "@HOLE%d", m_hole_count++ ); - module->SetReference( FROM_UTF8( temp ) ); + module->SetReference( wxString::Format( "@HOLE%d", m_hole_count++ ) ); module->Reference().SetVisible( false ); - wxPoint pos( kicad_x( e.x ), kicad_y( e.y ) ); + packageHole( module, gr ); - module->SetPosition( pos ); - - // Add a PAD_ATTRIB_HOLE_NOT_PLATED pad to this module. - D_PAD* pad = new D_PAD( module ); - module->PadsList().PushBack( pad ); - - pad->SetShape( PAD_SHAPE_CIRCLE ); - pad->SetAttribute( PAD_ATTRIB_HOLE_NOT_PLATED ); - - /* pad's position is already centered on module at relative (0, 0) - wxPoint padpos( kicad_x( e.x ), kicad_y( e.y ) ); - - pad->SetPos0( padpos ); - pad->SetPosition( padpos + module->GetPosition() ); - */ - - wxSize sz( e.drill.ToPcbUnits(), e.drill.ToPcbUnits() ); - - pad->SetDrillSize( sz ); - pad->SetSize( sz ); - - pad->SetLayerSet( LSET::AllCuMask() ); m_xpath->pop(); } else if( grName == "frame" ) @@ -1842,7 +1816,7 @@ void EAGLE_PLUGIN::packageHole( MODULE* aModule, wxXmlNode* aTree ) const pad->SetDrillSize( sz ); pad->SetSize( sz ); - pad->SetLayerSet( LSET::AllCuMask() /* | SOLDERMASK_LAYER_BACK | SOLDERMASK_LAYER_FRONT */ ); + pad->SetLayerSet( LSET::AllCuMask().set( B_Mask ).set( F_Mask ) ); }