1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-16 10:08:36 +03:00

0028722: Conversion of a spherical face to a spline produces an invalid shape

Correction of 2d tolerance calculation for BSpline/Bezier surfaces
Test cases are corrected according to current behavior of algorithm
This commit is contained in:
ifv 2017-12-04 16:20:19 +03:00 committed by bugmaster
parent 5b7f8e0a69
commit c805f9a8f8
4 changed files with 14 additions and 8 deletions

View File

@ -159,10 +159,20 @@ void BRepTools_WireExplorer::Init(const TopoDS_Wire& W,
if( aGAS.GetType() == GeomAbs_BSplineSurface || if( aGAS.GetType() == GeomAbs_BSplineSurface ||
aGAS.GetType() == GeomAbs_BezierSurface ) aGAS.GetType() == GeomAbs_BezierSurface )
{ {
Standard_Real maxTol = Max(myTolU,myTolV); Standard_Real maxTol = Max(myTolU, myTolV);
myTolU = maxTol; gp_Pnt aP;
myTolV = maxTol; gp_Vec aDU, aDV;
} Standard_Real u1, u2, v1, v2;
BRepTools::UVBounds(myFace, u1, u2, v1, v2);
aGAS.D1((u2 - u1) / 2., (v2 - v1) / 2., aP, aDU, aDV);
Standard_Real mod = Sqrt(aDU*aDU + aDV*aDV);
if (mod * maxTol / dfVertToler < 1.5)
{
maxTol = 1.5 * dfVertToler / mod;
}
myTolU = maxTol;
myTolV = maxTol;
}
myReverse = (myFace.Orientation() == TopAbs_REVERSED); myReverse = (myFace.Orientation() == TopAbs_REVERSED);
} }

View File

@ -1,5 +1,3 @@
puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "========================" puts "========================"
puts "BUC60610" puts "BUC60610"
puts "========================" puts "========================"

View File

@ -1,4 +1,3 @@
puts "TODO OCC28722 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "========" puts "========"
puts "OCC28722" puts "OCC28722"

View File

@ -1,5 +1,4 @@
# !!!! This file is generated automatically, do not edit manually! See end script # !!!! This file is generated automatically, do not edit manually! See end script
puts "TODO CR23096 ALL: CHECKSHAPE : Faulty"
set filename sim6114.igs set filename sim6114.igs