ZONE_FILLER: fix incorrect thermal clearance of pads having "not in zone" option. Pads inside a zone of the same net having the "not in zone" option have a "antipad" clearance. The value in this case is the biggest between zone clearance and thermal clearance (the net clearance is 0 betwen items of the same net)

However a bug created a incorrect value, due to the fact the minimal zone width
was incorrectly taking in account in calculations.
This commit is contained in:
jean-pierre charras 2020-02-17 13:27:39 +01:00
parent 8862752523
commit 5c7ac1bb7e
1 changed files with 2 additions and 4 deletions

View File

@ -460,9 +460,7 @@ void ZONE_FILLER::buildZoneFeatureHoleList( const ZONE_CONTAINER* aZone,
}
else
pad->TransformShapeWithClearanceToPolygon( aFeatures,
clearance,
segsPerCircle,
correctionFactor );
clearance, segsPerCircle, correctionFactor );
}
continue;
@ -476,7 +474,7 @@ void ZONE_FILLER::buildZoneFeatureHoleList( const ZONE_CONTAINER* aZone,
|| ( pad->GetShape() == PAD_SHAPE_CUSTOM && aZone->GetPadConnection( pad ) != PAD_ZONE_CONN_FULL ) )
{
int gap = zone_clearance;
int thermalGap = aZone->GetThermalReliefGap( pad );
int thermalGap = aZone->GetThermalReliefGap( pad ) + outline_half_thickness;
gap = std::max( gap, thermalGap );
item_boundingbox = pad->GetBoundingBox();
item_boundingbox.Inflate( gap );