From fbdd340647c518c7cf6476115edd7345b84f3390 Mon Sep 17 00:00:00 2001 From: charras Date: Thu, 22 Jan 2009 18:45:33 +0000 Subject: [PATCH] Pcbnew: added Vesa Solonen's patch to enhance thermal reliefs shapes. --- include/build_version.h | 4 ++-- include/hotkeys_basic.h | 2 +- include/kicad_msvc.h | 24 +++++++++---------- .../zones_convert_brd_items_to_polygons.cpp | 8 ++++--- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/include/build_version.h b/include/build_version.h index c03e4fee61..cef9fa09b0 100644 --- a/include/build_version.h +++ b/include/build_version.h @@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion # include "config.h" (wxT(KICAD_SVN_VERSION)) # else - (wxT("(20090107-unstable)")) /* main program version */ + (wxT("(20090122-unstable)")) /* main program version */ # endif #endif ; @@ -20,7 +20,7 @@ COMMON_GLOBL wxString g_BuildAboutVersion # include "config.h" (wxT(KICAD_ABOUT_VERSION)) # else - (wxT("(20090107-unstable)")) /* svn date & rev (normally overridden) */ + (wxT("(20090122-unstable)")) /* svn date & rev (normally overridden) */ # endif #endif ; diff --git a/include/hotkeys_basic.h b/include/hotkeys_basic.h index b16454dcb3..d291b9f1ea 100644 --- a/include/hotkeys_basic.h +++ b/include/hotkeys_basic.h @@ -40,7 +40,7 @@ public: * for instance: * 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 - * 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 { diff --git a/include/kicad_msvc.h b/include/kicad_msvc.h index e0d26ce062..4094aed5c3 100644 --- a/include/kicad_msvc.h +++ b/include/kicad_msvc.h @@ -17,24 +17,24 @@ // the boost libs have a workaround for the typeof problem #ifdef _MSC_VER #if ( _MSC_VER <= 1310 ) // 6.5 7.0 and 7.1 use the msvc bug - #include + #include #else // 8.0 or greater - #include + #include // we have to register the types used with the typeof keyword with boost - BOOST_TYPEOF_ REGISTER_ TYPE(wxPoint) ; - BOOST_TYPEOF_ REGISTER_ TYPE(wxSize) ; - BOOST_TYPEOF_ REGISTER_ TYPE(wxString) ; - class DrawSheetLabelStruc t; - BOOST_TYPEOF_ REGISTER_ TYPE(DrawSheetLa belStruct *); + BOOST_TYPEOF_REGISTER_TYPE(wxPoint) ; + BOOST_TYPEOF_REGISTER_TYPE(wxSize) ; + BOOST_TYPEOF_REGISTER_TYPE(wxString) ; + class DrawSheetLabelStruct; + BOOST_TYPEOF_REGISTER_TYPE(DrawSheetLabelStruct *); class EDA_BaseStruct; - BOOST_TYPEOF_ REGISTER_ TYPE(EDA_ BaseStruct *); + BOOST_TYPEOF_REGISTER_TYPE(EDA_BaseStruct *); class D_PAD; - BOOST_TYPEOF_ REGISTER_ TYPE(D_PAD *); - BOOST_TYPEOF_ REGISTER_ TYPE(const D_PAD *); + BOOST_TYPEOF_REGISTER_TYPE(D_PAD *); + BOOST_TYPEOF_REGISTER_TYPE(const D_PAD *); class BOARD_ITEM; - BOOST_TYPEOF_ REGISTER_ TYPE(BOARD_ ITEM *); + BOOST_TYPEOF_REGISTER_TYPE(BOARD_ITEM *); #endif // _MSC_VER <= 1310 - #define typeof(expr) BOOST_TYPEOF( expr) + #define typeof(expr) BOOST_TYPEOF(expr) #endif // def _MSC_VER inline double round(double x) diff --git a/pcbnew/zones_convert_brd_items_to_polygons.cpp b/pcbnew/zones_convert_brd_items_to_polygons.cpp index 3da6f83aac..c3d44fa13d 100644 --- a/pcbnew/zones_convert_brd_items_to_polygons.cpp +++ b/pcbnew/zones_convert_brd_items_to_polygons.cpp @@ -369,7 +369,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) } // 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]; ptTest[0] = 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 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, -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; int rounding_radius = (int) ( aThermalGap * s_Correction ); // Corner rounding radius