pcbnew: Don't merge zones with different params
Zones can be explicitly merged even if they do not have the same
parameters. Automatic merging should only occur when all of the zone
parameters are exactly identical to allow for area-specific zone
parameters.
( cherry-picked from 3d0915a33
)
Fixes: lp:1695761
* https://bugs.launchpad.net/kicad/+bug/1695761
This commit is contained in:
parent
44b4f8a104
commit
49735c219b
|
@ -196,6 +196,36 @@ bool BOARD::TestAreaIntersections( ZONE_CONTAINER* area_to_test )
|
||||||
if( area_to_test->GetDoNotAllowVias() != area2->GetDoNotAllowVias() )
|
if( area_to_test->GetDoNotAllowVias() != area2->GetDoNotAllowVias() )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// Filled zone specific tests
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if( area_to_test->GetClearance() != area2->GetClearance() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetThermalReliefGap() != area2->GetThermalReliefGap() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetThermalReliefCopperBridge() != area2->GetThermalReliefCopperBridge() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetArcSegmentCount() != area2->GetArcSegmentCount() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetZoneClearance() != area2->GetZoneClearance() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetPadConnection() != area2->GetPadConnection() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetMinThickness() != area2->GetMinThickness() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetCornerSmoothingType() != area2->GetCornerSmoothingType() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( area_to_test->GetCornerRadius() != area2->GetCornerRadius() )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if( TestAreaIntersection( area_to_test, area2 ) )
|
if( TestAreaIntersection( area_to_test, area2 ) )
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue