From f7ad77004dee2cda5f9b8a5559fafa01e40e46bd Mon Sep 17 00:00:00 2001 From: Maciej Suminski Date: Wed, 14 Mar 2018 10:16:51 +0100 Subject: [PATCH] Eagle PCB import: handle {smd,pad}.thermals property --- pcbnew/eagle_plugin.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pcbnew/eagle_plugin.cpp b/pcbnew/eagle_plugin.cpp index 1aec3f2d01..7f9d075eff 100644 --- a/pcbnew/eagle_plugin.cpp +++ b/pcbnew/eagle_plugin.cpp @@ -1367,8 +1367,6 @@ void EAGLE_PLUGIN::packagePad( MODULE* aModule, wxXmlNode* aTree ) const { pad->SetOrientation( e.rot->degrees * 10 ); } - - // @todo: handle stop and thermal } @@ -1697,8 +1695,6 @@ void EAGLE_PLUGIN::packageSMD( MODULE* aModule, wxXmlNode* aTree ) const (int)( m_rules->mvCreamFrame * minPadSize ), m_rules->mlMaxCreamFrame ) ); } - - // @todo: handle thermal } @@ -1721,6 +1717,10 @@ void EAGLE_PLUGIN::transferPad( const EPAD_COMMON& aEaglePad, D_PAD* aPad ) cons m_rules->mlMaxStopFrame ) ); } + // Solid connection to copper zones + if( aEaglePad.thermals && !*aEaglePad.thermals ) + aPad->SetZoneConnection( PAD_ZONE_CONN_FULL ); + MODULE* module = aPad->GetParent(); wxCHECK( module, /* void */ ); RotatePoint( &padPos, module->GetOrientation() ); @@ -2001,6 +2001,7 @@ void EAGLE_PLUGIN::loadSignals( wxXmlNode* aSignals ) // missing == yes per DTD. bool thermals = !p.thermals || *p.thermals; zone->SetPadConnection( thermals ? PAD_ZONE_CONN_THERMAL : PAD_ZONE_CONN_FULL ); + if( thermals ) { // FIXME: eagle calculates dimensions for thermal spokes