1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0027769: BRepOffsetAPI_MakePipeShell produces a face based on degenerated toroidal surface

method BuildKPart was modified in order to create sphere instead of torus in case of major radius <= tolerance
Minor corrections in test case bugs/modalg_6/bug27769
This commit is contained in:
aka
2016-10-27 16:58:38 +03:00
committed by apn
parent 7c3ef2f752
commit b969ebe7cf
2 changed files with 38 additions and 3 deletions

View File

@@ -836,13 +836,21 @@ static Standard_Boolean IsSweepParallelSpine (const Handle(GeomFill_LocationLaw)
if (error <= Tol) {
SError = error;
error += Radius + Abs(RotRadius - C.Radius())/2;
if (error <= Tol) {
if (error <= Tol || Radius <= Tol) {
// (2.1.a) Sphere
Standard_Real f = UFirst , l = ULast;
Standard_Real f = UFirst , l = ULast, aRadius = 0.0;
SError = error;
Centre.BaryCenter(1.0, C.Location(), 1.0);
gp_Ax3 AxisOfSphere(Centre, DN, DS);
gp_Sphere theSphere( AxisOfSphere, (RotRadius + C.Radius())/2 );
if (Radius <= Tol)
{
aRadius = C.Radius();
}
else
{
aRadius = (RotRadius + C.Radius()) / 2;
}
gp_Sphere theSphere( AxisOfSphere, aRadius );
S = new Geom_SphericalSurface(theSphere);
// Pour les spheres on ne peut pas controler le parametre
// V (donc U car myExchUV = Standard_True)