0027283: Regression vs 6.9.1: smesh/bugs_11/L9: invalid result of General Fuse
authormsv <msv@opencascade.com>
Mon, 21 Mar 2016 15:39:49 +0000 (18:39 +0300)
committerbugmaster <bugmaster@opencascade.com>
Tue, 29 Mar 2016 12:52:07 +0000 (15:52 +0300)
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

src/IntTools/IntTools_FaceFace.cxx
tests/boolean/volumemaker/E4
tests/boolean/volumemaker/E5
tests/bugs/modalg_6/bug27283 [new file with mode: 0644]

index 1d1e814..be31b13 100644 (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); 
   }
   
index bf0a133..161164c 100644 (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
index d3b2831..5188c30 100644 (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
+
diff --git a/tests/bugs/modalg_6/bug27283 b/tests/bugs/modalg_6/bug27283
new file mode 100644 (file)
index 0000000..aed5d7d
--- /dev/null
@@ -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