]> OCCT Git - occt-copy.git/commitdiff
0031470: Modeling Algorithms - Regression: BOP common produces empty result (box...
authorjgv <jgv@opencascade.com>
Mon, 30 Mar 2020 18:18:47 +0000 (21:18 +0300)
committerrnv <rnv@opencascade.com>
Tue, 31 Mar 2020 12:50:47 +0000 (15:50 +0300)
Approx_ComputeCLine.gxx : number of possible cuttings is increased, tolerance in U parameter is reduced.

src/Approx/Approx_ComputeCLine.gxx
tests/bugs/modalg_7/bug31470 [new file with mode: 0644]

index 51eab1d9f5e4d5a73b687b7146b780849a9836ff..4d86c3fb93f37cdee8ce4f9a795365f51bce2985 100644 (file)
@@ -97,12 +97,12 @@ void Approx_ComputeCLine::Perform(const MultiLine& Line)
   Standard_Real thetol3d = Precision::Confusion(), thetol2d = Precision::Confusion();
   UFirst = Line.FirstParameter();
   ULast = Line.LastParameter();
-  Standard_Real TolU = Max((ULast - UFirst)*1.e-03, Precision::Confusion());
+  Standard_Real TolU = Max((ULast-UFirst)*1.e-05, Precision::PApproximation());
   Standard_Real myfirstU = UFirst;
   Standard_Real mylastU = ULast;
   Standard_Integer aMaxSegments = 0;
   Standard_Integer aMaxSegments1 = myMaxSegments - 1;
-  Standard_Integer aNbCut = 0, aNbImp = 0, aNbComp = 10;
+  Standard_Integer aNbCut = 0, aNbImp = 0, aNbComp = 20;
 
   if (!mycut)
   {
diff --git a/tests/bugs/modalg_7/bug31470 b/tests/bugs/modalg_7/bug31470
new file mode 100644 (file)
index 0000000..f109c73
--- /dev/null
@@ -0,0 +1,36 @@
+puts "================================================================="
+puts "OCC31470: BOP common produces empty result (box and holed sphere)"
+puts "================================================================="
+puts ""
+
+plane pln1 51.899912462 99.996691888 62.33204004
+psphere s1 pln1 15
+psphere s2 pln1 10
+bcut ss s1 s2
+box bb 100 100 100
+
+bcommon result bb ss
+savehistory hh
+
+explode ss f
+modified ff hh ss_1
+generated ee hh ss_1
+
+checkshape result
+
+checknbshapes result -solid 1 -shell 1 -face 3 -wire 6 -edge 8 -vertex 6
+
+set tolres [checkmaxtol result]
+
+if { ${tolres} > 2.e-7} {
+   puts "Error: bad tolerance of result"
+}
+
+checkprops result -v 4975.49
+
+v2d
+pcurve pc ee ff
+trim pc pc
+2dfit
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png