Mantis issue 0021525: EDF GEOM: Tolerance deggradation issue and partition failure

This commit is contained in:
jfa 2012-10-03 12:37:29 +00:00
parent 722fbca6f9
commit 39e0fe04d9

View File

@ -2222,6 +2222,11 @@ static TopoDS_Shape CreatePipeBiNormalAlongVector(const TopoDS_Wire& aWirePath,
Standard_NullObject::Raise("MakePipe aborted : null base argument");
}
// Make copy to prevent modifying of base object: 0021525
BRepBuilderAPI_Copy Copy (aShapeBase);
if (Copy.IsDone())
aShapeBase = Copy.Shape();
TopoDS_Shape aProf;
if (aShapeBase.ShapeType() == TopAbs_VERTEX) {
aProf = aShapeBase;
@ -2233,14 +2238,14 @@ static TopoDS_Shape CreatePipeBiNormalAlongVector(const TopoDS_Wire& aWirePath,
aProf = aShapeBase;
}
else if (aShapeBase.ShapeType() == TopAbs_FACE) {
TopExp_Explorer wexp(aShapeBase,TopAbs_WIRE);
TopExp_Explorer wexp (aShapeBase,TopAbs_WIRE);
aProf = wexp.Current();
}
else {
Standard_TypeMismatch::Raise
("MakePipe aborted : invalid type of base");
}
BRepOffsetAPI_MakePipeShell PipeBuilder(aWirePath);
BRepOffsetAPI_MakePipeShell PipeBuilder (aWirePath);
PipeBuilder.Add(aProf);
if (aShapeVec.IsNull()) {