Thermal stub fix

This commit is contained in:
vesa_solonen 2009-03-05 17:40:23 +00:00
parent cbca180a12
commit 8ef28d56a1
2 changed files with 12 additions and 4 deletions

View File

@ -5,6 +5,13 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with
email address. email address.
2009-Mar-5 UPDATE Vesa Solonen <vesa.solonen@hut.fi>
================================================================================
++pcbnew:
bug fix in zones_convert_brd_items_to_polygons.cpp:
Fixes "thermal stub bleed" in zone fill. Small (compared to thermal width) pads are handled properly now.
2009-mar-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> 2009-mar-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================ ================================================================================
++pcbnew: ++pcbnew:

View File

@ -330,8 +330,8 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
return; return;
// Now we remove all unused thermal stubs. // Now we remove all unused thermal stubs.
#define REMOVE_UNUSED_THERMAL_STUBS // Can be commented to skip unused thermal stubs calculations //define REMOVE_UNUSED_THERMAL_STUBS // Can be commented to skip unused thermal stubs calculations
#ifdef REMOVE_UNUSED_THERMAL_STUBS //#ifdef REMOVE_UNUSED_THERMAL_STUBS
/* Add the main (corrected) polygon (i.e. the filled area using only one outline) /* Add the main (corrected) polygon (i.e. the filled area using only one outline)
* in GroupA in Bool_Engine to do a BOOL_A_SUB_B operation * in GroupA in Bool_Engine to do a BOOL_A_SUB_B operation
@ -403,7 +403,8 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
std::vector<wxPoint> corners_buffer; std::vector<wxPoint> corners_buffer;
// polygons are rectangles with width of copper bridge value // polygons are rectangles with width of copper bridge value
const int iDTRC = m_ThermalReliefCopperBridgeValue / 2; // contour line width has to be taken into calculation to avoid "thermal stub bleed"
const int iDTRC = ( m_ThermalReliefCopperBridgeValue - m_ZoneMinThickness ) / 2;
switch( i ) switch( i )
{ {
@ -465,7 +466,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
// Remove insulated islands, if any: // Remove insulated islands, if any:
if( GetNet() > 0 ) if( GetNet() > 0 )
Test_For_Copper_Island_And_Remove_Insulated_Islands( aPcb ); Test_For_Copper_Island_And_Remove_Insulated_Islands( aPcb );
#endif //#endif
} }