From 8ef28d56a159a37f110a5aa1e42cb378ecbcb57d Mon Sep 17 00:00:00 2001 From: vesa_solonen Date: Thu, 5 Mar 2009 17:40:23 +0000 Subject: [PATCH] Thermal stub fix --- CHANGELOG.txt | 7 +++++++ pcbnew/zones_convert_brd_items_to_polygons.cpp | 9 +++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fca77ed793..a5049741be 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,13 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. +2009-Mar-5 UPDATE Vesa Solonen +================================================================================ +++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 ================================================================================ ++pcbnew: diff --git a/pcbnew/zones_convert_brd_items_to_polygons.cpp b/pcbnew/zones_convert_brd_items_to_polygons.cpp index f88772e16a..904b35c15d 100644 --- a/pcbnew/zones_convert_brd_items_to_polygons.cpp +++ b/pcbnew/zones_convert_brd_items_to_polygons.cpp @@ -330,8 +330,8 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) return; // Now we remove all unused thermal stubs. -#define REMOVE_UNUSED_THERMAL_STUBS // Can be commented to skip unused thermal stubs calculations -#ifdef REMOVE_UNUSED_THERMAL_STUBS +//define REMOVE_UNUSED_THERMAL_STUBS // Can be commented to skip unused thermal stubs calculations +//#ifdef REMOVE_UNUSED_THERMAL_STUBS /* 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 @@ -403,7 +403,8 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) std::vector corners_buffer; // 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 ) { @@ -465,7 +466,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) // Remove insulated islands, if any: if( GetNet() > 0 ) Test_For_Copper_Island_And_Remove_Insulated_Islands( aPcb ); -#endif +//#endif }