0021546: EDF 2129 GEOM: Different behavior btw circle and exploded base edge of a cylinder

the base face must be planar for BRepFeat_MakeDPrism
This commit is contained in:
eap 2012-06-06 13:00:33 +00:00
parent 40f5df35aa
commit ed2c8fe24c

View File

@ -450,8 +450,9 @@ TopoDS_Shape GEOMImpl_PrismDriver::MakeDraftPrism ( const TopoDS_Shape& theInitS
if (!aWire.Closed())
Standard_ConstructionError::Raise("The input profile is not closed");
// Construction of the face if the wire hasn't any support face
TopoDS_Face aFaceBase = BRepBuilderAPI_MakeFace(aWire);
// Construction of the face if the wire hasn't any support face;
// the face must be planar for BRepFeat_MakeDPrism
TopoDS_Face aFaceBase = BRepBuilderAPI_MakeFace(aWire, /*OnlyPlane=*/true);
if(!theSupport.IsNull() && theSupport.ShapeType() == TopAbs_FACE) // If the wire has a support
{
@ -481,7 +482,7 @@ TopoDS_Shape GEOMImpl_PrismDriver::MakeDraftPrism ( const TopoDS_Shape& theInitS
aHeight = -theHeight;
}
BRepFeat_MakeDPrism aPrism(theInitShape, aFaceBase, TopoDS_Face(),
BRepFeat_MakeDPrism aPrism(theInitShape, aFaceBase, aFaceBase,
anAngle*M_PI/180., isProtrusion, Standard_True);
aPrism.Perform(aHeight);