0021563: EDF GEOM: Extrusion with scale factor sometimes gives wrong shapes

This commit is contained in:
skv 2013-07-31 12:54:30 +00:00
parent bd234baffa
commit e8922cac3a

View File

@ -939,6 +939,9 @@ TopoDS_Shape GEOMImpl_PipeDriver::CreatePipeWithDifferentSections
Standard_ConstructionError::Raise("Invalid sections were specified for building pipe"); Standard_ConstructionError::Raise("Invalid sections were specified for building pipe");
} }
Standard_Integer ind =0; Standard_Integer ind =0;
Standard_Real aTolConf = Precision::Confusion();
Standard_Real aTolAng = Precision::Angular();
for (i = 1; i <= nbShapes && ind < nbShapes; i++) { //i+nbBases <= nbShapes for (i = 1; i <= nbShapes && ind < nbShapes; i++) { //i+nbBases <= nbShapes
TopTools_SequenceOfShape usedBases; TopTools_SequenceOfShape usedBases;
Standard_Integer j = 1; Standard_Integer j = 1;
@ -957,6 +960,9 @@ TopoDS_Shape GEOMImpl_PipeDriver::CreatePipeWithDifferentSections
if (!aBuilder.IsReady()) { if (!aBuilder.IsReady()) {
Standard_ConstructionError::Raise("Invalid input data for building PIPE: bases are invalid"); Standard_ConstructionError::Raise("Invalid input data for building PIPE: bases are invalid");
} }
aBuilder.SetTolerance(aTolConf, aTolConf, aTolAng);
aBuilder.Build(); aBuilder.Build();
aShape = aBuilder.Shape(); aShape = aBuilder.Shape();
aSeqFaces.Append(aShape); aSeqFaces.Append(aShape);