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:
parent
8862752523
commit
5c7ac1bb7e
|
@ -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 );
|
||||
|
|
Loading…
Reference in New Issue