From 8120e47bfd1be2697baaf2f97292da546570f38b Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Wed, 16 Aug 2023 17:02:35 +0100 Subject: [PATCH] Better fidelity for Eagle thermal spokes. Fixes https://gitlab.com/kicad/code/kicad/-/issues/15428 (cherry picked from commit a58547dde5c919ada3f986a4276b57797651e528) --- pcbnew/plugins/eagle/eagle_plugin.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pcbnew/plugins/eagle/eagle_plugin.cpp b/pcbnew/plugins/eagle/eagle_plugin.cpp index 0b8d3b37af..9ac8d5be83 100644 --- a/pcbnew/plugins/eagle/eagle_plugin.cpp +++ b/pcbnew/plugins/eagle/eagle_plugin.cpp @@ -1939,6 +1939,9 @@ void EAGLE_PLUGIN::packagePad( FOOTPRINT* aFootprint, wxXmlNode* aTree ) if( e.rot ) pad->SetOrientation( EDA_ANGLE( e.rot->degrees, DEGREES_T ) ); + // Eagle spokes are always NSEW in board coordinates + pad->SetThermalSpokeAngle( - ( aFootprint->GetOrientation() + pad->GetOrientation() ) ); + if( pad->GetSizeX() > 0 && pad->GetSizeY() > 0 ) { aFootprint->Add( pad.release() ); @@ -2430,6 +2433,9 @@ void EAGLE_PLUGIN::packageSMD( FOOTPRINT* aFootprint, wxXmlNode* aTree ) const if( e.rot ) pad->SetOrientation( EDA_ANGLE( e.rot->degrees, DEGREES_T ) ); + // Eagle spokes are always NSEW in board coordinates + pad->SetThermalSpokeAngle( - ( aFootprint->GetOrientation() + pad->GetOrientation() ) ); + pad->SetLocalSolderPasteMargin( -eagleClamp( m_rules->mlMinCreamFrame, (int) ( m_rules->mvCreamFrame * minPadSize ), m_rules->mlMaxCreamFrame ) );