Commit 8ef28d56 authored by vesa_solonen's avatar vesa_solonen
Browse files

Thermal stub fix

parent cbca180a
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -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:
+5 −4
Original line number Original line Diff line number Diff line
@@ -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
}
}