Pcbnew: added Vesa Solonen's patch to enhance thermal reliefs shapes.

This commit is contained in:
charras 2009-01-22 18:45:33 +00:00
parent 72dbdf7faa
commit fbdd340647
4 changed files with 20 additions and 18 deletions

View File

@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion
# include "config.h" # include "config.h"
(wxT(KICAD_SVN_VERSION)) (wxT(KICAD_SVN_VERSION))
# else # else
(wxT("(20090107-unstable)")) /* main program version */ (wxT("(20090122-unstable)")) /* main program version */
# endif # endif
#endif #endif
; ;
@ -20,7 +20,7 @@ COMMON_GLOBL wxString g_BuildAboutVersion
# include "config.h" # include "config.h"
(wxT(KICAD_ABOUT_VERSION)) (wxT(KICAD_ABOUT_VERSION))
# else # else
(wxT("(20090107-unstable)")) /* svn date & rev (normally overridden) */ (wxT("(20090122-unstable)")) /* svn date & rev (normally overridden) */
# endif # endif
#endif #endif
; ;

View File

@ -40,7 +40,7 @@ public:
* for instance: * for instance:
* the schematic editor uses a common section (zoom hotkeys list ..) and a specific section * the schematic editor uses a common section (zoom hotkeys list ..) and a specific section
* the library editor uses the same common section and a specific section * the library editor uses the same common section and a specific section
* this feature avoid duplications and made hotkey file config easier to understand ane edit * this feature avoid duplications and made hotkey file config easier to understand and edit
*/ */
struct Ki_HotkeyInfoSectionDescriptor struct Ki_HotkeyInfoSectionDescriptor
{ {

View File

@ -17,24 +17,24 @@
// the boost libs have a workaround for the typeof problem // the boost libs have a workaround for the typeof problem
#ifdef _MSC_VER #ifdef _MSC_VER
#if ( _MSC_VER <= 1310 ) // 6.5 7.0 and 7.1 use the msvc bug #if ( _MSC_VER <= 1310 ) // 6.5 7.0 and 7.1 use the msvc bug
#include <boost/typeof/ msvc/typeof_ impl.hpp> #include <boost/typeof/msvc/typeof_impl.hpp>
#else // 8.0 or greater #else // 8.0 or greater
#include <boost/typeof/ typeof.hpp> #include <boost/typeof/typeof.hpp>
// we have to register the types used with the typeof keyword with boost // we have to register the types used with the typeof keyword with boost
BOOST_TYPEOF_ REGISTER_ TYPE(wxPoint) ; BOOST_TYPEOF_REGISTER_TYPE(wxPoint) ;
BOOST_TYPEOF_ REGISTER_ TYPE(wxSize) ; BOOST_TYPEOF_REGISTER_TYPE(wxSize) ;
BOOST_TYPEOF_ REGISTER_ TYPE(wxString) ; BOOST_TYPEOF_REGISTER_TYPE(wxString) ;
class DrawSheetLabelStruc t; class DrawSheetLabelStruct;
BOOST_TYPEOF_ REGISTER_ TYPE(DrawSheetLa belStruct *); BOOST_TYPEOF_REGISTER_TYPE(DrawSheetLabelStruct *);
class EDA_BaseStruct; class EDA_BaseStruct;
BOOST_TYPEOF_ REGISTER_ TYPE(EDA_ BaseStruct *); BOOST_TYPEOF_REGISTER_TYPE(EDA_BaseStruct *);
class D_PAD; class D_PAD;
BOOST_TYPEOF_ REGISTER_ TYPE(D_PAD *); BOOST_TYPEOF_REGISTER_TYPE(D_PAD *);
BOOST_TYPEOF_ REGISTER_ TYPE(const D_PAD *); BOOST_TYPEOF_REGISTER_TYPE(const D_PAD *);
class BOARD_ITEM; class BOARD_ITEM;
BOOST_TYPEOF_ REGISTER_ TYPE(BOARD_ ITEM *); BOOST_TYPEOF_REGISTER_TYPE(BOARD_ITEM *);
#endif // _MSC_VER <= 1310 #endif // _MSC_VER <= 1310
#define typeof(expr) BOOST_TYPEOF( expr) #define typeof(expr) BOOST_TYPEOF(expr)
#endif // def _MSC_VER #endif // def _MSC_VER
inline double round(double x) inline double round(double x)

View File

@ -369,7 +369,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
} }
// compute north, south, west and east points for zone connection. // compute north, south, west and east points for zone connection.
// Add a small value to ensure point is inside zone, not on an edge // Add a small value to ensure point is inside (or outside) zone, not on an edge
wxPoint ptTest[4]; wxPoint ptTest[4];
ptTest[0] = wxPoint( 0, 3 + dy + m_ZoneMinThickness / 2 ); ptTest[0] = wxPoint( 0, 3 + dy + m_ZoneMinThickness / 2 );
ptTest[1] = wxPoint( 0, -(3 + dy + m_ZoneMinThickness / 2) ); ptTest[1] = wxPoint( 0, -(3 + dy + m_ZoneMinThickness / 2) );
@ -936,9 +936,11 @@ void AddThermalReliefPadPolygon( Bool_Engine* aBooleng,
// The first point of polygon buffer is left lower corner, second the crosspoint of thermal spoke sides, // The first point of polygon buffer is left lower corner, second the crosspoint of thermal spoke sides,
// the third is upper right corner and the rest are rounding vertices going anticlockwise. Note the inveted Y-axis in CG. // the third is upper right corner and the rest are rounding vertices going anticlockwise. Note the inveted Y-axis in CG.
corners_buffer.push_back( wxPoint( -dx, -copper_thickness.y / 2 ) ); corners_buffer.push_back( wxPoint( -dx , -(aThermalGap / 4 + copper_thickness.y / 2) ) ); // Adds small miters to zone
corners_buffer.push_back( wxPoint( -(dx - aThermalGap / 4) , -copper_thickness.y / 2 ) ); // fill and spoke corner
corners_buffer.push_back( wxPoint( -copper_thickness.x / 2, -copper_thickness.y / 2 ) ); corners_buffer.push_back( wxPoint( -copper_thickness.x / 2, -copper_thickness.y / 2 ) );
corners_buffer.push_back( wxPoint( -copper_thickness.x / 2, -dy ) ); corners_buffer.push_back( wxPoint( -copper_thickness.x / 2, -(dy - aThermalGap / 4) ) );
corners_buffer.push_back( wxPoint( -(aThermalGap / 4 + copper_thickness.x / 2), -dy ) );
angle = aPad.m_Orient; angle = aPad.m_Orient;
int rounding_radius = (int) ( aThermalGap * s_Correction ); // Corner rounding radius int rounding_radius = (int) ( aThermalGap * s_Correction ); // Corner rounding radius