diff --git a/src/Mod/PartDesign/App/FeatureTransformed.cpp b/src/Mod/PartDesign/App/FeatureTransformed.cpp index bcde049a73..7de5640a13 100644 --- a/src/Mod/PartDesign/App/FeatureTransformed.cpp +++ b/src/Mod/PartDesign/App/FeatureTransformed.cpp @@ -20,7 +20,6 @@ * * ******************************************************************************/ - #include "PreCompiled.h" #ifndef _PreComp_ # include @@ -267,7 +266,10 @@ App::DocumentObjectExecReturn *Transformed::execute(void) bool overlapping = false; std::vector::const_iterator t = transformations.begin(); - bool first = true; + + // First transformation is skipped since it should not be part of the toolShape. + t++; + for (; t != transformations.end(); ++t) { // Make an explicit copy of the shape because the "true" parameter to BRepBuilderAPI_Transform // seems to be pretty broken @@ -283,15 +285,14 @@ App::DocumentObjectExecReturn *Transformed::execute(void) shapes.emplace_back(shape); builder.Add(compShape, shape); - if (overlapDetectionMode && !first) + if (overlapDetectionMode) overlapping = overlapping || (countSolids(TopoShape(origShape).fuse(shape))==1); - if (first) - first = false; } TopoDS_Shape toolShape; + #ifndef FC_DEBUG if (overlapping || overlapMode == "Overlap mode") Base::Console().Message("Transformed: Overlapping feature mode (fusing tool shapes)\n"); @@ -300,7 +301,7 @@ App::DocumentObjectExecReturn *Transformed::execute(void) #endif if (overlapping || overlapMode == "Overlap mode") - toolShape = TopoShape(origShape).fuse(shapes, Precision::Confusion()); + toolShape = TopoShape(shape).fuse(shapes, Precision::Confusion()); else toolShape = compShape;