Pcbnew: added Vesa Solonen's patch to enhance thermal reliefs shapes.
This commit is contained in:
parent
72dbdf7faa
commit
fbdd340647
|
@ -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
|
||||||
;
|
;
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue