1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00

0027283: Regression vs 6.9.1: smesh/bugs_11/L9: invalid result of General Fuse

Get rid of hard-coded tolerance 0.0001 for intersection with a conical surface.

Small correction of test case for issue CR27283

Adjusting test cases
This commit is contained in:
msv 2016-03-21 18:39:49 +03:00 committed by bugmaster
parent fe3e01db81
commit 0d42485334
4 changed files with 43 additions and 21 deletions

View File

@ -427,7 +427,7 @@ static Standard_Boolean isTreatAnalityc(const TopoDS_Face& theF1,
void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
const TopoDS_Face& aF2)
{
Standard_Boolean RestrictLine = Standard_False, hasCone = Standard_False;
Standard_Boolean RestrictLine = Standard_False;
if (myContext.IsNull()) {
myContext=new IntTools_Context;
@ -555,11 +555,6 @@ void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
BRepTools::UVBounds(myFace2, umin, umax, vmin, vmax);
CorrectSurfaceBoundaries(myFace2, (aTolF1 + aTolF2) * 2., umin, umax, vmin, vmax);
myHS2->ChangeSurface().Load(S2, umin, umax, vmin, vmax);
//
if( aType2==GeomAbs_Cone ) {
TolArc = 0.0001;
hasCone = Standard_True;
}
}
else if ((aType2==GeomAbs_Plane) && isFace1Quad)
{
@ -572,11 +567,6 @@ void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
BRepTools::UVBounds(myFace2, umin, umax, vmin, vmax);
CorrectPlaneBoundaries(umin, umax, vmin, vmax);
myHS2->ChangeSurface().Load(S2, umin, umax, vmin, vmax);
//
if( aType1==GeomAbs_Cone ) {
TolArc = 0.0001;
hasCone = Standard_True;
}
}
else
{
@ -599,7 +589,7 @@ void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
{
const Standard_Real UVMaxStep = 0.001;
const Standard_Real Deflection = (hasCone) ? 0.085 : 0.1;
const Standard_Real Deflection = 0.1;
myIntersector.SetTolerances(TolArc, TolTang, UVMaxStep, Deflection);
}

View File

@ -2,10 +2,8 @@
# cone plane killed by cpulimit 300
# ? - because sometimes test is killed by elapsed time
puts "TODO OCC26020 ALL: Error: bopcheck failed"
puts "TODO OCC26020 ALL: Error : The area of result shape is"
puts "TODO ?OCC26020 Linux: \\*\\* Exception"
puts "TODO ?OCC26020 Linux: An exception"
#puts "TODO OCC26020 Windows: Error : The area of result shape is"
puts "TODO ?OCC26020 ALL: Error: bopcheck failed"
# planar face
plane pln_f1 460.8377555733228 -1160 121.87519451048833 -0.17364817766693036 1.1223734950417248e-017 0.98480775301220813
@ -45,4 +43,4 @@ mkface f7 con_f7 0 6.2831853071795862 0 1000000
# make volume operation
mkvolume result f1 f2 f3 f4 f5 f6 f7
checkprops result -s 0
checkprops result -s 3.7173e+06

View File

@ -1,9 +1,7 @@
# test script on make volume operation
# cone plane killed by cpulimit 300
# ? - because sometimes test is killed by elapsed time
puts "TODO OCC26020 ALL: Error: bopcheck failed"
puts "TODO OCC26020 ALL: Error : The area of result shape is"
puts "TODO ?OCC26020 ALL: Error: bopcheck failed"
# planar face
plane pln_f1 460.8377555733228 -1160 121.87519451048833 -0.17364817766693036 1.1223734950417248e-017 0.98480775301220813
@ -43,4 +41,5 @@ mkface f7 con_f7 0 6.2831853071795862 0 1000000
# make volume operation
mkvolume result f1 f2 f3 f4 f5 f6 f7
checkprops result -s 0
checkprops result -s 1.00927e+07

View File

@ -0,0 +1,35 @@
puts "================"
puts "OCC27283"
puts "================"
puts ""
#######################################################################
# Regression vs 6.9.1: smesh/bugs_11/L9: invalid result of General Fuse
#######################################################################
restore [locate_data_file bug27283_shapes.brep] a
set lst [explode a]
bclearobjects
bcleartools
baddobjects a_1
eval baddtools [lrange $lst 1 end]
bfillds
bbuild result0
checkshape result0
# extract the parts of result corresponding to object
shape result C
foreach s [explode a_1 So] {
bmodified r_$s $s
add r_$s result
}
checknbshapes result -solid 76 -shell 76 -face 279
checkprops result -s 1880.4
smallview
don result
fit
checkview -screenshot -2d -path ${imagedir}/${test_image}.png