diff --git a/src/BOPTools/BOPTools_AlgoTools.cxx b/src/BOPTools/BOPTools_AlgoTools.cxx index 297f19842c..1594f27b24 100644 --- a/src/BOPTools/BOPTools_AlgoTools.cxx +++ b/src/BOPTools/BOPTools_AlgoTools.cxx @@ -1126,6 +1126,10 @@ Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse if (!bFlag) { return bRet; } + // + if (theFSp.Orientation()==TopAbs_REVERSED){ + aDNFSp.Reverse(); + } } else { BRep_Tool::Range(aESp, aT1, aT2); diff --git a/tests/bugs/modalg_5/bug25127 b/tests/bugs/modalg_5/bug25127 new file mode 100755 index 0000000000..45801da645 --- /dev/null +++ b/tests/bugs/modalg_5/bug25127 @@ -0,0 +1,38 @@ +puts "================" +puts "OCC25127" +puts "================" +puts "" +####################################################################### +# Wrong result done by General Fuse algorithm +####################################################################### + +restore [locate_data_file bug25127_b1.brep] b1 +restore [locate_data_file bug25127_b2.brep] b2 + +bclearobjects +bcleartools +baddobjects b1 +baddtools b2 +bfillds +bbuild result + +regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full volume + +set expected_volume 620.091 +set tol_abs_volume 1.0e-3 +set tol_rel_volume 0.001 +checkreal "Volume" ${volume} ${expected_volume} ${tol_abs_volume} ${tol_rel_volume} + +set square 842.655 + +set nb_v_good 4 +set nb_e_good 6 +set nb_w_good 2 +set nb_f_good 2 +set nb_sh_good 3 +set nb_sol_good 2 +set nb_compsol_good 0 +set nb_compound_good 1 +set nb_shape_good 20 + +set 3dviewer 1