From: nbv Date: Fri, 26 Oct 2018 11:06:28 +0000 (+0300) Subject: 0028493: [Regression vs 7.0.0] Intersection algorithm produces curve with loop X-Git-Tag: V7_4_0_beta~348 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=a6ebe9fc7c1dc34a5b2c375d9849d1020efd4282;p=occt-copy.git 0028493: [Regression vs 7.0.0] Intersection algorithm produces curve with loop 1. New testgrid "lowalgos/intss" has been created. It will contain all test cases on geometrical intersection of two surfaces ("intersect" DRAW-command) and two faces ("bopcurves" DRAW-command). 2. New test case for the issue #28493 has been created because the problem is not reproduced on MASTER. 3. Test case (lowalgos/intss/bug24472) for the issue #29501 has been modified in order to check loops of the resulting intersection curves. --- diff --git a/tests/bugs/modalg_2/bug23218 b/tests/bugs/modalg_2/bug23218 deleted file mode 100755 index f76240a657..0000000000 --- a/tests/bugs/modalg_2/bug23218 +++ /dev/null @@ -1,26 +0,0 @@ -puts "TODO OCC25597 ALL: Error: Reached tolerance" -puts "============" -puts "OCC23218" -puts "============" -puts "" -####################################################################### -# Wrong value of tolerance for the intersection curve. -####################################################################### - -set BugNumber OCC23218 - -puts "Load first shape ..." -restore [locate_data_file bug23218_b1] b1 - -puts "Load second shape ..." -restore [locate_data_file bug23218_b4] b2 - -puts "Start project operation ..." -set result [bopcurves b1 b2] -puts $result -puts "Finish project operation ..." - -set GoodToleranceReached 6.3315853638232248e-007 -regexp {Tolerance Reached=([-0-9.+eE]+)} $result full ToleranceReached - -checkreal "Reached tolerance" ${ToleranceReached} ${GoodToleranceReached} 0 0.001 diff --git a/tests/bugs/modalg_2/bug23699 b/tests/bugs/modalg_2/bug23699 deleted file mode 100755 index 873dff1e9e..0000000000 --- a/tests/bugs/modalg_2/bug23699 +++ /dev/null @@ -1,18 +0,0 @@ -puts "=========" -puts "CR23699" -puts "=========" -puts "" -############################### -## Exception reaised during intersection between two surfaces -############################### - -restore [locate_data_file bug23699_Compound_sigsegv.brep] b1 - -explode b1 f - -mksurface s1 b1_1 -mksurface s2 b1_2 - -intersect result s1 s2 - -checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_2/bug23732 b/tests/bugs/modalg_2/bug23732 deleted file mode 100755 index 91159d7052..0000000000 --- a/tests/bugs/modalg_2/bug23732 +++ /dev/null @@ -1,17 +0,0 @@ -puts "=========" -puts "CR23722" -puts "=========" -puts "" -############################### -## Exception reaised during intersection between two surfaces -############################### - -restore [locate_data_file bug23732_fx1.brep] b1 -restore [locate_data_file bug23732_fx2.brep] b2 - -mksurface s1 b1 -mksurface s2 b2 - -intersect result s1 s2 - -checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug22766 b/tests/bugs/modalg_5/bug22766 deleted file mode 100755 index 73118ab088..0000000000 --- a/tests/bugs/modalg_5/bug22766 +++ /dev/null @@ -1,15 +0,0 @@ -puts "============" -puts "CR22766" -puts "============" -puts "" -##################################################################################################################### -# Wrong results done by several algorithms for the case of intersection between a surface of revolution and a plane -##################################################################################################################### - -restore [locate_data_file bug22766_f1] f1 -restore [locate_data_file bug22766_f2] f2 - -mksurface s1 f1 -mksurface s2 f2 - -intersect result s1 s2 diff --git a/tests/bugs/modalg_5/bug23948_1 b/tests/bugs/modalg_5/bug23948_1 deleted file mode 100644 index e4bf6e9001..0000000000 --- a/tests/bugs/modalg_5/bug23948_1 +++ /dev/null @@ -1,45 +0,0 @@ -puts "=========" -puts "OCC23948" -puts "=========" -puts "" -########################################################### -# Wrong intersection between a surface of revolution and a plane. -########################################################### - -set MaxTol 1.0e-6 -set NbCurv_OK 2 - -restore [locate_data_file bug22766_f1] f1 -restore [locate_data_file bug22766_f2] f2 - -set log [bopcurves f1 f2 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${NbCurv} != ${NbCurv_OK}} { - puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found." -} - -checkreal TolReached ${Toler} ${MaxTol} 0.0 0.1 - -bclearobjects -bcleartools - -for { set i 1 } { $i <= $NbCurv } { incr i } { - mkedge ee c_$i - baddobjects ee -} - -if { $NbCurv > 1 } { - bfillds - bbuild rs - checksection rs -r 2 - checkmaxtol rs -ref $MaxTol - checkprops rs -l 111.803 -} - -smallview -don c_* -fit -disp f1 f2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug23948_2 b/tests/bugs/modalg_5/bug23948_2 deleted file mode 100644 index 26a2a4419f..0000000000 --- a/tests/bugs/modalg_5/bug23948_2 +++ /dev/null @@ -1,36 +0,0 @@ -puts "=========" -puts "OCC23948" -puts "=========" -puts "" -########################################################### -# Wrong intersection between a surface of revolution and a plane. -########################################################### - -foreach a [directory c_*] {unset $a} - -restore [locate_data_file bug22766_f1] f1 -restore [locate_data_file bug22766_f2] f2 - -mksurface s1 f1 -mksurface s2 f2 - -set log [bopcurves f1 f2] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -for { set i 1 } { $i <= $NbCurv } { incr i } { - bounds c_$i U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 0 1 10 2.0e-7 - xdistcs c_$i s2 0 1 10 2.0e-7 -} - -smallview -don c_* -fit -disp s1 s2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug24299 b/tests/bugs/modalg_5/bug24299 deleted file mode 100755 index ec6ce1b5d9..0000000000 --- a/tests/bugs/modalg_5/bug24299 +++ /dev/null @@ -1,22 +0,0 @@ -puts "=========" -puts "CR24299" -puts "=========" -puts "" -############################### -## Wrong section curve -############################### - -restore [locate_data_file pro19653a.brep] b1 -restore [locate_data_file pro19653b.brep] b2 - -explode b1 f -explode b2 f -mksurface s1 b1_1 -mksurface s2 b2_1 -intersect i s1 s2 - -xdistcs i_2 s1 0 1 10 1e-5 - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug24313 b/tests/bugs/modalg_5/bug24313 deleted file mode 100755 index 5a279888cc..0000000000 --- a/tests/bugs/modalg_5/bug24313 +++ /dev/null @@ -1,14 +0,0 @@ -puts "============" -puts "OCC24313" -puts "============" -puts "" -####################################################################### -# BRepAlgoAPI_Section and IntTools_FaceFace aren't written to handle Geom_SurfaceOfLinearExtrusion -####################################################################### - -circle c 0 0 0 0 0 1 1 0 0 100 -extsurf s1 c 0 0 1 -plane s2 0 0 0 1 0 0 0 1 0 -mkface b1 s1 -mkface b2 s2 -bopcurves b1 b2 diff --git a/tests/bugs/modalg_5/bug24472 b/tests/bugs/modalg_5/bug24472 deleted file mode 100755 index 897851b1d3..0000000000 --- a/tests/bugs/modalg_5/bug24472 +++ /dev/null @@ -1,73 +0,0 @@ -puts "=========" -puts "CR24472" -puts "=========" -puts "" -############################### -## Wrong section curves -############################### - -puts "TODO OCC29501 ALL: Error in ii12_22" - -set MaxToler 1.5e-4 - -restore [locate_data_file bug24472_Pipe_1.brep] b1 - -explode b1 f -copy b1_2 f1 -copy b1_3 f2 -copy b1_6 f3 -mksurface s1 f1 -mksurface s2 f2 -mksurface s3 f3 - -puts "" -puts "First test" -# 1.1 geometry -intersect ii12 s1 s2 - -foreach c [directory ii12*] { - bounds $c U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs $c s1 U1 U2 10 $MaxToler - xdistcs $c s2 U1 U2 10 $MaxToler -} - -puts "" -puts "Second test" -# 1.2 topology -bsection r12 f1 f2 -bopcheck r12 -# OK - -regexp {Tolerance MAX=([-0-9.+eE]+)} [tolerance r12] full toler -if { $toler > $MaxToler } { puts "Error: Tolerance of the section r12 is too large" } - -puts "" -puts "Third test" -# 2.1 geometry -intersect ii13 s1 s3 - -foreach c [directory ii13*] { - bounds $c U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs $c s1 U1 U2 10 $MaxToler - xdistcs $c s2 U1 U2 10 $MaxToler -} - -puts "" -puts "Fourth test" -# 2.2 topology -bsection r13 f1 f3 -bopcheck r13 -# OK - -regexp {Tolerance MAX=([-0-9.+eE]+)} [tolerance r13] full toler -if { $toler > $MaxToler } { puts "Error: Tolerance of the section r13 is too large" } diff --git a/tests/bugs/modalg_5/bug24505 b/tests/bugs/modalg_5/bug24505 deleted file mode 100644 index 83d686bc1a..0000000000 --- a/tests/bugs/modalg_5/bug24505 +++ /dev/null @@ -1,20 +0,0 @@ -puts "===========" -puts "OCC24505" -puts "===========" -puts "" -############################################################## -# Wrong section curves between Cone and Cylinder with collinear axes -############################################################## - -restore [locate_data_file bug24505_f1.brep] f1 -restore [locate_data_file bug24505_f2.brep] f2 - -bopcurves f1 f2 - -set info [dump c_1] - -if { [regexp "Circle" $info] != 1 } { - puts "Error : Wrong section curves" -} else { - puts "OK : Good section curves" -} diff --git a/tests/bugs/modalg_5/bug24585_1 b/tests/bugs/modalg_5/bug24585_1 deleted file mode 100644 index 9c8598473c..0000000000 --- a/tests/bugs/modalg_5/bug24585_1 +++ /dev/null @@ -1,67 +0,0 @@ -puts "=========" -puts "OCC24585" -puts "=========" -puts "" -########################################################### -# Wrong pcurve of the section curve -########################################################### - -set NbCurv_OK 1 - -restore [locate_data_file bug24585_b1.brep] b1 -restore [locate_data_file bug24585_b2.brep] b2 - -mksurface s1 b1 -bounds s1 U1f_exp U1l_exp V1f_exp V1l_exp - -set log [bopcurves b1 b2 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${NbCurv} != ${NbCurv_OK}} { - puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found." -} - -if { ${Toler} > 5.e-5} { - puts "Error: bad tolerance of result" -} - -bounds c2d1_1 U1 U2 -2dcvalue c2d1_1 U1 U_begin V_begin -2dcvalue c2d1_1 U2 U_end V_end - -#Theoretically, c2d1_1 must cover U-diapason of surface s1 fully. - -set delta_f [dval U1f_exp-U_begin] - -#ATTENTION!!! U_begin must be strictly equal U1f_exp (without any tolerance) -if {${delta_f} != 0} { - puts "Error: Bad value. U_begin = [dval U_begin], Ufirst = [dval U1f_exp]." -} else { - puts "OK: Good value. U_begin matches with Ufirst of surface." -} - -puts "" - -set delta_l [dval U1l_exp-U_end] - -#ATTENTION!!! U_end must be strictly equal U1l_exp (without any tolerance) -if {${delta_l} != 0} { - puts "Error: Bad value. U_end = [dval U_end], Ulast = [dval U1l_exp]." -} else { - puts "OK: Good value. U_end matches with Ulast of surface." -} - -puts "" -puts "Check if tangents in first and last point of line have the same directions" - -#See bug#26752 -cvalue c_1 U1 xx yy zz dx1 dy1 dz1 -cvalue c_1 U2 xx yy zz dx2 dy2 dz2 - -set DP [dval dx1*dx2+dy1*dy2+dz1*dz2] -if {${DP} < 0} { - puts "Error: Tangents are reversed. Bug 26752 is reproduced." -} else { - puts "OK: Tangents are not reversed." -} diff --git a/tests/bugs/modalg_5/bug24612 b/tests/bugs/modalg_5/bug24612 deleted file mode 100644 index 6a3357b49e..0000000000 --- a/tests/bugs/modalg_5/bug24612 +++ /dev/null @@ -1,82 +0,0 @@ -puts "=========" -puts "OCC24612" -puts "=========" -puts "" -########################################################### -# Wrong pcurve of the section curve -########################################################### - -set MaxTol 7.0e-5 -set NbCurv_OK 1 -restore [locate_data_file bug24612_b1.brep] b1 -restore [locate_data_file bug24612_b2.brep] b2 - -mksurface s1 b1 -bounds s1 U1f_exp U1l_exp V1f_exp V1l_exp - -dval U1f_exp -dval U1l_exp -dval V1f_exp -dval V1l_exp - -set log [bopcurves b1 b2 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${NbCurv} != ${NbCurv_OK}} { - puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found." -} - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -#Theoretically, c2d1_1 must cover V-diapason of surface s1 fully. - -set log [dump c2d1_1] - -regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles -puts "Degree=${Degree}" -puts "Poles=${Poles}" -puts "KnotsPoles=${KnotsPoles}" -puts "" - -set Pole 1 -set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" -regexp ${exp_string} ${log} full U_begin V_begin - -puts "Pole=${Pole}" -puts "U_begin=${U_begin}" -puts "V_begin=${V_begin}" -dset V_begin ${V_begin} -puts "" - -set Pole ${Poles} -set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" -regexp ${exp_string} ${log} full U_end V_end - -puts "Pole=${Pole}" -puts "U_end=${U_end}" -puts "V_end=${V_end}" -dset V_end ${V_end} -puts "" - -set delta_f [dval V1l_exp-V_begin] - -#ATTENTION!!! V_begin must be strictly equal V1l_exp (without any tolerance) -if {${delta_f} != 0} { - puts "Error: Bad value. V_begin = [dval V_begin], Vlast = [dval V1l_exp]." -} else { - puts "OK: Good value. V_begin matches with Vlast of surface." -} - -puts "" - -set delta_l [dval V1f_exp-V_end] - -#ATTENTION!!! V_end must be strictly equal V1f_exp (without any tolerance) -if {${delta_l} != 0} { - puts "Error: Bad value. V_end = [dval V_end], Vfirst = [dval V1f_exp]." -} else { - puts "OK: Good value. V_end matches with Vfirst of surface." -} diff --git a/tests/bugs/modalg_5/bug24643 b/tests/bugs/modalg_5/bug24643 deleted file mode 100755 index 0fedc978b0..0000000000 --- a/tests/bugs/modalg_5/bug24643 +++ /dev/null @@ -1,25 +0,0 @@ -puts "================" -puts "OCC24643" -puts "================" -puts "" -####################################################################### -# No section curve between plane and cone -####################################################################### - -restore [locate_data_file bug24643_b1.brep] b1 -restore [locate_data_file bug24643_b2.brep] b2 -bopcurves b1 b2 -checklength c_1 -l 107.39085794960783 - -set log [dump c_1] -if {[regexp {Trimmed +curve} ${log}]} { - puts "OK: section curve is good" -} else { - puts "Error: section curve is bad" -} - -smallview -donly c_1 b1 b2 -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug24648 b/tests/bugs/modalg_5/bug24648 deleted file mode 100644 index 8f6b7dcbbd..0000000000 --- a/tests/bugs/modalg_5/bug24648 +++ /dev/null @@ -1,36 +0,0 @@ -puts "===========" -puts "OCC24648" -puts "===========" -puts "" -############################################################## -# Different types of intersection curves between Cone and Torus with a different order of arguments -############################################################## - -cone s1 60 0 -torus s2 30 20 - -intersect i1 s1 s2 -set info1 [dump i1_1] - -intersect i2 s2 s1 -set info2 [dump i2_1] - -set type_of_curve "Circle" - -if { [regexp ${type_of_curve} ${info1}] != 1 } { - puts "Error : Wrong type of intersection curve #1" -} else { - puts "OK : Good type of intersection curve #1" -} - -if { [regexp ${type_of_curve} ${info2}] != 1 } { - puts "Error : Wrong type of intersection curve #2" -} else { - puts "OK : Good type of intersection curve #2" -} - -smallview -donly i1_1 i2_1 -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/modalg_5/bug24650 b/tests/bugs/modalg_5/bug24650 deleted file mode 100644 index 4b33f5f33c..0000000000 --- a/tests/bugs/modalg_5/bug24650 +++ /dev/null @@ -1,64 +0,0 @@ -puts "===========" -puts "OCC24650" -puts "===========" -puts "" -############################################################## -# Wrong intersection curves obtained for a surface of revolution and a plane. -############################################################## - -set GoodNbCurv 1 - -restore [locate_data_file bug24650_fz1365.brep] b1 -restore [locate_data_file bug24650_fz2495.brep] b2 - -mksurface sb1 b1 -mksurface sb2 b2 -trimu sb1tu sb1 0.242 0.291 - -clear - -set N [intersect res sb1tu sb2] - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - display res_$ic - - bounds res_$ic U1 U2 - - dval U1 - dval U2 - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic sb1tu U1 U2 10 1e-7 - xdistcs res_$ic sb2 U1 U2 10 1e-7 - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Curve Number is good!" -} else { - puts "Error: Curve Number is bad!" -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug24915 b/tests/bugs/modalg_5/bug24915 deleted file mode 100755 index 2c25dd4e91..0000000000 --- a/tests/bugs/modalg_5/bug24915 +++ /dev/null @@ -1,50 +0,0 @@ -puts "TODO OCC26927 ALL: Error: Tolerance is too big!" - -puts "=========" -puts "CR24915" -puts "=========" -puts "" -############################### -## Wrong intersection curves between two cylinders -############################### - -puts "##############################" -puts "#!!!Searh \"Attention\" keyword on this web-page for additinal checking!!!" -puts "##############################" - -restore [locate_data_file bug24915_ft2.brep] b1 -restore [locate_data_file bug24915_ft3.brep] b2 - -# 1. topology -bclearobjects -bcleartools -baddobjects b1 b2 -bfillds -bbuild r -checkshape r - -# 2. geometry -set MaxTol 1.0e-7 -set GoodNBCurv 3 - -set log [bopcurves b1 b2 -2d] - -if { ! [regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv] } { - puts "Error: Cannot find tolerance value in output of bopcurve command" -} - -if { $NbCurv != $GoodNBCurv } { - puts "Error: Number of curves is wrong!" -} - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -smallview - -for {set i 1} {$i <= $GoodNBCurv} {incr i} { - donly b2 c_$i - fit - checkview -screenshot -2d -path ${imagedir}/${test_image}_$i.png -} diff --git a/tests/bugs/modalg_5/bug25193 b/tests/bugs/modalg_5/bug25193 deleted file mode 100755 index e401b254b6..0000000000 --- a/tests/bugs/modalg_5/bug25193 +++ /dev/null @@ -1,105 +0,0 @@ -puts "TODO OCC27116 ALL: Error: Summary length =" -puts "TODO OCC27116 ALL: Error: 1 intersection curve\\(s\\) expected but" - -puts "================" -puts "OCC25193" -puts "================" -puts "" -####################################################################### -# Bad Intersection curveobtained by Surface/Surface Intersection Algorithm. -####################################################################### - -puts "" - -pload QAcommands - -set GoodNbCurv 1 -set GoodTol 3.6570868343352305e-005 -set NbControlPts 10 - -restore [locate_data_file bug25193_s1t.draw] s1 -restore [locate_data_file bug25193_s4t.draw] s4 - -#Ethalon of intersection curve -bounds s1 us1 us2 vs1 vs2 -uiso cc s1 us1 - -regexp {is ([-0-9.+eE]+)} [length cc 1.0e-4] full ExpLength -puts "Expected length = $ExpLength" - -intersect res s1 s4 $GoodTol -set che [whatis res] -set ind [string first "3d curve" $che] - -set AllowRepeate 1 -set ic 1 - -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -set SumLength 0 - -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - break - } - - for {set jc 1} {$jc < $ic} {incr jc} { - mkedge e1 res_$ic - mkedge e2 res_$jc - set coe [checkoverlapedges e1 e2] - - puts "res_$ic <-> res_$jc: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: Overlapped intersection curves" - } - } - - regexp {is ([-0-9.+eE]+)} [length res_$ic 1.0e-4] full ll - - set SumLength [ expr $SumLength+$ll ] - - bounds res_$ic U1 U2 - - set step [ dval (U2-U1)/$NbControlPts ] - - if { $step < 1.0e-9*$NbControlPts } { - puts "Error: Wrong curve's range!" - } - - set DPPrev 0 - for {set par [dval U1]} {$par <= [dval U2]} {set par [expr $par+$step]} { - cvalue res_$ic $par xx yy zz dx1 dy1 dz1 - regexp " parameter 1 = +(\[-0-9*\.+eE\]+)" [proj cc xx yy zz] full cpar - cvalue cc $cpar xx yy zz dx2 dy2 dz2 - - set DP [dval dx1*dx2+dy1*dy2+dz1*dz2] - - if {$DPPrev*$DP < 0.0} { - puts "Error: Curve res_$ic changes its direction" - } - - set DPPrev $DP - } - - incr ic -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Good number of intersection curve(s) obtained by Surface/Surface Intersection Algorithm" -} else { - puts "Error: $GoodNbCurv intersection curve(s) expected but [expr {$ic - 1}] found" -} - -checkreal "Summary length " ${SumLength} $ExpLength 0.0 1.0e-6 - -smallview -donly res_* s1 s4 -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25224 b/tests/bugs/modalg_5/bug25224 deleted file mode 100755 index 6937dd22da..0000000000 --- a/tests/bugs/modalg_5/bug25224 +++ /dev/null @@ -1,37 +0,0 @@ -puts "================" -puts "OCC25224" -puts "================" -puts "" -####################################################################### -# The section curve between two cylindrical faces is incomplete -####################################################################### - -restore [locate_data_file bug25224_Input_5.brep] b1 -restore [locate_data_file bug25224_Input_21.brep] b2 - -# 1. bopcurves -explode b1 f -explode b2 f - -set log [bopcurves b1_1 b2_1] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv -set MaxTol 1.e-7 -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} -checklength c_1 -l 0.52377379499528021 - -# 2. BOP -bclearobjects -bcleartools -baddobjects b1 -baddtools b2 -bfillds -bbuild result - -checkprops result -s 21.4983 -checkshape result - -checknbshapes result -vertex 10 -edge 19 -wire 13 -face 13 -shell 3 -solid 3 -compsolid 0 -compound 1 -shape 62 -checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25248 b/tests/bugs/modalg_5/bug25248 deleted file mode 100755 index 1d924cfbc6..0000000000 --- a/tests/bugs/modalg_5/bug25248 +++ /dev/null @@ -1,12 +0,0 @@ -puts "=========" -puts "CR25248" -puts "=========" -puts "" -############################### -## Curve-Surface intersection algorithm raises exception -############################### - -restore [locate_data_file bug25248_c.draw] c -restore [locate_data_file bug25111_s2.draw] s - -intersect i c s diff --git a/tests/bugs/modalg_5/bug25292_11 b/tests/bugs/modalg_5/bug25292_11 deleted file mode 100644 index de9171d948..0000000000 --- a/tests/bugs/modalg_5/bug25292_11 +++ /dev/null @@ -1,68 +0,0 @@ -puts "================" -puts "OCC25292" -puts "================" -puts "" -####################################################################### -# Face/Face intersection algorithm gives different results for different order of the arguments -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25292_Input_0.brep] b1 -restore [locate_data_file bug25292_Input_1.brep] b2 - -explode b1 f -copy b1_2 f1 -explode b2 f -copy b2_2 f2 - -############################# -set log [bopcurves f1 f2 -2d] -############################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -#This value must be equal to the analogical value in bug25292_11 and bug25292_12 of "bugs modalg_5" testgrid. -set MaxTol 2.0e-7 - -#This value must be equal to the analogical value in bug25292_11, bug25292_12, bug25292_15 and bug25292_16 of "bugs modalg_5" testgrid. -set GoodNbCurv 4 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -#------------- - -puts "" - -mksurface s1 f1 -mksurface s2 f2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - puts "U2=[dval U1]" - puts "U2=[dval U2]" - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 U1 U2 10 ${Toler} - xdistcs c_$i s2 U1 U2 10 ${Toler} -} - -v2d -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25292_12 b/tests/bugs/modalg_5/bug25292_12 deleted file mode 100644 index 61e028aa8f..0000000000 --- a/tests/bugs/modalg_5/bug25292_12 +++ /dev/null @@ -1,68 +0,0 @@ -puts "================" -puts "OCC25292" -puts "================" -puts "" -####################################################################### -# Face/Face intersection algorithm gives different results for different order of the arguments -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25292_Input_0.brep] b1 -restore [locate_data_file bug25292_Input_1.brep] b2 - -explode b1 f -copy b1_2 f1 -explode b2 f -copy b2_2 f2 - -############################# -set log [bopcurves f2 f1 -2d] -############################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -#This value must be equal to the analogical value in bug25292_11 and bug25292_12 of "bugs modalg_5" testgrid. -set MaxTol 2.0e-7 - -#This value must be equal to the analogical value in bug25292_11, bug25292_12, bug25292_15 and bug25292_16 of "bugs modalg_5" testgrid. -set GoodNbCurv 4 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -#------------- - -puts "" - -mksurface s1 f1 -mksurface s2 f2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - puts "U2=[dval U1]" - puts "U2=[dval U2]" - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 U1 U2 10 ${Toler} - xdistcs c_$i s2 U1 U2 10 ${Toler} -} - -v2d -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25292_21 b/tests/bugs/modalg_5/bug25292_21 deleted file mode 100644 index 516f96dac4..0000000000 --- a/tests/bugs/modalg_5/bug25292_21 +++ /dev/null @@ -1,68 +0,0 @@ -puts "================" -puts "OCC25292" -puts "================" -puts "" -####################################################################### -# Face/Face intersection algorithm gives different results for different order of the arguments -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25292_Input_3.brep] b1 -restore [locate_data_file bug25292_Input_11.brep] b2 - -explode b1 f -copy b1_1 f1 -explode b2 f -copy b2_1 f2 - -######################### -set log [bopcurves f1 f2 -2d] -######################### - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -#This value must be equal to the analogical value in bug25292_21 and bug25292_22 of "bugs modalg_5" testgrid. -set MaxTol 1.e-7 - -#This value must be equal to the analogical value in bug25292_21, bug25292_22, bug25292_25 and bug25292_26 of "bugs modalg_5" testgrid. -set GoodNbCurv 2 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -#------------- - -puts "" - -mksurface s1 f1 -mksurface s2 f2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - puts "U2=[dval U1]" - puts "U2=[dval U2]" - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 U1 U2 10 ${Toler} - xdistcs c_$i s2 U1 U2 10 ${Toler} -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25292_22 b/tests/bugs/modalg_5/bug25292_22 deleted file mode 100644 index b641b0a3b5..0000000000 --- a/tests/bugs/modalg_5/bug25292_22 +++ /dev/null @@ -1,68 +0,0 @@ -puts "================" -puts "OCC25292" -puts "================" -puts "" -####################################################################### -# Face/Face intersection algorithm gives different results for different order of the arguments -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25292_Input_3.brep] b1 -restore [locate_data_file bug25292_Input_11.brep] b2 - -explode b1 f -copy b1_1 f1 -explode b2 f -copy b2_1 f2 - -######################### -set log [bopcurves f2 f1 -2d] -######################### - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -#This value must be equal to the analogical value in bug25292_21 and bug25292_22 of "bugs modalg_5" testgrid. -set MaxTol 1.e-7 - -#This value must be equal to the analogical value in bug25292_21, bug25292_22, bug25292_25 and bug25292_26 of "bugs modalg_5" testgrid. -set GoodNbCurv 2 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -#------------- - -puts "" - -mksurface s1 f1 -mksurface s2 f2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - puts "U2=[dval U1]" - puts "U2=[dval U2]" - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 U1 U2 10 ${Toler} - xdistcs c_$i s2 U1 U2 10 ${Toler} -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25292_31 b/tests/bugs/modalg_5/bug25292_31 deleted file mode 100644 index b807823edd..0000000000 --- a/tests/bugs/modalg_5/bug25292_31 +++ /dev/null @@ -1,62 +0,0 @@ -puts "================" -puts "OCC25292" -puts "================" -puts "" -####################################################################### -# Face/Face intersection algorithm gives different results for different order of the arguments -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25292_f1.brep] f1 -restore [locate_data_file bug25292_f2.brep] f2 - -############################# -set log [bopcurves f1 f2 -2d] -############################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. -set MaxTol 1.3e-7 - -#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. -set GoodNbCurv 1 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!!" -} - -#------------- - -puts "" - -mksurface s1 f1 -mksurface s2 f2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - puts "U2=[dval U1]" - puts "U2=[dval U2]" - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 U1 U2 10 ${Toler} - xdistcs c_$i s2 U1 U2 10 ${Toler} -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25292_32 b/tests/bugs/modalg_5/bug25292_32 deleted file mode 100644 index 04a5a0e620..0000000000 --- a/tests/bugs/modalg_5/bug25292_32 +++ /dev/null @@ -1,62 +0,0 @@ -puts "================" -puts "OCC25292" -puts "================" -puts "" -####################################################################### -# Face/Face intersection algorithm gives different results for different order of the arguments -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25292_f1.brep] f1 -restore [locate_data_file bug25292_f2.brep] f2 - -############################# -set log [bopcurves f2 f1 -2d] -############################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. -set MaxTol 1.3e-7 - -#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. -set GoodNbCurv 1 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!!" -} - -#------------- - -puts "" - -mksurface s1 f1 -mksurface s2 f2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - puts "U2=[dval U1]" - puts "U2=[dval U2]" - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 U1 U2 10 ${Toler} - xdistcs c_$i s2 U1 U2 10 ${Toler} -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25380 b/tests/bugs/modalg_5/bug25380 deleted file mode 100755 index c668905028..0000000000 --- a/tests/bugs/modalg_5/bug25380 +++ /dev/null @@ -1,26 +0,0 @@ -puts "================" -puts "OCC25380" -puts "================" -puts "" -####################################################################### -# Intersection curve cannot reach boundary of surface -####################################################################### - -restore [locate_data_file bug25380_b1.brep] b1 -restore [locate_data_file bug25380_b2.brep] b2 - -set log [bopcurves b1 b2] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv -set MaxTol 1.e-11 -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} -checklength c_1 -l 1.614 - -smallview -donly c_1 b1 -fit -display b2 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25416_1 b/tests/bugs/modalg_5/bug25416_1 deleted file mode 100644 index c42dc9d9ee..0000000000 --- a/tests/bugs/modalg_5/bug25416_1 +++ /dev/null @@ -1,59 +0,0 @@ -puts "================" -puts "OCC25416" -puts "================" -puts "" -####################################################################### -# Wrong section curve -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25416_f1.brep] f1 -restore [locate_data_file bug25416_f2.brep] f2 - -############################# -set log [bopcurves f1 f2 -2d] -############################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -set MaxTol 1.e-7 - -set GoodNbCurv 1 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -#------------- - -mksurface s1 f1 -mksurface s2 f2 - -erase s1 s2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - dump U1 U2 - - if {[dval $U2-$U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 ${U1} ${U2} 10 1e-7 - xdistcs c_$i s2 ${U1} ${U2} 10 1e-7 -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25416_2 b/tests/bugs/modalg_5/bug25416_2 deleted file mode 100644 index a6b31c961c..0000000000 --- a/tests/bugs/modalg_5/bug25416_2 +++ /dev/null @@ -1,65 +0,0 @@ -puts "================" -puts "OCC25416" -puts "================" -puts "" -####################################################################### -# Wrong section curve -####################################################################### - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -# bopcurves command - -restore [locate_data_file bug25416_f3.brep] f1 -restore [locate_data_file bug25416_f4.brep] f2 - -mksurface s1 f1 -mksurface s2 f2 - -#Trim according to "xbounds f1" -trim s1 s1 -55.44 150.554 -98.1087 79.1766 - -mkface ff1 s1 -donly ff1 f2 - -############################# -set log [bopcurves ff1 f2 -2d] -############################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. -set MaxTol 1.e-7 - -#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. -set GoodNbCurv 2 - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -#------------- - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - dump U1 U2 - - if {[dval $U2-$U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 ${U1} ${U2} 10 1e-7 - xdistcs c_$i s2 ${U1} ${U2} 10 1e-7 -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25416_3 b/tests/bugs/modalg_5/bug25416_3 deleted file mode 100644 index 39c76766ed..0000000000 --- a/tests/bugs/modalg_5/bug25416_3 +++ /dev/null @@ -1,40 +0,0 @@ -puts "================" -puts "OCC25416" -puts "================" -puts "" -####################################################################### -# Wrong section curve -####################################################################### - -#Check if intersection algorithm produces overlapped curves - -restore [locate_data_file bug25416_s1.draw] s1 -restore [locate_data_file bug25416_s2.draw] s2 - -set ll [intersect ii s1 s2] - -set status 0 -if { [llength $ll] < 1 } { - set status 1 -} - -foreach i $ll { - foreach j $ll { - if { $i >= $j } continue - - mkedge e1 $i - mkedge e2 $j - set coe [checkoverlapedges e1 e2] - - puts "$i<->$j: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - set status 2 - } - } -} - -if { $status != 0 } { - puts "Wrong section. Error with code $status" -} else { - puts "OK: Good section" -} diff --git a/tests/bugs/modalg_5/bug25465_1 b/tests/bugs/modalg_5/bug25465_1 deleted file mode 100644 index be9fd47911..0000000000 --- a/tests/bugs/modalg_5/bug25465_1 +++ /dev/null @@ -1,22 +0,0 @@ -puts "========" -puts "OCC25465" -puts "========" -puts "" -################################################ -# Excess vertex in the result of CUT operation -################################################ - -restore [locate_data_file OCC25465_Gorivo.brep] b1 -restore [locate_data_file OCC25465_Translation_1.brep] b2 - -explode b1 f -explode b2 f -set bug_info [bopcurves b1_3 b2_4] -bop b1 b2 -bopcut result - -# It is strictly forbidden to change reference values of vertexes and edges (see OCC25465) -checknbshapes result -vertex 11 -edge 17 -wire 8 -face 8 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 47 -if {[lindex $bug_info 2] != 3} { - puts "ERROR: OCC25465 is reproduced." -} diff --git a/tests/bugs/modalg_5/bug25465_2 b/tests/bugs/modalg_5/bug25465_2 deleted file mode 100644 index 884a8cf760..0000000000 --- a/tests/bugs/modalg_5/bug25465_2 +++ /dev/null @@ -1,22 +0,0 @@ -puts "========" -puts "OCC25465" -puts "========" -puts "" -################################################ -# Excess vertex in the result of CUT operation -################################################ - -restore [locate_data_file OCC25465_t_boite1.brep] b1 -restore [locate_data_file OCC25465_c_cyl.brep] b2 - -explode b1 f -explode b2 f -set bug_info [bopcurves b1_6 b2_1] -bop b1 b2 -bopcut result - -# It is strictly forbidden to change reference values of vertexes and edges (see OCC25465) -checknbshapes result -vertex 13 -edge 20 -wire 11 -face 8 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 55 -if {[lindex $bug_info 2] != 2} { - puts "ERROR: OCC25465 is reproduced." -} diff --git a/tests/bugs/modalg_5/bug25488 b/tests/bugs/modalg_5/bug25488 deleted file mode 100644 index 3437ecd6be..0000000000 --- a/tests/bugs/modalg_5/bug25488 +++ /dev/null @@ -1,31 +0,0 @@ -puts "========" -puts "OCC25488" -puts "========" -puts "" -###################################################### -# Wrong result of two trimmed cylinders intersection -###################################################### - -set Tolerance 1.1e-7 -set Limit_Tol 1.0e-7 - -puts "##############################" -puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" -puts "##############################" -puts "" -puts "" - -restore [locate_data_file OCC25488_sb1_1t.draw] sb1 -restore [locate_data_file OCC25488_sb2_1t.draw] sb2 - -set bug_info [intersect res sb1 sb2] - -set i 0 -while {$i != [llength $bug_info]} { - set res_i [lindex $bug_info $i] - - xdistcs ${res_i} sb1 0 1 10 ${Tolerance} ${Limit_Tol} - xdistcs ${res_i} sb2 0 1 10 ${Tolerance} ${Limit_Tol} - - set i [expr {$i + 1}] -} diff --git a/tests/bugs/modalg_5/bug25697_2 b/tests/bugs/modalg_5/bug25697_2 deleted file mode 100644 index bb25efa6f0..0000000000 --- a/tests/bugs/modalg_5/bug25697_2 +++ /dev/null @@ -1,44 +0,0 @@ -puts "==========" -puts "OCC25697" -puts "==========" -puts "" -######################################################################################## -# Regression : Section obtained after command "bsection" in Test Harness is incorrect. -######################################################################################## - -restore [locate_data_file bug25697_shell_for_seam.brep] b1 -restore [locate_data_file bug25697_prism.brep] b2 -explode b1 f -copy b1_1 b1 -explode b2 f -copy b2_1 b2 - -################################# -set log [bopcurves b1 b2 -2d1] -################################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -set GoodNbCurv 3 - -checkreal TolReached ${Toler} 0.00027763280312203317 0.0 0.01 - -if { ${NbCurv} != ${GoodNbCurv} } { - puts "Error: Curve Number is bad!" -} - -#--------------- -mksurface s1 b1 -mksurface s2 b2 - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i u1 u2 - dump u1 u2 - - xdistcs c_$i s1 u1 u2 10 1e-7 - xdistcs c_$i s2 u1 u2 10 1e-7 -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25818 b/tests/bugs/modalg_5/bug25818 deleted file mode 100755 index e8a2353d59..0000000000 --- a/tests/bugs/modalg_5/bug25818 +++ /dev/null @@ -1,18 +0,0 @@ -puts "============" -puts "OCC25818" -puts "============" -puts "" -####################################################################### -# IntTools_FaceFace throws Standard_ConstructionError with two unbounded planes -####################################################################### - -plane pn1 0 0 0 0 0 1 1 0 0 -plane pn2 0 0 0 1 0 0 0 1 0 -mkface f1 pn1 -mkface f2 pn2 - -bopcurves f1 f2 - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25828_3 b/tests/bugs/modalg_5/bug25828_3 deleted file mode 100755 index 9d6b704575..0000000000 --- a/tests/bugs/modalg_5/bug25828_3 +++ /dev/null @@ -1,37 +0,0 @@ -puts "========" -puts "OCC25828" -puts "========" -puts "" -########################################## -## BRepAlgoAPI_Section fails for a solid and a face depending on order of arguments -########################################## - -set BugNumber OCC25828 - -restore [locate_data_file bug25828_intersectionproblem.brep] b - -explode b -copy b_1 b1 -copy b_2 b2 - -explode b1 f; copy b1_1 b1 -explode b2 f; copy b2_6 b2 - -set log [bopcurves b1 b2 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -set MaxTol 5.5e-6 -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != 1} { - puts "Error: NbCurv is bad!" -} - -smallview -donly b1 b2 -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25828_4 b/tests/bugs/modalg_5/bug25828_4 deleted file mode 100755 index 03c236c7de..0000000000 --- a/tests/bugs/modalg_5/bug25828_4 +++ /dev/null @@ -1,37 +0,0 @@ -puts "========" -puts "OCC25828" -puts "========" -puts "" -########################################## -## BRepAlgoAPI_Section fails for a solid and a face depending on order of arguments -########################################## - -set BugNumber OCC25828 - -restore [locate_data_file bug25828_intersectionproblem.brep] b - -explode b -copy b_1 b1 -copy b_2 b2 - -explode b1 f; copy b1_1 b1 -explode b2 f; copy b2_6 b2 - -set log [bopcurves b2 b1 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -set MaxTol 5.5e-6 -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != 1} { - puts "Error: NbCurv is bad!" -} - -smallview -donly b1 b2 -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25842 b/tests/bugs/modalg_5/bug25842 deleted file mode 100755 index ca7dcc063a..0000000000 --- a/tests/bugs/modalg_5/bug25842 +++ /dev/null @@ -1,18 +0,0 @@ -puts "================" -puts "OCC25842" -puts "================" -puts "" -####################################################################### -# Wrong intersection 2D-curves obtained for pair of faces. -####################################################################### - -restore [locate_data_file bug25842_f1.brep] f1 -restore [locate_data_file bug25842_f2.brep] f2 - -bopcurves f1 f2 -2d - -v2d -donly c2d2_1 c2d2_2 -2dfit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_5/bug25898 b/tests/bugs/modalg_5/bug25898 deleted file mode 100755 index 343274e8e7..0000000000 --- a/tests/bugs/modalg_5/bug25898 +++ /dev/null @@ -1,25 +0,0 @@ -puts "================" -puts "OCC25898" -puts "================" -puts "" -####################################################################### -# Wrong result obtained by intersection algorithm. -####################################################################### - -# Before fix intersection algorithm threw an exception. - -restore [locate_data_file bug25898_x001_1.draw] s1 -restore [locate_data_file bug25898_x001_2.draw] s2 - -set CurveNumb [intersect i s1 s2] - -if { [llength ${CurveNumb}] != 2 } { - puts "Error : Wrong result obtained by intersection algorithm." -} else { - puts "OK : Good result obtained by intersection algorithm." -} - -smallview -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug21750 b/tests/bugs/modalg_6/bug21750 deleted file mode 100644 index b0fe0d1673..0000000000 --- a/tests/bugs/modalg_6/bug21750 +++ /dev/null @@ -1,26 +0,0 @@ -puts "============" -puts "OCC21750" -puts "============" -puts "" -################################## -# Intersection of two cylindrical surfaces fails -################################## - -cylinder c1 1031.3339148728076 -113.25868616662650 56.152387686082520 -0.86602540378443815 0.50000000000000089 0.0 -0.50000000000000089 -0.86602540378443815 0.0 76.499999999999986 -cylinder c2 1017.0706583606553 -103.24955863669388 56.152387686082548 0.86602540378443915 -0.49999999999999933 0.0 0.49999999999999933 0.86602540378443915 0.0 76.499999999999986 - -if { [catch {set info [intersect r c1 c2 1e-7]} catch_result] } { - puts "Error: The intersection of two cylindrical surfaces causes an exception" -} - -# Number of solutions check. -# There should be only 2 solution. -if {[llength $info] != 2} { - Error: Incorrect number of solutions. -} - -smallview - -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug23177_1 b/tests/bugs/modalg_6/bug23177_1 deleted file mode 100644 index 17efcb1f79..0000000000 --- a/tests/bugs/modalg_6/bug23177_1 +++ /dev/null @@ -1,58 +0,0 @@ -puts "========" -puts "OCC23177" -puts "========" -puts "" -#################################################################### -# Intersection of plane and torus misses a result and never produces analytical result -#################################################################### - -set GoodNbCurv 2 - -torus s1 100 10 -plane s2 0 0 0 0 1 0 -intersect res s1 s2 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - break; - } else { - if { ![regexp "Circle" [dump res_$ic]] } { - puts "Error: Intersection result must be circle" - } - - bounds res_$ic U1 U2 - - checkreal CurveBoundaries [dval U2-U1] [dval 2*pi] 1.0e-10 0.0 - - xdistcs res_$ic s1 U1 U2 10 1.0e-7 - xdistcs res_$ic s2 U1 U2 10 1.0e-7 - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" -} - - -smallview -don res_* -fit -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug23177_2 b/tests/bugs/modalg_6/bug23177_2 deleted file mode 100644 index 12f1991ff8..0000000000 --- a/tests/bugs/modalg_6/bug23177_2 +++ /dev/null @@ -1,58 +0,0 @@ -puts "========" -puts "OCC23177" -puts "========" -puts "" -#################################################################### -# Intersection of plane and torus misses a result and never produces analytical result -#################################################################### - -set GoodNbCurv 2 - -torus s1 100 10 -plane s2 0 0 0 1 0 0 -intersect res s1 s2 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - break; - } else { - if { ![regexp "Circle" [dump res_$ic]] } { - puts "Error: Intersection result must be circle" - } - - bounds res_$ic U1 U2 - - checkreal CurveBoundaries [dval U2-U1] [dval 2*pi] 1.0e-10 0.0 - - xdistcs res_$ic s1 U1 U2 10 1.0e-7 - xdistcs res_$ic s2 U1 U2 10 1.0e-7 - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" -} - - -smallview -don res_* -fit -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug23178 b/tests/bugs/modalg_6/bug23178 deleted file mode 100644 index a16ee989dc..0000000000 --- a/tests/bugs/modalg_6/bug23178 +++ /dev/null @@ -1,43 +0,0 @@ -puts "================" -puts "OCC23178" -puts "================" -puts "" -####################################################################### -# Intersection of cylinders fails to produce results -####################################################################### - -set GoodNbCurv 6 - -foreach c [directory result*] { - unset $c -} - -cylinder s1 4.999999999813, 1.35836143386791, 0.20975890778078 -1, 0, 0 0, 0, 1 10 -cylinder s2 9.999999999813, 9.1401960568287, 0.11837300583107 0, -0.75870713028692, 0.651431877061437 0, -0.651431877061437, -0.75870713028692 5 - -intersect result s1 s2 - -foreach c [directory result*] { - bounds $c U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs $c s1 U1 U2 10 2.0e-7 - xdistcs $c s2 U1 U2 10 2.0e-7 -} - -set NbCurv [llength [directory result*]] - -if { $NbCurv == $GoodNbCurv } { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but $NbCurv is found!" -} - -smallview -don result* -fit -disp s1 s2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug25820_1 b/tests/bugs/modalg_6/bug25820_1 deleted file mode 100644 index 782dea8473..0000000000 --- a/tests/bugs/modalg_6/bug25820_1 +++ /dev/null @@ -1,35 +0,0 @@ -puts "========" -puts "OCC25820" -puts "========" -puts "" -################################################################### -# No Intersection Curves between surface of revolution and planes -################################################################### - -restore [locate_data_file OCC25820-Revolution_5.brep] b1 -explode b1 f -copy b1_4 b1 - -restore [locate_data_file OCC25820-Translation_1.brep] b2 -explode b2 f -copy b2_2 b2 - -smallview -clear -display b1 -display b2 -fit - -set info [bopcurves b1 b2] -regexp {Tolerance Reached=([-0-9.+eE]+)} $info full bug_info_tol -regexp {([0-9]+) curve\(s\) found.} $info full bug_info_cur - -if {$bug_info_tol > 1.0e-7} { - puts "ERROR: OCC25820 is reproduced. Tolerance is to large ($bug_info_tol)." -} - -if {$bug_info_cur != 1} { - puts "ERROR: OCC25820 is reproduced. Too many curves were found." -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug25820_2 b/tests/bugs/modalg_6/bug25820_2 deleted file mode 100644 index 2ac5382220..0000000000 --- a/tests/bugs/modalg_6/bug25820_2 +++ /dev/null @@ -1,35 +0,0 @@ -puts "========" -puts "OCC25820" -puts "========" -puts "" -################################################################### -# No Intersection Curves between surface of revolution and planes -################################################################### - -restore [locate_data_file OCC25820-Revolution_5.brep] b1 -explode b1 f -copy b1_4 b1 - -restore [locate_data_file OCC25820-Translation_2.brep] b2 -explode b2 f -copy b2_4 b2 - -smallview -clear -display b1 -display b2 -fit - -set info [bopcurves b1 b2] -regexp {Tolerance Reached=([-0-9.+eE]+)} $info full bug_info_tol -regexp {([0-9]+) curve\(s\) found.} $info full bug_info_cur - -if {$bug_info_tol > 1.0e-7} { - puts "ERROR: OCC25820 is reproduced. Tolerance is to large ($bug_info_tol)." -} - -if {$bug_info_cur != 1} { - puts "ERROR: OCC25820 is reproduced. Too many curves were found." -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug25820_3 b/tests/bugs/modalg_6/bug25820_3 deleted file mode 100644 index 3ed68e253c..0000000000 --- a/tests/bugs/modalg_6/bug25820_3 +++ /dev/null @@ -1,35 +0,0 @@ -puts "========" -puts "OCC25820" -puts "========" -puts "" -################################################################### -# No Intersection Curves between surface of revolution and planes -################################################################### - -restore [locate_data_file OCC25820-Revolution_5.brep] b1 -explode b1 f -copy b1_4 b1 - -restore [locate_data_file OCC25820-Translation_3.brep] b2 -explode b2 f -copy b2_3 b2 - -smallview -clear -display b1 -display b2 -fit - -set info [bopcurves b1 b2] -regexp {Tolerance Reached=([-0-9.+eE]+)} $info full bug_info_tol -regexp {([0-9]+) curve\(s\) found.} $info full bug_info_cur - -if {$bug_info_tol > 1.0e-7} { - puts "ERROR: OCC25820 is reproduced. Tolerance is to large ($bug_info_tol)." -} - -if {$bug_info_cur != 1} { - puts "ERROR: OCC25820 is reproduced. Too many curves were found." -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug25890 b/tests/bugs/modalg_6/bug25890 deleted file mode 100755 index 4c3dad3985..0000000000 --- a/tests/bugs/modalg_6/bug25890 +++ /dev/null @@ -1,55 +0,0 @@ -puts "============" -puts "OCC25890" -puts "============" -puts "" -############################### -## Intersection algorithm produces curves overlaped -############################### - -set ExpToler 1.5361108163989659e-007 -set ExpLen 5.036361740755879 - -restore [locate_data_file bug25890_f1.brep] f1 -restore [locate_data_file bug25890_f2.brep] f2 - -set log [ bopcurves f1 f2 -2d ] -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -checkreal TolReached $Toler $ExpToler 0.0 0.1 - -if { ${NbCurv} != 1 } { - puts "Error : NbCurv is bad" - - set nbshapes_expected " - Number of shapes in shape - VERTEX : 0 - EDGE : 0 - WIRE : 0 - FACE : 0 - SHELL : 0 - SOLID : 0 - COMPSOLID : 0 - COMPOUND : 1 - SHAPE : 1 - " - - set SumLen 0.0 - - # Check for overlapping - for {set i 1} {$i <= $NbCurv} {incr i} { - regexp "The +length+ c_$i +is +(\[-0-9.+eE\]+)" [ length c_$i ] full m - set SumLen [ expr $SumLen + $m] - for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { - puts " Check c_$i and c_$j" - mkedge e1 c_$i - mkedge e2 c_$j - bcommon rr e1 e2 - checknbshapes rr -ref "${nbshapes_expected}" -t -m "Partition of 2 shapes" - } - } - - checkreal Length $SumLen $ExpLen 1.0e-7 0.0 -} else { - checklength c_1 -l $ExpLen -} - diff --git a/tests/bugs/modalg_6/bug26008 b/tests/bugs/modalg_6/bug26008 deleted file mode 100644 index 4c24bf0626..0000000000 --- a/tests/bugs/modalg_6/bug26008 +++ /dev/null @@ -1,20 +0,0 @@ -puts "================" -puts "OCC26008" -puts "================" -puts "" -####################################################################### -# [OCCT 6.8.0 regression] BRepFeat_SplitShape returns invalid shapes -####################################################################### - -sphere ss1 78.4160443343, 8.94293392454, 70.9553808628 6.5 -sphere ss2 82.5593917073, 4.52613090823, 76.3299967 3.5 - -mkface f1 ss1 -mkface f2 ss2 - -bopcurves f1 f2 -2d - -view 1 -2D- 465 20 400 400 -2dfit - -xwd $imagedir/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26151_1 b/tests/bugs/modalg_6/bug26151_1 deleted file mode 100755 index 8f644833ef..0000000000 --- a/tests/bugs/modalg_6/bug26151_1 +++ /dev/null @@ -1,33 +0,0 @@ -puts "============" -puts "OCC26151" -puts "============" -puts "" -############################### -## Wrong result obtained by intersection algorithm. -############################### - -restore [locate_data_file bug26132_shape.brep] q - -explode q -copy q_1 b1 -copy q_2 b2 - -explode b1 f -explode b2 -explode b2_10 f - -set log [bopcurves b1_1 b2_10_4 -2d] - -#Faces almost coincide. Therefore, there is no point in -#returning some intersection line. -#Theoretically, the intersection result is some region (tangent zone). - -if { [regexp "has no 3d curve" ${log}] != 1 } { - puts "Error : Wrong result obtained by intersection algorithm" -} else { - puts "OK : Good result obtained by intersection algorithm" -} - -smallview -fit -xwd $imagedir/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26151_2 b/tests/bugs/modalg_6/bug26151_2 deleted file mode 100755 index 92b986b5cb..0000000000 --- a/tests/bugs/modalg_6/bug26151_2 +++ /dev/null @@ -1,33 +0,0 @@ -puts "============" -puts "OCC26151" -puts "============" -puts "" -############################### -## Wrong result obtained by intersection algorithm. -############################### - -restore [locate_data_file bug26132_shape.brep] q - -explode q -copy q_1 b1 -copy q_2 b2 - -explode b1 f -explode b2 -explode b2_11 f - -set log [bopcurves b1_1 b2_11_2 -2d] - -#Faces almost coincide. Therefore, there is no point in -#returning some intersection line. -#Theoretically, the intersection result is some region (tangent zone). - -if { [regexp "has no 3d curve" ${log}] != 1 } { - puts "Error : Wrong result obtained by intersection algorithm" -} else { - puts "OK : Good result obtained by intersection algorithm" -} - -smallview -fit -xwd $imagedir/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26251 b/tests/bugs/modalg_6/bug26251 deleted file mode 100755 index d498eb95b8..0000000000 --- a/tests/bugs/modalg_6/bug26251 +++ /dev/null @@ -1,45 +0,0 @@ -puts "============" -puts "OCC26251" -puts "============" -puts "" -############################### -## Section curve cannot be found -############################### - -restore [locate_data_file bug26251_b31_3.brep] b1 -restore [locate_data_file bug26251_tank31.brep] b2 - -bsection result b1 b2 - -checkprops result -l 2.49934 -checkshape result -checksection result - -set nbshapes_expected " -Number of shapes in shape - VERTEX : 3 - EDGE : 2 - WIRE : 0 - FACE : 0 - SHELL : 0 - SOLID : 0 - COMPSOLID : 0 - COMPOUND : 1 - SHAPE : 6 -" - -checknbshapes result -ref ${nbshapes_expected} -t -m "Section curve" - -explode b2 f -copy b2_5 b2 - -set NbCurves 0 - -set log [bopcurves b1 b2 -2d] -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurves - -if {$NbCurves == 0} { - puts "Error: Intersection curve is not found" -} - -checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26352 b/tests/bugs/modalg_6/bug26352 deleted file mode 100644 index 9590d134ec..0000000000 --- a/tests/bugs/modalg_6/bug26352 +++ /dev/null @@ -1,44 +0,0 @@ -puts "========" -puts "OCC26352" -puts "========" -puts "" -############################################################################# -# Wrong intersection points found -############################################################################# - -restore [locate_data_file bug26316_shape1.brep] b1 -restore [locate_data_file bug26316_shape2.brep] b2 - -explode b1 f -explode b2 f - -set log1 [bopcurves b1_10 b2_3] -set log2 [bopcurves b1_10 b2_10] -set log3 [bopcurves b1_11 b2_1] -set log4 [bopcurves b1_11 b2_7] - -set search_str "has no 3d points" - -if { [regexp ${search_str} ${log1}] != 1 } { - puts "Error : Wrong intersection point found (1)" -} else { - puts "OK : Good result obtained by intersection algorithm (1)" -} - -if { [regexp ${search_str} ${log2}] != 1 } { - puts "Error : Wrong intersection point found (2)" -} else { - puts "OK : Good result obtained by intersection algorithm (2)" -} - -if { [regexp ${search_str} ${log3}] != 1 } { - puts "Error : Wrong intersection point found (3)" -} else { - puts "OK : Good result obtained by intersection algorithm (3)" -} - -if { [regexp ${search_str} ${log4}] != 1 } { - puts "Error : Wrong intersection point found (4)" -} else { - puts "OK : Good result obtained by intersection algorithm (4)" -} diff --git a/tests/bugs/modalg_6/bug26431_1 b/tests/bugs/modalg_6/bug26431_1 deleted file mode 100644 index 201859a439..0000000000 --- a/tests/bugs/modalg_6/bug26431_1 +++ /dev/null @@ -1,21 +0,0 @@ -puts "============" -puts "OCC26431" -puts "============" -puts "" -############################### -## Can't cut a sphere from a cylinder -############################### - -restore [locate_data_file bug26431_Body.brep] b1 -restore [locate_data_file bug26431_Sphere.brep] b2 - -explode b1 f -explode b2 f - -set log [bopcurves b1_3 b2_1 -2d] -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv - -set expected_Tolerance_Reached 6.1899285293702062e-006 -set tol_abs_Tolerance_Reached 1.0e-7 -set tol_rel_Tolerance_Reached 0.0 -checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} diff --git a/tests/bugs/modalg_6/bug26576_1 b/tests/bugs/modalg_6/bug26576_1 deleted file mode 100644 index 40e3086505..0000000000 --- a/tests/bugs/modalg_6/bug26576_1 +++ /dev/null @@ -1,56 +0,0 @@ -puts "============" -puts "OCC26576" -puts "============" -puts "" -############################### -## Wrong result obtained by intersection algorithm. -############################### - -pload DCAF - -Open [locate_data_file bug26576_study1_new_geom.cbf] D - -GetShape D 0:1:484:1:1:2 b1 -GetShape D 0:1:478:1:1:2 b2 - -explode b1 f -explode b2 f -copy b1_1 b1 -copy b2_2 b2 -donly b1 b2 - -#Wrong value of Tolerance Reached. - -set log [bopcurves b1 b2 -2d] -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv - -set GoodNbCurv 2 - -set expected_Tolerance_Reached 1.2482990218170969e-007 -set tol_abs_Tolerance_Reached 1.0e-7 -set tol_rel_Tolerance_Reached 0.0 -checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!" -} - -#Overlapping intersection curves. - -for {set i 1} {$i < ${NbCurv}} {incr i} { - for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { - mkedge e1 c_$i - mkedge e2 c_$j - - set coe [checkoverlapedges e1 e2 $Tolerance_Reached] - - puts "c_$i<->c_$j: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: c_$i and c_$j are overlaped" - } - } -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26576_3 b/tests/bugs/modalg_6/bug26576_3 deleted file mode 100644 index 21467cc160..0000000000 --- a/tests/bugs/modalg_6/bug26576_3 +++ /dev/null @@ -1,61 +0,0 @@ -puts "============" -puts "OCC26576" -puts "============" -puts "" -############################### -## Wrong result obtained by intersection algorithm. -############################### - -pload DCAF - -Open [locate_data_file bug26576_study1_new_geom.cbf] D - -GetShape D 0:1:484:1:1:2 b1_src -GetShape D 0:1:478:1:1:2 b2_src - -save b1_src $imagedir/bug26576_b1.brep -save b2_src $imagedir/bug26576_b2.brep - -restore $imagedir/bug26576_b1.brep b1 -restore $imagedir/bug26576_b2.brep b2 - -explode b1 f -explode b2 f -copy b1_1 b2 -copy b2_2 b1 - -#Wrong value of Tolerance Reached. - -set log [bopcurves b1 b2 -2d] -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv - -set GoodNbCurv 2 - -set expected_Tolerance_Reached 1.2482990218170969e-007 -set tol_abs_Tolerance_Reached 1.0e-7 -set tol_rel_Tolerance_Reached 0.0 -checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!" -} - -#Overlapping intersection curves. - -for {set i 1} {$i < ${NbCurv}} {incr i} { - for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { - mkedge e1 c_$i - mkedge e2 c_$j - - set coe [checkoverlapedges e1 e2 $Tolerance_Reached] - - puts "$i<->$j: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: c_$i and c_$j are overlaped" - } - } -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26576_4 b/tests/bugs/modalg_6/bug26576_4 deleted file mode 100644 index 86edaba0ac..0000000000 --- a/tests/bugs/modalg_6/bug26576_4 +++ /dev/null @@ -1,74 +0,0 @@ -puts "============" -puts "OCC26576" -puts "============" -puts "" -############################### -## Wrong result obtained by intersection algorithm. -############################### - -set GoodNbCurv 2 - -circle cc 1.5 3.125 0 0 0 1 1 0 0 0.25 -trim cc cc 0 3.14159265358979 -revsurf ss1 cc 1.5 3.125 0 -1 0 0 - -plane ss2 3.48352775473762 1.7282347013387 0 0 0 -1 -1 0 0 - -set IntCurv [intersect intres ss1 ss2] -set NbIntCurv [llength ${IntCurv}] - -if { ${NbIntCurv} != ${GoodNbCurv} } { - puts "Error in geometric intersection: ${GoodNbCurv} curves are expected but ${NbIntCurv} are found!" -} else { - puts "OK : Geometric intersection is good." -} - -# For getting tolerance value -mkface b1 ss1 -mkface b2 ss2 -donly b1 - -set log [bopcurves b1 b2 -2d] -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv - -set expected_Tolerance_Reached 1.9321146113460029e-008 -set tol_abs_Tolerance_Reached 1.0e-7 -set tol_rel_Tolerance_Reached 0.0 -checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!" -} - -#Overlapping intersection curves. - -if { $Tolerance_Reached < 1.0e-7 } { set Tolerance_Reached 1.0e-7 } - -for {set i 1} {$i < ${NbCurv}} {incr i} { - for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { - mkedge eb1 c_$i - mkedge eb2 c_$j - - mkedge ei1 intres_$i - mkedge ei2 intres_$j - - set coeb [checkoverlapedges eb1 eb2 $Tolerance_Reached] - set coei [checkoverlapedges ei1 ei2 $Tolerance_Reached] - - puts "$i<->$j: $coeb" - puts "$i<->$j: $coei" - if { [regexp "Edges is not overlaped" $coeb] != 1 } { - puts "Error: c_$i and c_$j are overlaped" - } - - if { [regexp "Edges is not overlaped" $coei] != 1 } { - puts "Error: intres_$i and intres_$j are overlaped" - } - - erase eb1 eb2 ei1 ei2 - } -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26675 b/tests/bugs/modalg_6/bug26675 deleted file mode 100644 index 20141ba93f..0000000000 --- a/tests/bugs/modalg_6/bug26675 +++ /dev/null @@ -1,58 +0,0 @@ -puts "============" -puts "OCC26675" -puts "============" -puts "" -############################### -## 0026675: Eliminate normalization of coordinates in ApproxInt package -############################### - -set GoodNbCurv 1 - -pload QAcommands -OCC26675_1 ss - -intersect res ss_1 ss_2 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - display res_$ic - - bounds res_$ic U1 U2 - - dval U1 - dval U2 - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic ss_1 U1 U2 10 4.6e-6 - xdistcs res_$ic ss_2 U1 U2 10 4.3e-6 - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Curve Number is good!" -} else { - puts "Error: Curve Number is bad!" -} - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26684_1 b/tests/bugs/modalg_6/bug26684_1 deleted file mode 100644 index b79fe1d952..0000000000 --- a/tests/bugs/modalg_6/bug26684_1 +++ /dev/null @@ -1,31 +0,0 @@ -puts "============" -puts "OCC26684" -puts "============" -puts "" -################################################### -## Big tolerance values of the intersection curves -################################################### - -brestore [locate_data_file CTO909_IR2_TuyoPipe20.brep] b1 -brestore [locate_data_file CTO909_IR2_sphere1_20.brep] b2 - -explode b1 f; copy b1_1 f1 -explode b2 f; copy b2_1 f2 - -smallview -donly f1 f2 -fit - -# 1 case -set bop_info [bopcurves f1 f2] -regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info full Tolerance - -checkreal "Reached tolerance" ${Tolerance} 5.8654166482879483e-009 1.e-7 0 - -# 2 case -set bop_info_2d [bopcurves f1 f2 -2d] -regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info_2d full Tolerance_2d - -checkreal "Reached tolerance" ${Tolerance_2d} 1.4569392656749484e-008 1.e-7 0 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26684_2 b/tests/bugs/modalg_6/bug26684_2 deleted file mode 100644 index d5028b7ade..0000000000 --- a/tests/bugs/modalg_6/bug26684_2 +++ /dev/null @@ -1,31 +0,0 @@ -puts "============" -puts "OCC26684" -puts "============" -puts "" -################################################### -## Big tolerance values of the intersection curves -################################################### - -brestore [locate_data_file IR2_TuyoPipeBSpline_20_draw2.brep] b1 -brestore [locate_data_file IR2_sphere2_20.brep] b2 - -explode b1 f; copy b1_1 f1 -explode b2 f; copy b2_1 f2 - -smallview -donly f1 f2 -fit - -# 1 case -set bop_info [bopcurves f1 f2] -regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info full Tolerance - -checkreal "Reached tolerance" ${Tolerance} 1.2530391548405894e-008 1.e-7 0 - -# 2 case -set bop_info_2d [bopcurves f1 f2 -2d] -regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info_2d full Tolerance_2d - -checkreal "Reached tolerance" ${Tolerance_2d} 1.4134494834137484e-005 0 1.e-2 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26699 b/tests/bugs/modalg_6/bug26699 deleted file mode 100644 index 9237b6324c..0000000000 --- a/tests/bugs/modalg_6/bug26699 +++ /dev/null @@ -1,32 +0,0 @@ -puts "================" -puts "OCC26699" -puts "================" -puts "" -####################################################################### -# Wrong section curves -####################################################################### - -set MaxTol 1.e-7 -set GoodNbCurv 2 - -restore [locate_data_file bug26699_f1.brep] f1 -restore [locate_data_file bug26699_f2.brep] f2 - -set log [bopcurves f1 f2 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} -checklength c_1 -l 3.0 -checklength c_2 -l 3.0 - -axo -donly f* c_* -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug26748 b/tests/bugs/modalg_6/bug26748 deleted file mode 100644 index 0d7a342533..0000000000 --- a/tests/bugs/modalg_6/bug26748 +++ /dev/null @@ -1,33 +0,0 @@ -puts "========" -puts "OCC26748" -puts "========" -puts "" -################################################# -# Section between cylindrical and planar faces is not found -################################################# - -set ExpTol 5.0e-8 -set GoodNbCurv 1 - -restore [locate_data_file bug26745_BodyA.brep] a -restore [locate_data_file bug26745_BodyB.brep] b - -explode a f -explode b f - -set log [bopcurves a_9 b_1 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} - -checkreal TolReached $Toler $ExpTol 5.0e-8 0.0 - -smallview -don c_* -fit -disp a_9 b_1 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug26894 b/tests/bugs/modalg_6/bug26894 deleted file mode 100644 index 306b44c7ca..0000000000 --- a/tests/bugs/modalg_6/bug26894 +++ /dev/null @@ -1,67 +0,0 @@ -puts "================" -puts "OCC26894" -puts "================" -puts "" -####################################################################### -# Intersection algorithm between two infinite cylinders is hanging -####################################################################### - -# Attention!!! -# The test on performance meter. -# On the MASTER it takes: -# Elapsed time: 0 Hours 0 Minutes 6.3723911111 Seconds -# CPU user time: 6.15625 seconds -# CPU system time: 0.0625 seconds - -# The intersection curve is almost infinite. -# Therefore, we must have failed to return -# any section curve (see comments to the issue #26894). -set GoodNbCurv 0 - -restore [locate_data_file bug26884-f1.brep] f1 -restore [locate_data_file bug26884-f2.brep] f2 - -mksurface ss1 f1 -mksurface ss2 f2 - -if { ![ catch {intersect result ss1 ss2 } ] } { - puts "Error: intersection algorithm must return fail status. But it is not." -} - -set che [whatis result] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "result" exists - renamevar result result_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis result_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - display result_$ic - - bounds result_$ic U1 U2 - - dump U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs result_$ic ss1 U1 U2 10 1.0e-7 - xdistcs result_$ic ss2 U1 U2 10 1.0e-7 - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" -} diff --git a/tests/bugs/modalg_6/bug27079_1 b/tests/bugs/modalg_6/bug27079_1 deleted file mode 100644 index 121b0eb68e..0000000000 --- a/tests/bugs/modalg_6/bug27079_1 +++ /dev/null @@ -1,23 +0,0 @@ -puts "============" -puts "OCC27079" -puts "============" -puts "" -################################################################## -# Bad approximation of intersection curves with variable curvature -################################################################## - -restore [locate_data_file bug27079_s1.draw] s1 -restore [locate_data_file bug27079_s2.draw] s2 - -clpoles s2 - -smallview -donly s2 -fit - -intersect result s1 s2 - -checklength result_1 -l 6.8873540591440428 -checklength result_2 -l 6.8873330997321212 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27079_2 b/tests/bugs/modalg_6/bug27079_2 deleted file mode 100644 index 99ea9b7bcd..0000000000 --- a/tests/bugs/modalg_6/bug27079_2 +++ /dev/null @@ -1,21 +0,0 @@ -puts "============" -puts "OCC27079" -puts "============" -puts "" -################################################################## -# Bad approximation of intersection curves with variable curvature -################################################################## - -restore [locate_data_file bug27079_s3.draw] s3 -restore [locate_data_file bug27079_s4.draw] s4 - -smallview -donly s4 -fit - -intersect result s3 s4 - -checklength result_1 -l 4.2844275555620923 -checklength result_2 -l 4.2844275531269931 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27175 b/tests/bugs/modalg_6/bug27175 deleted file mode 100644 index 7b4c6450b0..0000000000 --- a/tests/bugs/modalg_6/bug27175 +++ /dev/null @@ -1,29 +0,0 @@ -puts "================" -puts "OCC27175" -puts "================" -puts "" -####################################################################### -# Intersection algorithm with increased tolerance works incorrect with some shapes -####################################################################### - -set ExpectTol 3.002046539399851e-006 -set GoodNbCurv 2 - -plane pl 0.195808075898442 -0.229262227170656 4.05546403129991 0 0 1 -psphere s1 pl 0.03101752454 -restore [locate_data_file bug27128-Helix_Pipe.brep] s2 - -explode s1 f -explode s2 f - -settolerance s1_1 2.0e-6 -settolerance s2_2 2.0e-6 -bopcurves s1_1 s2_2 -2d - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves s1_1 s2_2 -2d] full Toler NbCurv - -checkreal "Tolerance Reached" ${Toler} ${ExpectTol} 0.0 0.1 - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} diff --git a/tests/bugs/modalg_6/bug27190 b/tests/bugs/modalg_6/bug27190 deleted file mode 100644 index c93004f9c5..0000000000 --- a/tests/bugs/modalg_6/bug27190 +++ /dev/null @@ -1,66 +0,0 @@ -puts "================" -puts "OCC27190" -puts "================" -puts "" -####################################################################### -# IntPatch_ImpPrmIntersection algorithm does not split intersection curve by the seam-edge of the quadric -####################################################################### - -set MaxTol 1.e-3 -set GoodNbCurv 11 - -restore [locate_data_file bug27167_pipe.brep] a1 -pcylinder a2 100 300 - -explode a1 f -explode a2 f - -set log [bopcurves a1_2 a2_1 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -set Period [dval 2*pi] - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c2d2_$i u1 u2 - - 2dcvalue c2d2_$i u1 x1 y - 2dcvalue c2d2_$i u2 x2 y - - set X1 [dval x1/$Period] - set X2 [dval x2/$Period] - - # Example: x1 = 5.3*pi, x2 = 12.8*pi ==> [x1, x2] intersects seam - if { [expr abs($X1 - $X2) > 1.0] } { - puts "Error: c2d2_$i intersects seam (0.0 or $Period): x1=[dval x1], x2=[dval x2]" - continue; - } - - set iX1 [expr floor($X1)] - set iX2 [expr floor($X2)] - - # Examples: - # 1. x1 = 5*pi/2, x2 = 3*pi ==> [x1, x2] does not intersect seam and - # ($iX1 == $iX2 == 0). I.e. if ($iX1 == $iX2) then seam is not intersected. - # 2. x1 = 3*pi, x2 = 5*pi ==> [x1, x2] intersects seam and - # ($iX1 == 1, $iX2 == 2) ==> ($iX1 != $iX2). - # 3. x1 = pi/4, x2 = 2*pi ==> [x1, x2] does not intersect seam and - # ($iX1 == 0, $iX2 == 1) ==> ($iX1 != $iX2) and ($X2 == $iX2 = 1) - if { ($iX1 != $iX2) && ($X2 != $iX2) } { - puts "Error: c2d2_$i intersects seam (0.0 or $Period): x1=[dval x1], x2=[dval x2]" - } -} - -smallview -don c_* -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27252_1 b/tests/bugs/modalg_6/bug27252_1 deleted file mode 100644 index c2bf3c97d3..0000000000 --- a/tests/bugs/modalg_6/bug27252_1 +++ /dev/null @@ -1,37 +0,0 @@ -puts "============" -puts "OCC27252" -puts "============" -puts "" -####################################################################### -# Implicit-implicit intersection (Cylinder-Plane) loses intersection curve -####################################################################### - -set GoodNbCurv 1 -set MaxTol 1.0e-7 - -restore [locate_data_file bug27221.brep] a -explode a -mkplane f a_2 -prism p f -25 0 0 -explode a_1 f -explode p f -don a_1_7 p_3 - -set log [bopcurves a_1_7 p_3 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -smallview -don c_* -fit -display a_1_7 p_3 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27263 b/tests/bugs/modalg_6/bug27263 deleted file mode 100644 index f6c316ede9..0000000000 --- a/tests/bugs/modalg_6/bug27263 +++ /dev/null @@ -1,34 +0,0 @@ -puts "================" -puts "OCC27263" -puts "================" -puts "" -####################################################################### -# Regression vs 6.9.1: Exception is raised during intersection of two faces -####################################################################### - -set MaxTol 1.e-7 -set GoodNbCurv 1 - -restore [locate_data_file bug27262_cmpd.brep] b -explode b - -smallview -explode b_1 f -don b_1_27 b_2 -fit - -set log [bopcurves b_1_27 b_2 -2d] - -regexp {Tolerance Reached=+([-0-9.+ee]+)\n+([-0-9.+ee]+)} ${log} full Toler NbCurv - -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Curve Number is bad!" -} - -checklength c_1 -l 2.9620641619623407 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug27269 b/tests/bugs/modalg_6/bug27269 deleted file mode 100644 index 66f5e7e3a3..0000000000 --- a/tests/bugs/modalg_6/bug27269 +++ /dev/null @@ -1,40 +0,0 @@ -puts "============" -puts "OCC27269" -puts "============" -puts "" -############################### -## Intersection algorithm produces null-length curve -############################### - - -restore [locate_data_file bug27267_cmpd.brep] a -explode a f - -smallview -don a_7; fit -disp a_1 - -############################# -set log [bopcurves a_1 a_7 -2d] -############################# - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - dump U1 U2 - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - set le [length c_$i] - regexp "The length c_$i is +(\[-0-9.+eE\]+)" ${le} full ll - - if { $ll < 1.0e-7 } { - puts "Error: Curve c_$i is too small!" - } -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27282_2 b/tests/bugs/modalg_6/bug27282_2 deleted file mode 100644 index 1d908cc99b..0000000000 --- a/tests/bugs/modalg_6/bug27282_2 +++ /dev/null @@ -1,45 +0,0 @@ -puts "============" -puts "OCC27282" -puts "============" -puts "" -############################### -## [Regression to 6.9.1] smesh/bugs_00/A6: Cut produces an empty shape -############################### - -set MaxTol 2.9376013151287501e-006 -set GoodNbCurv 1 - -restore [locate_data_file bug27282_cmpd.brep] a -explode a f - -smallview -don a_2 a_5 -fit - -set log [bopcurves a_2 a_5 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -checkreal ToleranceReached ${Toler} ${MaxTol} 0.0 0.1 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" - - for {set i 1} {$i < ${NbCurv}} {incr i} { - for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { - mkedge e1 c_$i - mkedge e2 c_$j - - dset dd_val 100.0*${Toler} - distmini dd e1 e2 - - if { [dval dd_val] > ${Toler} } { - puts "Error: Intersection result is not closed" - } - } - } -} else { - checklength c_1 -l 833.56846557106064 -} \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug27302 b/tests/bugs/modalg_6/bug27302 deleted file mode 100644 index 7617f184f4..0000000000 --- a/tests/bugs/modalg_6/bug27302 +++ /dev/null @@ -1,48 +0,0 @@ -puts "============" -puts "OCC27302" -puts "============" -puts "" -############################### -## Invalid curves number in intersection result -############################### - -set MaxTol 6.5952839365451194e-008 -set GoodNbCurv 1 - -restore [locate_data_file CTO900_pro12913a.rle] a -restore [locate_data_file CTO900_pro12913b.rle] b - -explode a f -explode b f - -smallview -don a_34 b_9 -fit - -set log [bopcurves a_34 b_9 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -checkreal ToleranceReached ${Toler} ${MaxTol} 0.0 0.1 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" - - for {set i 1} {$i < ${NbCurv}} {incr i} { - for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { - mkedge e1 c_$i - mkedge e2 c_$j - - dset dd_val 100.0*${Toler} - distmini dd e1 e2 - - if { [dval dd_val] > ${Toler} } { - puts "Error: Intersection result is not closed" - } - } - } -} else { - checklength c_1 -l 86.536841230136204 -} \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug27310_1 b/tests/bugs/modalg_6/bug27310_1 deleted file mode 100644 index 146b73dda3..0000000000 --- a/tests/bugs/modalg_6/bug27310_1 +++ /dev/null @@ -1,25 +0,0 @@ -puts "========" -puts "OCC27310" -puts "========" -puts "" -################################################# -# Huge tolerance obtained in the result of intersection of two cylindrical faces -################################################# - -# Number of intersection curves cannot be subject to anything (indeed, output result can be empty). -# The main reason of the bug #27310 was a HUGE TOLERANCE VALUE (TolReached > 10). -# See test "bugs moddata_2 bug496" in case of doubt. - -set ExpTol 1.0e-7 - -restore [locate_data_file OCC496a.brep] a -restore [locate_data_file OCC496b.brep] b - -explode a f -explode b f - -set log [bopcurves a_8 b_2 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -checkreal TolReached $Toler $ExpTol 0.0 0.1 \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug27310_2 b/tests/bugs/modalg_6/bug27310_2 deleted file mode 100644 index 80f3cc008c..0000000000 --- a/tests/bugs/modalg_6/bug27310_2 +++ /dev/null @@ -1,25 +0,0 @@ -puts "========" -puts "OCC27310" -puts "========" -puts "" -################################################# -# Huge tolerance obtained in the result of intersection of two cylindrical faces -################################################# - -# Number of intersection curves cannot be subject to anything (indeed, output result can be empty). -# The main reason of the bug #27310 was a HUGE TOLERANCE VALUE (TolReached > 10). -# See test "bugs moddata_2 bug496" in case of doubt. - -set ExpTol 9.9999999999999995e-08 - -restore [locate_data_file OCC496a.brep] a -restore [locate_data_file OCC496b.brep] b - -explode a f -explode b f - -set log [bopcurves a_10 b_4 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -checkreal TolReached $Toler $ExpTol 0.0 0.1 \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug27431 b/tests/bugs/modalg_6/bug27431 deleted file mode 100644 index 5d6cb90762..0000000000 --- a/tests/bugs/modalg_6/bug27431 +++ /dev/null @@ -1,66 +0,0 @@ -puts "============" -puts "OCC27431" -puts "============" -puts "" -############################### -## [Regression to 6.9.1] Huge tolerance obtained during intersection of cylinder and sphere -############################### - -pload ALL - -set GoodNbCurv 4 - -restore [locate_data_file OCC13116_sh1.brep] b1 -restore [locate_data_file OCC13116_sh2.brep] b2 - -explode b1 f -explode b2 f - -set log1 [bopcurves b1_3 b2_1 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Toler NbCurv - -if { ${Toler} > 0.0005} { - puts "Error: bad tolerance of result" -} - -smallview -don b1_3 b2_1 c_* -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d_1.png - -v2d -don c2d* -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d_1.png - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} - -# increasing tolerance values of the faces on Precision::Confusion() -# dramatically increased (before fixing) the tolerance of -# the produced section curves - -settolerance b1_3 2.34623727264857e-007 -settolerance b2_1 2.e-7 - -set log2 [bopcurves b1_3 b2_1 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Toler NbCurv - -if { ${Toler} > 0.0005} { - puts "Error: bad tolerance of result" -} - -smallview -don b1_3 b2_1 c_* -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d_2.png - -v2d -don c2d* -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d_2.png diff --git a/tests/bugs/modalg_6/bug27664_1 b/tests/bugs/modalg_6/bug27664_1 deleted file mode 100644 index 3cddf671ed..0000000000 --- a/tests/bugs/modalg_6/bug27664_1 +++ /dev/null @@ -1,56 +0,0 @@ -puts "========" -puts "OCC27664" -puts "========" -puts "" -################################################# -# Incomplete intersection curve from the attached shapes -################################################# - -set ExpTol 1.1e-7 -set GoodNbCurv 3 -set GoodLength 0.6288896355727489 - -restore [locate_data_file bug27664_pl0.brep] pl0 -restore [locate_data_file bug27664_nsh_8.brep] nsh_8 -explode nsh_8 f -explode pl0 f - -set log [bopcurves pl0_1 nsh_8_4 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} - -checkreal TolReached $Toler $ExpTol 0.0 0.1 - -set clen 0.0 - -for {set ic 1} { $ic <= ${NbCurv} } { incr ic} { - - set le [length c_$ic] - regexp "The length c_$ic is +(\[-0-9.+eE\]+)" ${le} full ll - - puts "ll = $ll" - - set clen [expr $clen+$ll] -} - -puts "Summary length = $clen" - -checkreal Length $clen $GoodLength 0.0 1.0e-5 - -smallview -don c_* -fit -display pl0_1 nsh_8_4 - -checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png - -top -don c_* -fit -display pl0_1 nsh_8_4 - -checkview -screenshot -2d -path ${imagedir}/${test_image}_2.png diff --git a/tests/bugs/modalg_6/bug27766 b/tests/bugs/modalg_6/bug27766 deleted file mode 100644 index c039cd8efc..0000000000 --- a/tests/bugs/modalg_6/bug27766 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========" -puts "OCC27766" -puts "========" -puts "" -################################################# -# Incorrect section curves between attached cylinders -################################################# - -set ExpTol 1.0e-7 -set GoodNbCurv 3 - -restore [locate_data_file bug27761_c1.brep] c1 -restore [locate_data_file bug27761_c2.brep] c2 - -set log [bopcurves c1 c2 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} - -checkreal TolReached $Toler $ExpTol 0.0 0.1 - -smallview -don c_* -fit -disp c1 c2 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27780 b/tests/bugs/modalg_6/bug27780 deleted file mode 100644 index 4df90be0a9..0000000000 --- a/tests/bugs/modalg_6/bug27780 +++ /dev/null @@ -1,33 +0,0 @@ -puts "============" -puts "OCC27780" -puts "============" -puts "" -###################################################### -# Face-face intersection produces 2D curve that has reversed derivative at its end -###################################################### - -restore [locate_data_file buc60532a.brep] p -restore [locate_data_file buc60532b.brep] t1 -explode t1 f - -bopcurves p t1_2 -2d -p 6.2406621764215551 0.23999999463558200 0.00034444887595448459 -5.0019657458625186 - -pcurve p -trim c c2d1_1 0 1 -2dcvalue c 0 u0 v0 -2dcvalue c 1 u1 v1 du dv -dset u01 u1-u0 -dset v01 v1-v0 -dset dot u01*du+v01*dv - -if {[dval dot] < 0} { - puts "Error: p-curve has reversed direction at its end" -} else { - puts "OK: p-curve has correct direction at its end" -} - -view 1 -2D- 728 450 400 400 -don p_* c -2dfit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27842 b/tests/bugs/modalg_6/bug27842 deleted file mode 100755 index e55c77dcff..0000000000 --- a/tests/bugs/modalg_6/bug27842 +++ /dev/null @@ -1,29 +0,0 @@ -puts "============" -puts "OCC27842" -puts "============" -puts "" -###################################################### -# Exception in intersection algorithm if FPE is switched on -###################################################### - -dsetsignal 1 - -restore [locate_data_file bug27842_shape1_fix.brep] b1 -restore [locate_data_file bug27842_shape2_fix.brep] b2 - -explode b2 f - -bopcurves b1 b2_33 -2d - -bcommon result b1 b2 - -checknbshapes result -wire 3 -face 1 - -checkshape result - -checkprops result -s 10.8848 - -smallview; -donly result -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug27856_2 b/tests/bugs/modalg_6/bug27856_2 deleted file mode 100644 index aabc7a1671..0000000000 --- a/tests/bugs/modalg_6/bug27856_2 +++ /dev/null @@ -1,118 +0,0 @@ -puts "========" -puts "OCC27856" -puts "========" -puts "" -################################################# -# Regression vs 6.7.1: General Fuse operation fails to fuse the solids -################################################# - -# Before the fix, EMPTY result (no points, no curves) -# was returned in every considered case. - -restore [locate_data_file bug27856_int_solids.brep] b - -explode b so - -# first pair of solids -explode b_1 f -explode b_2 f - -# ---- - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_1_2 b_2_2 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 0.00026207823091004516 0.0 1.0e-3 - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_1_4 b_2_4 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 6.5053102894636701e-005 0.0 1.0e-2 - -# ---- - -# second pair of solids - -explode b_3 f -explode b_4 f - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_3_2 b_4_2 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 0.00029706239430643614 0.0 1.0e-3 - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_3_4 b_4_4 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 0.00029242389138280588 0.0 1.0e-3 - -# ---- - -# third pair of solids - -explode b_5 f -explode b_6 f - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_5_2 b_6_2 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 1.4980089259007279e-005 0.0 1.0e-2 - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_5_4 b_6_4 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 0.00023417493528435788 0.0 1.0e-3 - -# ---- - -# fourth pair of solids - -explode b_7 f -explode b_8 f - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_7_2 b_8_2 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 0.00027445924390073518 0.0 1.0e-3 - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_7_4 b_8_4 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler 1.867918118939262e-005 0.0 1.0e-2 - diff --git a/tests/bugs/modalg_6/bug27896 b/tests/bugs/modalg_6/bug27896 deleted file mode 100644 index 427933f325..0000000000 --- a/tests/bugs/modalg_6/bug27896 +++ /dev/null @@ -1,40 +0,0 @@ -puts "============" -puts "OCC27896" -puts "============" -puts "" -############################### -## Prm-Prm intersection algo returns wrong result if it is called with start -## intersection point, which lies in the domain boundary -############################### - -set tol_abs_Tolerance_Reached 1.0e-7 -set tol_rel_Tolerance_Reached 0.1 -set GoodNbCurves 2 - -restore [locate_data_file bug25319_S1.brep] b1 -restore [locate_data_file bug25319_S2.brep] b2 -explode b1 f -explode b2 f - -# GOOD result before the fix -set log1 [bopcurves b1_8 b2_17 -2d -p +1.09444207768950010000 +29.00000000000000000000 +0.17740001678466785000 +2.79671571032639710000 -p +0.00000000000000000000 +26.87779254288926400000 +0.17767342824312710000 +2.80622040022304510000] - -# BAD result before the fix -set log2 [bopcurves b1_8 b2_17 -2d -p +1.09444207768949960000 +29.00000000000000000000 +0.17740001678466785000 +2.79671571032639750000 -p +0.00000000000000000000 +26.87779254288926400000 +0.17767342824312710000 +2.80622040022304510000] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Tolerance_Reached1 NbCurv1 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Tolerance_Reached2 NbCurv2 - -set expected_Tolerance_Reached1 2.2611960020325053e-007 -set expected_Tolerance_Reached2 5.0364838664362801e-006 - -checkreal "Tolerance Reached" ${Tolerance_Reached1} ${expected_Tolerance_Reached1} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} -checkreal "Tolerance Reached" ${Tolerance_Reached2} ${expected_Tolerance_Reached2} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} - -if { $NbCurv1 != $GoodNbCurves } { - puts "Error in case 1: $GoodNbCurves curve(s) is expected but $NbCurv1 is found" -} - -if { $NbCurv2 != $GoodNbCurves } { - puts "Error in case 2: $GoodNbCurves curve(s) is expected but $NbCurv2 is found" -} diff --git a/tests/bugs/modalg_6/bug27937_1 b/tests/bugs/modalg_6/bug27937_1 deleted file mode 100644 index d4337ee9a9..0000000000 --- a/tests/bugs/modalg_6/bug27937_1 +++ /dev/null @@ -1,76 +0,0 @@ -puts "================" -puts "OCC27937" -puts "================" -puts "" -####################################################################### -# 0027937: Intersector loops infinitely while proceeding two simple surfaces -####################################################################### - -cpulimit 100 - -# Attention!!! -# The test on performance meter. -# See issue #27937 for detail. -set GoodNbCurv 4 - -restore [locate_data_file bug27937_int1.draw] s1 -restore [locate_data_file bug27937_int2.draw] s2 - -intersect result s1 s2 - -set che [whatis result] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "result" exists - renamevar result result_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis result_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - display result_$ic - - bounds result_$ic U1 U2 - - dump U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs result_$ic s1 U1 U2 10 3.0e-5 - xdistcs result_$ic s2 U1 U2 10 1.0e-5 - - for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { - mkedge e1 result_$ic - mkedge e2 result_$ip - - set coe [checkoverlapedges e1 e2 5.0e-5] - - puts "result_$ic <-> result_$ip: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: result_$ic and result_$ip are overlaped" - } - } - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" -} - -smallview -don result* -fit -clear -don s1 s2 result* -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug27937_2 b/tests/bugs/modalg_6/bug27937_2 deleted file mode 100644 index 00032ca121..0000000000 --- a/tests/bugs/modalg_6/bug27937_2 +++ /dev/null @@ -1,77 +0,0 @@ -puts "================" -puts "OCC27937" -puts "================" -puts "" -####################################################################### -# 0027937: Intersector loops infinitely while proceeding two simple surfaces -####################################################################### - -cpulimit 100 - -# Attention!!! -# The test on performance meter. -# See issue #27937 for detail. -set GoodNbCurv 4 - -ellipse c1 0 0 0 0 0 1 6.03031367203927 3.11993062568844 -extsurf s1 c1 0 0 1 -cylinder s2 0 0 0 1 0 0 0.249128788767645 - -intersect result s1 s2 - -set che [whatis result] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "result" exists - renamevar result result_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis result_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - display result_$ic - - bounds result_$ic U1 U2 - - dump U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs result_$ic s1 U1 U2 10 4.0e-5 - xdistcs result_$ic s2 U1 U2 10 1.0e-5 - - for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { - mkedge e1 result_$ic - mkedge e2 result_$ip - - set coe [checkoverlapedges e1 e2 5.0e-5] - - puts "result_$ic <-> result_$ip: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: result_$ic and result_$ip are overlaped" - } - } - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" -} - -smallview -don result* -fit -clear -don s1 s2 result* -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_6/bug28009_2 b/tests/bugs/modalg_6/bug28009_2 deleted file mode 100644 index ae76e71855..0000000000 --- a/tests/bugs/modalg_6/bug28009_2 +++ /dev/null @@ -1,31 +0,0 @@ -puts "================" -puts "OCC28009" -puts "================" -puts "" -####################################################################### -# [Regression vs OCCT7.0.0] Cut produces not valid shape -####################################################################### - -set NbCurvGood 1 -set ExpToler 5.441959818453312e-008 - -restore [locate_data_file bug28009_shape.brep] a - -explode a - -explode a_1 f -explode a_2 f - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves a_1_6 a_2_1 -2d] full Toler NbCurv -if {${NbCurv} != 1} { - puts "Error: Number of curves is bad!" -} - -checkreal TolReached $Toler $ExpToler 0.0 0.1 - -smallview -don c_* -fit -display a_1_6 a_2_1 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug28012 b/tests/bugs/modalg_6/bug28012 deleted file mode 100644 index 6b92339a5a..0000000000 --- a/tests/bugs/modalg_6/bug28012 +++ /dev/null @@ -1,17 +0,0 @@ -puts "========" -puts "OCC28012" -puts "========" -puts "" -################################################# -# Exception while intersecting two surfaces -################################################# - -restore [locate_data_file bug28012_s1.draw] s1 -restore [locate_data_file bug28012_s2.draw] s2 - -intersect result s1 s2 0.00012162815337817315 0.0010404164685680738 0.99999999999999989 0.22068942273845651 - -smallview -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug28222_1 b/tests/bugs/modalg_6/bug28222_1 deleted file mode 100644 index d6bf565cb7..0000000000 --- a/tests/bugs/modalg_6/bug28222_1 +++ /dev/null @@ -1,45 +0,0 @@ -puts "================" -puts "OCC28222" -puts "================" -puts "" -####################################################################### -# Intersection of two cylinders fails -####################################################################### - -dsetsignal 1 - -set GoodNbCurv 4 - -foreach c [directory result*] { - unset $c -} - -restore [locate_data_file bug28222_s1_cyl_read_d2.draw] s1 -restore [locate_data_file bug28222_s2_cyl_read_d2.draw] s2 - -intersect result s1 s2 - -foreach c [directory result*] { - bounds $c U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs $c s1 U1 U2 10 2.0e-7 - xdistcs $c s2 U1 U2 10 2.0e-7 -} - -set NbCurv [llength [directory result*]] - -if { $NbCurv == $GoodNbCurv } { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but $NbCurv is found!" -} - -smallview -don result* -fit -disp s1 s2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug28222_2 b/tests/bugs/modalg_6/bug28222_2 deleted file mode 100644 index 3fd838d958..0000000000 --- a/tests/bugs/modalg_6/bug28222_2 +++ /dev/null @@ -1,45 +0,0 @@ -puts "================" -puts "OCC28222" -puts "================" -puts "" -####################################################################### -# Intersection of two cylinders fails -####################################################################### - -dsetsignal 1 - -set GoodNbCurv 4 - -foreach c [directory result*] { - unset $c -} - -cylinder s1 -35 13.3706576198285 30.5814570420266 0 -0.258819045102521 -0.965925826289068 0 0.965925826289068 -0.258819045102521 11 -cylinder s2 0 0 0 1 0 0 0 0 -1 16.5 - -intersect result s1 s2 - -foreach c [directory result*] { - bounds $c U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs $c s1 U1 U2 10 2.0e-7 - xdistcs $c s2 U1 U2 10 2.0e-7 -} - -set NbCurv [llength [directory result*]] - -if { $NbCurv == $GoodNbCurv } { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but $NbCurv is found!" -} - -smallview -don result* -fit -disp s1 s2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug28222_3 b/tests/bugs/modalg_6/bug28222_3 deleted file mode 100644 index 3e1f0ac0f4..0000000000 --- a/tests/bugs/modalg_6/bug28222_3 +++ /dev/null @@ -1,46 +0,0 @@ -puts "================" -puts "OCC28222" -puts "================" -puts "" -####################################################################### -# Intersection of two cylinders fails -####################################################################### - -dsetsignal 1 - -set GoodNbCurv 2 - -foreach c [directory result*] { - unset $c -} - -cylinder s1 -9 -5 -2.2058 0 -1 0 0.001 -cylinder s2 0 0 -2.2058 0 0 -1 9 - -intersect result s1 s2 - -foreach c [directory result*] { - bounds $c U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs $c s1 U1 U2 10 2.0e-7 - xdistcs $c s2 U1 U2 10 2.0e-7 -} - -set NbCurv [llength [directory result*]] - -if { $NbCurv == $GoodNbCurv } { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv is expected but $NbCurv is found!" -} - -smallview -don result* -fit -don s1 s2 -disp result* -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_6/bug28718 b/tests/bugs/modalg_6/bug28718 deleted file mode 100644 index ee83596057..0000000000 --- a/tests/bugs/modalg_6/bug28718 +++ /dev/null @@ -1,34 +0,0 @@ -puts "========" -puts "OCC28718" -puts "========" -puts "" -################################################# -# Section result has a break -################################################# - -restore [locate_data_file bug28718_bulk_1.brep] b1 -restore [locate_data_file bug28718_hull.brep] b2 - -#### - -explode b1 f -explode b2 f -axo -don b2_61 -fit - -set log [bopcurves b1_1 b2_61 -2d] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv -checkreal TolReached $Toler 3.589120933029448e-08 0.0 0.1 - -nurbsconvert ff b2_61 -set log [bopcurves b1_1 ff -2d] -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv -checkreal TolReached $Toler 3.9019558966741645e-08 0.0 0.1 - -bsection result b1 b2 - -checkprops result -l 19.1199 - -checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug21494 b/tests/bugs/modalg_7/bug21494 deleted file mode 100644 index f91ce163eb..0000000000 --- a/tests/bugs/modalg_7/bug21494 +++ /dev/null @@ -1,22 +0,0 @@ -puts "TODO OCC21494 ALL: Error: Intersection between cone and sphere fails" - -puts "========" -puts "OCC21494" -puts "========" -puts "" -############################################ -# Intersection between cone and sphere fails -############################################ - -pcone c 15 0 10 -psphere s 10 -explode c f -explode s f -mksurface sc c_1 -mksurface ss s_1 - -intersect i sc ss - -if { [info exist i_1] == 0 } { - puts "Error: Intersection between cone and sphere fails" -} diff --git a/tests/bugs/modalg_7/bug23163_1 b/tests/bugs/modalg_7/bug23163_1 deleted file mode 100644 index 48405267bc..0000000000 --- a/tests/bugs/modalg_7/bug23163_1 +++ /dev/null @@ -1,28 +0,0 @@ -puts "TODO OCC23163 ALL: Error: No resulting circle of radius 5 at the intersection of tori, only b-splines" - -puts "================" -puts "OCC23163" -puts "================" -puts "" -####################################################################### -# Intersection of tori fails to produce results -####################################################################### - -torus t1 20 5 -torus t2 40 0 0 20 5 - -intersect result t1 t2 - -set NbCurv [llength [directory result*]] - -if { $NbCurv > 4 } { - puts "OK: Number of curves is good" -} else { - puts "Error: No resulting circle of radius 5 at the intersection of tori, only b-splines" -} - -smallview -donly result* -fit -display t1 t2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23163_2 b/tests/bugs/modalg_7/bug23163_2 deleted file mode 100644 index a487b7fcf2..0000000000 --- a/tests/bugs/modalg_7/bug23163_2 +++ /dev/null @@ -1,28 +0,0 @@ -puts "TODO OCC23163 ALL: Error: No resulting circle at the intersection of tori, only b-splines" - -puts "================" -puts "OCC23163" -puts "================" -puts "" -####################################################################### -# Intersection of tori fails to produce results -####################################################################### - -restore [locate_data_file bug23163_surface1_draw_b.draw] s1 -restore [locate_data_file bug23163_surface2_draw_b.draw] s2 - -intersect result s1 s2 - -set NbCurv [llength [directory result*]] - -if { $NbCurv > 6 } { - puts "OK: Number of curves is good" -} else { - puts "Error: No resulting circle at the intersection of tori, only b-splines" -} - -smallview -donly result* -fit -display s1 s2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23163_3 b/tests/bugs/modalg_7/bug23163_3 deleted file mode 100644 index 3b1a86af58..0000000000 --- a/tests/bugs/modalg_7/bug23163_3 +++ /dev/null @@ -1,28 +0,0 @@ -puts "TODO OCC23163 ALL: Error: No resulting circle at the intersection of tori, only b-splines" - -puts "================" -puts "OCC23163" -puts "================" -puts "" -####################################################################### -# Intersection of tori fails to produce results -####################################################################### - -restore [locate_data_file bug23163_surface1_draw_b.draw] ss1 -restore [locate_data_file bug23163_surface2_draw_b.draw] ss2 - -intersect result ss1 ss2 - -set NbCurv [llength [directory result*]] - -if { $NbCurv > 6 } { - puts "OK: Number of curves is good" -} else { - puts "Error: No resulting circle at the intersection of tori, only b-splines" -} - -smallview -donly result* -fit -display ss1 ss2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23166 b/tests/bugs/modalg_7/bug23166 deleted file mode 100644 index f6e698d204..0000000000 --- a/tests/bugs/modalg_7/bug23166 +++ /dev/null @@ -1,32 +0,0 @@ -puts "================" -puts "OCC23166" -puts "================" -puts "" -####################################################################### -# Intersection of plane and cone produces wrong result -####################################################################### - -restore [locate_data_file bug23166_surface1_draw.draw] s1 -restore [locate_data_file bug23166_surface2_draw.draw] s2 - -intersect result s1 s2 - -set log [dump result_1] -if { [regexp {Parameters} ${log}] } { - puts "Error: untrimmed first hyperbola" -} else { - puts "OK: untrimmed first hyperbola" -} - -set log [dump result_2] -if { [regexp {Parameters} ${log}] } { - puts "Error: untrimmed second hyperbola" -} else { - puts "OK: untrimmed second hyperbola" -} - -smallview -donly result* -fit -display s1 s2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23176 b/tests/bugs/modalg_7/bug23176 deleted file mode 100644 index 614eaf8b65..0000000000 --- a/tests/bugs/modalg_7/bug23176 +++ /dev/null @@ -1,61 +0,0 @@ -puts "================" -puts "OCC23176" -puts "================" -puts "" -####################################################################### -# Intersection of cylinder and cone produces open curve -####################################################################### - -restore [locate_data_file bug23176_surface1_draw.draw] s1 -restore [locate_data_file bug23176_surface2_draw.draw] s2 - -intersect result s1 s2 - -set che [whatis result] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "result" exists - renamevar result result_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - set che [whatis result_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds result_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs result_$ic s1 U1 U2 10 2.0e-7 - xdistcs result_$ic s2 U1 U2 10 2.0e-7 - - mkedge ee result_$ic - baddobjects ee - incr ic - } -} - -# Check gaps in result -bfillds -bbuild rw - -checksection rw -r 0 -checkmaxtol rw -min_tol 2.0e-7 - -checknbshapes rw -edge 4 -vertex 4 - -smallview -don result* -fit -display s1 s2 -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23972 b/tests/bugs/modalg_7/bug23972 deleted file mode 100644 index b9d919bc37..0000000000 --- a/tests/bugs/modalg_7/bug23972 +++ /dev/null @@ -1,52 +0,0 @@ -puts "==========" -puts "OCC23972: Excep-tion thrown when intersecting two cones" -puts "==========" -puts "" - -pload QAcommands - -set GoodNbCurv 2 - -OCC23972 s1 s2 - -intersect res s1 s2 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds res_$ic U1 U2 - - # Hyperbola is expected as intersection result. - # So, all bounds are adjusted to allow correct computation. - if { [dval U1] < -20.0 } { dset U1 -20.0 } - if { [dval U2] > 20.0 } { dset U2 20.0 } - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 10 3.0e-7 - xdistcs res_$ic s2 U1 U2 10 3.0e-7 - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Number of curves is good!" -} else { - puts "Error: Number of curves is bad!" -} \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug24418_1 b/tests/bugs/modalg_7/bug24418_1 deleted file mode 100755 index 6c058615df..0000000000 --- a/tests/bugs/modalg_7/bug24418_1 +++ /dev/null @@ -1,25 +0,0 @@ -puts "TODO OCC24418 ALL: Error in ii_2: T=" - -puts "========" -puts "OCC24418" -puts "========" -puts "" -############################################################ -# Wrong section curves when intersecting analytical surfaces -############################################################ - -restore [locate_data_file OCC20964_revsolid.brep] b1 -restore [locate_data_file OCC20964_sphere.brep] b2 - -explode b1 f; copy b1_7 b1 -explode b2 f; copy b2_1 b2 -mksurface s1 b1 -mksurface s2 b2 -trimv s1t s1 0 230.14184397163115 - -intersect ii s1t s2 - -bounds ii_2 u1 u2 - -xdistcs ii_2 s1 u1 u2 10 2.0e-7 -xdistcs ii_2 s2 u1 u2 10 2.0e-7 diff --git a/tests/bugs/modalg_7/bug24418_2 b/tests/bugs/modalg_7/bug24418_2 deleted file mode 100755 index c3c8001356..0000000000 --- a/tests/bugs/modalg_7/bug24418_2 +++ /dev/null @@ -1,26 +0,0 @@ -puts "TODO OCC24418 ALL: Error in ii_1: T=" - -puts "========" -puts "OCC24418" -puts "========" -puts "" -############################################################ -# Wrong section curves when intersecting analytical surfaces -############################################################ - -ptorus b1 25 24 90 -plane p 20 20 10 0 0 1 -pcone b2 p 10 8 40 -explode b1 f; copy b1_1 b1 -explode b2 f; copy b2_1 b2 -mksurface s1 b1 -mksurface s2 b2 -trimu s1t s1 0 1.5707963267948966 -trimv s2t s2 0 40.049968789001575 - -intersect ii s1t s2t - -bounds ii_1 u1 u2 - -xdistcs ii_1 s1 u1 u2 10 2.0e-7 -xdistcs ii_1 s2 u1 u2 10 2.0e-7 diff --git a/tests/bugs/modalg_7/bug24429 b/tests/bugs/modalg_7/bug24429 deleted file mode 100644 index 8386a6a444..0000000000 --- a/tests/bugs/modalg_7/bug24429 +++ /dev/null @@ -1,59 +0,0 @@ -puts "========" -puts "OCC24429: Cylinder-torus intersection throws an ex-ception and produces no result" -puts "========" -puts "" - -puts "TODO OCC24429 ALL: Error: 0 vertices are expected but 2 are found." - -set GoodNbCurves 8 - -restore [locate_data_file bug24429_s1.draw] s1 -restore [locate_data_file bug24429_s2.draw] s2 - -intersect res s1 s2 - -if { [info exists res] } { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - if { ![info exists res_$ic] } { - set AllowRepeat 0 - } else { - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-6 - xdistcs res_$ic s2 U1 U2 100 2.0e-6 - - mkedge ee res_$ic - baddobjects ee - - incr ic - } -} - -# Check of gaps between intersection curves -bfillds -bbuild rs - -checknbshapes rs -edge $GoodNbCurves -checksection rs -r 0 - -smallview -don res_* - -fit -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug24676 b/tests/bugs/modalg_7/bug24676 deleted file mode 100644 index 4f5630c07a..0000000000 --- a/tests/bugs/modalg_7/bug24676 +++ /dev/null @@ -1,13 +0,0 @@ -puts "========" -puts "0024676: Wrong result done by intersection algorithm" -puts "========" -puts "" - -restore [locate_data_file bug24676_b2.brep] b2 - -for {set i 1} { $i <= 6} {incr i} { - restore [locate_data_file bug24676_b1_${i}.brep] b1_$i - if {![regexp "no 3d curves\n has no 3d points" [ bopcurves b1_$i b2 ]]} { - puts "Error: Non-empty intersection result between b1_$i and b2, while empty is expected" - } -} diff --git a/tests/bugs/modalg_7/bug24772 b/tests/bugs/modalg_7/bug24772 deleted file mode 100644 index fa20fad11e..0000000000 --- a/tests/bugs/modalg_7/bug24772 +++ /dev/null @@ -1,45 +0,0 @@ -puts "========" -puts "OCC24772" -puts "========" -puts "" -################################################################ -# Intersection of cylinder and cone produces incorrect results -################################################################ - -restore [locate_data_file bug24772_s1.draw] s1 -restore [locate_data_file bug24772_s2.draw] s2 - -smallview +X+Y -fit -zoom 6 - -set bug_info [intersect r s1 s2] - -if {[llength $bug_info] != 4} { -# puts "ERROR: OCC24722 is reproduced." -} else { - # snapshot r_1 - clear - display s1 - display s2 - display r_1 - xwd $imagedir/${casename}_r_1.png - # snapshot r_2 - clear - display s1 - display s2 - display r_2 - xwd $imagedir/${casename}_r_2.png - # snapshot r_3 - clear - display s1 - display s2 - display r_3 - xwd $imagedir/${casename}_r_3.png - # snapshot r_4 - clear - display s1 - display s2 - display r_4 - xwd $imagedir/${casename}_r_4.png -} diff --git a/tests/bugs/modalg_7/bug26509_1 b/tests/bugs/modalg_7/bug26509_1 deleted file mode 100644 index 3398637e79..0000000000 --- a/tests/bugs/modalg_7/bug26509_1 +++ /dev/null @@ -1,42 +0,0 @@ -puts "========" -puts "0026509: Wrong intersection curve(s) obtained for pair of faces." -puts "========" -puts "" - -circle c1 0 0 0 0 -1 0 75 -circle c2 0 0 0 0 -1 0 65 -mkedge c1 c1 -mkedge c2 c2 -wire c1 c1 -wire c2 c2 -orientation c2 R -mkplane f1 c1 1 -add c2 f1 -prism p1 f1 0 1000 0 -trotate p1 0 0 0 0 0 1 180 -circle c3 50 500 -2000 0 0 1 50 -mkedge c3 c3 -wire c3 c3 -mkplane f2 c3 1 -prism p2 f2 0 0 4000 -explode p1 f -explode p2 f -trotate p2_1 0 500 0 1 0 0 -77 -trotate p2_1 0 0 0 0 0 1 180 - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 - -if {$NbCurv != 3} { - puts "Error: Please check NbCurves for intersector" -} - -puts "Check whether the intersection result is closed in 3D" -bsection result p1_2 p2_1 - -checksection result -r 0 -checkmaxtol result -ref 4.0e-7 -checkprops result -l 1881.92 - -checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug26509_2 b/tests/bugs/modalg_7/bug26509_2 deleted file mode 100644 index 3470a53da0..0000000000 --- a/tests/bugs/modalg_7/bug26509_2 +++ /dev/null @@ -1,43 +0,0 @@ -puts "========" -puts "0026509: Wrong intersection curve(s) obtained for pair of faces." -puts "========" -puts "" - -circle c1 0 0 0 0 -1 0 75 -circle c2 0 0 0 0 -1 0 65 -mkedge c1 c1 -mkedge c2 c2 -wire c1 c1 -wire c2 c2 -orientation c2 R -mkplane f1 c1 1 -add c2 f1 -prism p1 f1 0 1000 0 -trotate p1 0 0 0 0 0 1 180 -circle c3 50 500 -2000 0 0 1 50 -mkedge c3 c3 -wire c3 c3 -mkplane f2 c3 1 -prism p2 f2 0 0 4000 -explode p1 f -explode p2 f -trotate p2_1 0 500 0 1 0 0 -77 -trotate p2_1 0 0 0 0 0 1 180 -trotate p1_2 0 0 0 1.22464679914735e-16 1 0 -1.57079632679489655800*180/pi - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 - -if {$NbCurv != 1} { - puts "Error: Please check NbCurves for intersector" -} - -puts "Check whether the intersection result is closed in 3D" -bsection result p1_2 p2_1 - -checksection result -r 0 -checkmaxtol result -ref 4.0e-7 -checkprops result -l 1881.92 - -checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug26509_3 b/tests/bugs/modalg_7/bug26509_3 deleted file mode 100644 index 67f4309296..0000000000 --- a/tests/bugs/modalg_7/bug26509_3 +++ /dev/null @@ -1,43 +0,0 @@ -puts "========" -puts "0026509: Wrong intersection curve(s) obtained for pair of faces." -puts "========" -puts "" - -circle c1 0 0 0 0 -1 0 75 -circle c2 0 0 0 0 -1 0 65 -mkedge c1 c1 -mkedge c2 c2 -wire c1 c1 -wire c2 c2 -orientation c2 R -mkplane f1 c1 1 -add c2 f1 -prism p1 f1 0 1000 0 -trotate p1 0 0 0 0 0 1 180 -circle c3 50 500 -2000 0 0 1 50 -mkedge c3 c3 -wire c3 c3 -mkplane f2 c3 1 -prism p2 f2 0 0 4000 -explode p1 f -explode p2 f -trotate p2_1 0 500 0 1 0 0 -77 -trotate p2_1 0 0 0 0 0 1 180 -trotate p1_2 0 0 0 1.22464679914735e-16 1 0 1.57079632679489655800*180/pi - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -puts "Check whether the intersection result is closed in 3D" -bsection result p1_2 p2_1 - -checksection result -r 0 -checkmaxtol result -ref 4.0e-7 -checkprops result -l 1881.92 - -checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug26509_4 b/tests/bugs/modalg_7/bug26509_4 deleted file mode 100644 index 780af19080..0000000000 --- a/tests/bugs/modalg_7/bug26509_4 +++ /dev/null @@ -1,44 +0,0 @@ -puts "========" -puts "0026509: Wrong intersection curve(s) obtained for pair of faces." -puts "========" -puts "" - -circle c1 0 0 0 0 -1 0 75 -circle c2 0 0 0 0 -1 0 65 -mkedge c1 c1 -mkedge c2 c2 -wire c1 c1 -wire c2 c2 -orientation c2 R -mkplane f1 c1 1 -add c2 f1 -prism p1 f1 0 1000 0 -trotate p1 0 0 0 0 0 1 180 -circle c3 50 500 -2000 0 0 1 50 -mkedge c3 c3 -wire c3 c3 -mkplane f2 c3 1 -prism p2 f2 0 0 4000 -explode p1 f -explode p2 f -trotate p2_1 0 500 0 1 0 0 -77 -trotate p2_1 0 0 0 0 0 1 180 -trotate p1_2 0 0 0 1.22464679914735e-16 1 0 1.57079632679489655800*180/pi -tmirror p1_2 0 -500 0 0 1 0 - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -puts "Check whether the intersection result is closed in 3D" -bsection result p1_2 p2_1 - -checksection result -r 0 -checkmaxtol result -ref 4.0e-7 -checkprops result -l 1881.92 - -checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug26509_5 b/tests/bugs/modalg_7/bug26509_5 deleted file mode 100644 index c9c68304bf..0000000000 --- a/tests/bugs/modalg_7/bug26509_5 +++ /dev/null @@ -1,43 +0,0 @@ -puts "========" -puts "0026509: Wrong intersection curve(s) obtained for pair of faces." -puts "========" -puts "" - -circle c1 0 0 0 0 -1 0 75 -circle c2 0 0 0 0 -1 0 65 -mkedge c1 c1 -mkedge c2 c2 -wire c1 c1 -wire c2 c2 -orientation c2 R -mkplane f1 c1 1 -add c2 f1 -prism p1 f1 0 1000 0 -trotate p1 0 0 0 0 0 1 180 -circle c3 50 500 -2000 0 0 1 50 -mkedge c3 c3 -wire c3 c3 -mkplane f2 c3 1 -prism p2 f2 0 0 4000 -explode p1 f -explode p2 f -trotate p2_1 0 500 0 1 0 0 -77 -trotate p2_1 0 0 0 0 0 1 180 -trotate p2_1 -49.9999999999998, 1448.74012957047, -449.90210868773 1.19325918102424e-16, 0.974370064785235, -0.224951054343865 -1.26610367277949897868*180/pi - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -puts "Check whether the intersection result is closed in 3D" -bsection result p1_2 p2_1 - -checksection result -r 0 -checkmaxtol result -ref 4.0e-7 -checkprops result -l 1881.92 - -checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug26509_6 b/tests/bugs/modalg_7/bug26509_6 deleted file mode 100644 index bd6f305874..0000000000 --- a/tests/bugs/modalg_7/bug26509_6 +++ /dev/null @@ -1,44 +0,0 @@ -puts "========" -puts "0026509: Wrong intersection curve(s) obtained for pair of faces." -puts "========" -puts "" - -circle c1 0 0 0 0 -1 0 75 -circle c2 0 0 0 0 -1 0 65 -mkedge c1 c1 -mkedge c2 c2 -wire c1 c1 -wire c2 c2 -orientation c2 R -mkplane f1 c1 1 -add c2 f1 -prism p1 f1 0 1000 0 -trotate p1 0 0 0 0 0 1 180 -circle c3 50 500 -2000 0 0 1 50 -mkedge c3 c3 -wire c3 c3 -mkplane f2 c3 1 -prism p2 f2 0 0 4000 -explode p1 f -explode p2 f -trotate p2_1 0 500 0 1 0 0 -77 -trotate p2_1 0 0 0 0 0 1 180 -trotate p1_2 0 0 0 1.22464679914735e-16 1 0 -1.57079632679489655800*180/pi -trotate p2_1 -49.9999999999998, 1448.74012957047, -449.90210868773 1.19325918102424e-16, 0.974370064785235, -0.224951054343865 -1.26610367277949897868*180/pi - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 - -if {$NbCurv != 1} { - puts "Error: Please check NbCurves for intersector" -} - -puts "Check whether the intersection result is closed in 3D" -bsection result p1_2 p2_1 - -checksection result -r 0 -checkmaxtol result -ref 4.0e-7 -checkprops result -l 1881.92 - -checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug27227 b/tests/bugs/modalg_7/bug27227 deleted file mode 100644 index 9cfe04cdc1..0000000000 --- a/tests/bugs/modalg_7/bug27227 +++ /dev/null @@ -1,68 +0,0 @@ -puts "============" -puts "OCC27227" -puts "============" -puts "" -############################################################# -# Intersection curve is not continued to the surface boundary -############################################################# - -ptorus a0 100 20 -tcopy a0 a1 -trotate a1 0 0 0 1 0 0 90 - -explode a0 f -explode a1 f - -smallview -donly a0_1 a1_1 - -bopcurves a0_1 a1_1 -2d - -disp c_5 - -set log [dump c_5] - -regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles -puts "Degree=${Degree}" -puts "Poles=${Poles}" -puts "KnotsPoles=${KnotsPoles}" -puts "" - -set Pole 1 -set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" -regexp ${exp_string} ${log} full X_first Y_first Z_first - -puts "Pole=${Pole}" -puts "X_first=${X_first}" -puts "Y_first=${Y_first}" -puts "Z_first=${Z_first}" -puts "" - -set Pole ${Poles} -set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" -regexp ${exp_string} ${log} full X_end Y_end Z_end - -puts "Pole=${Pole}" -puts "X_end=${X_end}" -puts "Y_end=${Y_end}" -puts "Z_end=${Z_end}" -puts "" - -set tol_abs [checkmaxtol a0] -set tol_rel 0.01 - -set expected_X_first 80. -checkreal "X_first" ${X_first} ${expected_X_first} ${tol_abs} ${tol_rel} -set expected_Y_first 0. -checkreal "Y_first" ${Y_first} ${expected_Y_first} ${tol_abs} ${tol_rel} -set expected_Z_first 0. -checkreal "Z_first" ${Z_first} ${expected_Z_first} ${tol_abs} ${tol_rel} -puts "" - -set expected_X_end 120. -checkreal "X_end" ${X_end} ${expected_X_end} ${tol_abs} ${tol_rel} -set expected_Y_end 0. -checkreal "Y_end" ${Y_end} ${expected_Y_end} ${tol_abs} ${tol_rel} -set expected_Z_end 0. -checkreal "Z_end" ${Z_end} ${expected_Z_end} ${tol_abs} ${tol_rel} -puts "" diff --git a/tests/bugs/modalg_7/bug27623 b/tests/bugs/modalg_7/bug27623 deleted file mode 100644 index 8c9895daf9..0000000000 --- a/tests/bugs/modalg_7/bug27623 +++ /dev/null @@ -1,21 +0,0 @@ -puts "TODO OCC27623 ALL: ERROR: OCC27623 is reproduced." - -puts "========" -puts "OCC27623" -puts "========" -puts "" -##################################################################### -# Cannot find intersection line between two trimmed planar surfaces -##################################################################### - -plane s1 0 0 0 0 0 1 1 0 0 -trim s1 s1 -10 10 -10 10 -plane s2 0 0 10 1 0 0 0 0 1 -trim s2 s2 -10+1.0e-5 10 -10+1.0e-5 10 - -intersect ii s1 s2 4.0e-4 - -set bug_info [string trim [whatis ii]] -if {[string length $bug_info] == 7} { - puts "ERROR: OCC27623 is reproduced. Intersection of trimmed planar surface has not been detected." -} diff --git a/tests/bugs/modalg_7/bug27747 b/tests/bugs/modalg_7/bug27747 deleted file mode 100644 index 300aabb449..0000000000 --- a/tests/bugs/modalg_7/bug27747 +++ /dev/null @@ -1,60 +0,0 @@ -puts "========" -puts "OCC27747" -puts "========" -puts "" -################################################# -# Incomplete section curves between faces -################################################# - -set GoodNbCurv 1 -set ToleranceReachedf1f3 6.0605798668789834e-08 -set ToleranceReachedf2f3 7.0639332021089653e-08 - -restore [locate_data_file bug27747_faces.brep] f -explode f - -# ---- - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f_1 f_3 -2d] full Toler NbCurv -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler $ToleranceReachedf1f3 0.0 0.1 - -# ---- - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f_2 f_3 -2d] full Toler NbCurv -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler $ToleranceReachedf2f3 0.0 0.1 - -# ---- - -settolerance f_1 1.e-7 -fixshape f1 f_1 -tolerance f1 - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f_3 -2d] full Toler NbCurv -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler $ToleranceReachedf1f3 0.0 0.1 - -# ---- - -settolerance f_2 1.e-7 -fixshape f2 f_2 -tolerance f2 - -set Toler 0.0 -set NbCurv 0 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f2 f_3 -2d] full Toler NbCurv -if {${NbCurv} != ${GoodNbCurv}} { - puts "Error: Number of curves is bad!" -} -checkreal TolReached $Toler $ToleranceReachedf2f3 0.0 0.1 diff --git a/tests/bugs/modalg_7/bug27950 b/tests/bugs/modalg_7/bug27950 deleted file mode 100644 index 5c08e6c018..0000000000 --- a/tests/bugs/modalg_7/bug27950 +++ /dev/null @@ -1,59 +0,0 @@ -puts "TODO OCC27950 ALL: ERROR: OCC27950 is reproduced." - -puts "========" -puts "OCC27950" -puts "========" -puts "" -############################################################################ -# Result of intersection algorithm depends too much on surface trim bounds -############################################################################ - -restore [locate_data_file bug27950_s1.draw] s1 -restore [locate_data_file bug27950_s2.draw] s2 - -set bug_info [string trim [intersect i1 s1 s2]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #1. Result of intersection is [llength $bug_info]." -} - -trimv s2t s2 200 300 -set bug_info [string trim [intersect i2 s1 s2t]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #2. Result of intersection is [llength $bug_info]." -} - -trimv s2t s2 200 220 -set bug_info [string trim [intersect i3 s1 s2t]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #3. Result of intersection is [llength $bug_info]." -} - -trimv s2t s2 205.38050051360744 210.55652011282123 -set bug_info [string trim [intersect i4 s1 s2t]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #4. Result of intersection is [llength $bug_info]." -} - -trimv s2t s2 205 211 -set bug_info [string trim [intersect i5 s1 s2t]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #5. Result of intersection is [llength $bug_info]." -} - -trimv s2t s2 206 210 -set bug_info [string trim [intersect i6 s1 s2t]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #6. Result of intersection is [llength $bug_info]." -} - -trimv s2t s2 205.4 210.575 -set bug_info [string trim [intersect i7 s1 s2t]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #7. Result of intersection is [llength $bug_info]." -} - -trimv s2t s2 205.353 210.529 -set bug_info [string trim [intersect i8 s1 s2t]] -if {[llength $bug_info] != 4} { - puts "ERROR: OCC27950 is reproduced. Step #8. Result of intersection is [llength $bug_info]." -} diff --git a/tests/bugs/modalg_7/bug28085_2 b/tests/bugs/modalg_7/bug28085_2 deleted file mode 100644 index a4ef28b2db..0000000000 --- a/tests/bugs/modalg_7/bug28085_2 +++ /dev/null @@ -1,33 +0,0 @@ -puts "============" -puts "OCC28085: Incorrect result of CUT operation" -puts "============" -puts "" - -foreach a [directory c_*] {unset $a} - -# enable FPE signals -dsetsignal 1 - -restore [locate_data_file bug28883_Prism.brep] b1 -restore [locate_data_file bug28883_LES_2d_shell.brep] b2 - -explode b1 f -explode b2 f - - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_74 b2_13 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.0 1.0e-7 0.0 - -if {$NbCurv != 1} { - puts "Error: Please check NbCurves for intersector" -} else { - puts "OK: good number of curves!" - checklength c_1 -l 0.036019405388914391 -eps 1.0e-3 -} - -don c_* -smallview; fit; -disp b1_74 b2_13 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug28406 b/tests/bugs/modalg_7/bug28406 deleted file mode 100644 index db15b367f6..0000000000 --- a/tests/bugs/modalg_7/bug28406 +++ /dev/null @@ -1,31 +0,0 @@ -puts "TODO 0028406 ALL: Error: MaxTolerance" - -puts "=======" -puts "0028406" -puts "=======" -puts "" -####################################################### -# High tolerances after boolean operation on OCCT 6.9.1 -####################################################### - -restore [locate_data_file bug28406_ar_shape_to_cuts.brep] b1 -restore [locate_data_file bug28406_ar_cutting_shapes.brep] b2 - -explode b2 f - -set log_1 [bopcurves b1 b2_1 -2d] -regexp {Tolerance Reached=([-0-9.+eE]+)} $log_1 full tol_reached_1 - -set log_2 [bopcurves b1 b2_7 -2d] -regexp {Tolerance Reached=([-0-9.+eE]+)} $log_2 full tol_reached_2 - -set log_3 [maxtolerance b2] -regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $log_3 full MaxFaceTolerance - - -set ToleranceReached-6-9-1_1 0.044936986074371126 -set ToleranceReached-6-9-1_2 0.024455156919182791 -set tol_rel_MaxTol 0.0001 - -checkreal "MaxTolerance 2_1 " ${tol_reached_1} ${ToleranceReached-6-9-1_1} ${MaxFaceTolerance} ${tol_rel_MaxTol} -checkreal "MaxTolerance 2_7 " ${tol_reached_2} ${ToleranceReached-6-9-1_2} ${MaxFaceTolerance} ${tol_rel_MaxTol} diff --git a/tests/bugs/modalg_7/bug28544_2 b/tests/bugs/modalg_7/bug28544_2 deleted file mode 100644 index 2a6c66aabf..0000000000 --- a/tests/bugs/modalg_7/bug28544_2 +++ /dev/null @@ -1,22 +0,0 @@ -puts "TODO OCC28544 ALL: Error: Big tolerance value is returned by Implicit-parametric algorithm" - -puts "========" -puts "OCC28544" -puts "========" -puts "" -################################################################## -# Big tolerance value is returned by Implicit-parametric algorithm -################################################################## - -restore [locate_data_file heal-Face1.rle] b1 -restore [locate_data_file Plan.rle] b2 - -set log_1 [bopcurves b1 b2 -2d] -regexp {Tolerance Reached=([-0-9.+eE]+)} $log_1 full tol_reached - -set log_2 [maxtolerance b1] -regexp { +Face +: +Min +([-0-9.+eE]+) +Max +([-0-9.+eE]+)} $log_2 full MinFaceTolerance MaxFaceTolerance - -if { ${tol_reached} > ${MaxFaceTolerance} } { - puts "Error: Big tolerance value is returned by Implicit-parametric algorithm" -} diff --git a/tests/bugs/modalg_7/bug28557 b/tests/bugs/modalg_7/bug28557 deleted file mode 100644 index b878a85fd0..0000000000 --- a/tests/bugs/modalg_7/bug28557 +++ /dev/null @@ -1,33 +0,0 @@ -puts "========" -puts "OCC28557" -puts "========" -puts "" -################################################# -# Test case bugs modalg_6 bug27615 works differently on VC10 and VC12 -################################################# - -set MaxTolReached 5.0e-6 -set GoodNbCurv 1 - -brestore [locate_data_file bug27615.brep] b -explode b f -copy b_1 f1; copy b_19 f2; -don f1 f2 -set log [bopcurves f1 f2 -2d -p 2.2023968513463648 29.150590232723459 2. 0.085664915040461045 -p 2.2023968513457164 31.082210390953925 2.9507808705284453 0.085823752287563393] - -smallview -donly c_1 -fit -disp f1 f2 - -checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {$Toler > $MaxTolReached} { - puts "Error: Big tolerance is returned by intersector" -} - -if {$NbCurv != $GoodNbCurv} { - puts "Error: Please check NbCurves for intersector" -} diff --git a/tests/bugs/modalg_7/bug28764 b/tests/bugs/modalg_7/bug28764 deleted file mode 100644 index 25c5de6a8d..0000000000 --- a/tests/bugs/modalg_7/bug28764 +++ /dev/null @@ -1,27 +0,0 @@ -puts "========" -puts "OCC28764" -puts "========" -puts "" -################################################# -# [Regression to 7.0] Intersection of faces gives exception in debug mode -################################################# - -restore [locate_data_file bug28764_ff.brep] f -explode f - -#### - -axo -don f -fit - -# Before the fix: Exception in Debug-mode only -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f_1 f_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 4.601149532364662e-008 1.0e-7 0.0 - -if {$NbCurv != 1} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug28984 b/tests/bugs/modalg_7/bug28984 deleted file mode 100644 index b8f120fd66..0000000000 --- a/tests/bugs/modalg_7/bug28984 +++ /dev/null @@ -1,23 +0,0 @@ -puts "=======" -puts "0028984" -puts "=======" -puts "" -################################################## -# Huge intersection tolerance obtained by Face/Face intersection algorithm -################################################## - -binrestore [locate_data_file bug28984_faces.bin] f - -explode f - -set log [bopcurves f_1 f_2 -2d] -regexp {Tolerance Reached=([-0-9.+eE]+)} $log full tol_reached -regexp {([1-9]) curve} $log full nb_curves - -if {$nb_curves != 2} { - puts "Error: Invalid number of curves" -} - -if {$tol_reached > 0.01} { - puts "Error: Too big intersection tolerance" -} \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29103 b/tests/bugs/modalg_7/bug29103 deleted file mode 100644 index 33bc06ccc7..0000000000 --- a/tests/bugs/modalg_7/bug29103 +++ /dev/null @@ -1,56 +0,0 @@ -puts "========" -puts "OCC29103" -puts "========" -puts "" -################################################# -# No intersection curve between faces if starting points are given -################################################# - -set MaxTolReached 2.0e-7 -set GoodNbCurv 1 -set ExpLength 0.074141742883251954 - -restore [locate_data_file bug29073_M6.brep] a -restore [locate_data_file bug29073_Shell.brep] b -explode a f -explode b f - -don b_2 -axo -fit -disp a_6 - -set log1 [bopcurves a_6 b_2 -2d] - -checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png -checklength c_1 -l $ExpLength - -don b_2 -axo -fit -disp a_6 - -set log2 [bopcurves a_6 b_2 -2d -p -0.55478319275098653 1.2919191091235780 0.80333089657224976 0.67079577554162440 -p -0.62451407353846222 1.2667484772947102 0.82894736842100003 0.70523311453721027] - -checkview -screenshot -2d -path ${imagedir}/${test_image}_2.png -checklength c_1 -l $ExpLength - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Toler1 NbCurv1 -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Toler2 NbCurv2 - -if {$Toler1 > $MaxTolReached} { - puts "Error: Big tolerance is returned by intersector w/o start points" -} - -if {$Toler2 > $MaxTolReached} { - puts "Error: Big tolerance is returned by intersector with start points" -} - -if {$NbCurv1 != $GoodNbCurv} { - puts "Error: Please check NbCurves for intersector w/o start points" -} - -if {$NbCurv2 != $GoodNbCurv} { - puts "Error: Please check NbCurves for intersector with start points" -} - diff --git a/tests/bugs/modalg_7/bug29323 b/tests/bugs/modalg_7/bug29323 deleted file mode 100644 index ca94e94891..0000000000 --- a/tests/bugs/modalg_7/bug29323 +++ /dev/null @@ -1,35 +0,0 @@ -puts "========" -puts "OCC29323" -puts "========" -puts "" -################################################# -# Intersection algorithm produces the curve with oscillation -################################################# - -set MaxTolReached 0.15 -set GoodNbCurv 1 -set ExpLength 96.268040111795571 - -restore [locate_data_file bug29323_hb.brep] h -plane p 0 0 4 0 0 1 -mkface f p -200 200 -200 200 -explode h f - -set log [bopcurves h_4 f -2d] - -smallview -donly c_1 -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png -checklength c_1 -l $ExpLength - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv - -if {$Toler > $MaxTolReached} { - puts "Error: Big tolerance is returned by intersector" -} - -if {$NbCurv != $GoodNbCurv} { - puts "Error: Please check NbCurves for intersector" -} \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29494 b/tests/bugs/modalg_7/bug29494 deleted file mode 100644 index 65c7b79ce6..0000000000 --- a/tests/bugs/modalg_7/bug29494 +++ /dev/null @@ -1,35 +0,0 @@ -puts "========" -puts "OCC29494" -puts "========" -puts "" -################################################# -# Intersection line between two parametric surfaces is restricted incorrectly if it matches -# the surface boundary -################################################# - -restore [locate_data_file bug29488_shapes.brep] s -explode s - -explode s_4 f; copy s_4_13 f1 -explode s_6 f; copy s_6_18 f2 - -smallview -clear -bopcurves f1 f2 -2d - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv - -if {$Toler > 1.0e-7} { - puts "Error: Big tolerance is returned by intersector" -} - -if {$NbCurv != 1} { - puts "Error: Please check NbCurves for intersector" -} else { - checklength c_1 -l 19.2 -} - -fit -disp f1 f2 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug29807_i1001 b/tests/bugs/modalg_7/bug29807_i1001 deleted file mode 100644 index cc3136e67c..0000000000 --- a/tests/bugs/modalg_7/bug29807_i1001 +++ /dev/null @@ -1,26 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -explode b1 f -explode b2 f -smallview -don b1_5 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.00015253053837904724 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i1002 b/tests/bugs/modalg_7/bug29807_i1002 deleted file mode 100644 index 544cbab320..0000000000 --- a/tests/bugs/modalg_7/bug29807_i1002 +++ /dev/null @@ -1,29 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -removeloc b2 b2 - -explode b1 f -explode b2 f -smallview -don b1_5 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.00039718358540697849 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i1003 b/tests/bugs/modalg_7/bug29807_i1003 deleted file mode 100644 index 10e841e39a..0000000000 --- a/tests/bugs/modalg_7/bug29807_i1003 +++ /dev/null @@ -1,29 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -removeloc b2 b2 - -explode b1 f -explode b2 f -smallview -don b1_5 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 5.0314111870170835e-005 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i1004 b/tests/bugs/modalg_7/bug29807_i1004 deleted file mode 100644 index 2704a41f7f..0000000000 --- a/tests/bugs/modalg_7/bug29807_i1004 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 -ttranslate b2 0 0 0.3 - -explode b1 f -explode b2 f -smallview -don b1_5 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.00011289757099748416 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i1005 b/tests/bugs/modalg_7/bug29807_i1005 deleted file mode 100644 index dea1d945d0..0000000000 --- a/tests/bugs/modalg_7/bug29807_i1005 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 -ttranslate b2 0 0 2 - -explode b1 f -explode b2 f -smallview -don b1_5 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 7.7125880147734232e-007 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i1006 b/tests/bugs/modalg_7/bug29807_i1006 deleted file mode 100644 index 037bd51620..0000000000 --- a/tests/bugs/modalg_7/bug29807_i1006 +++ /dev/null @@ -1,27 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug25542_cylinder.brep] b1 -restore [locate_data_file bug25542_cone.brep] b2 - -explode b1 f -explode b2 f - -smallview -don b1_1 b2_1 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_1 b2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.0016015772839744358 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i2001 b/tests/bugs/modalg_7/bug29807_i2001 deleted file mode 100644 index c1772569c3..0000000000 --- a/tests/bugs/modalg_7/bug29807_i2001 +++ /dev/null @@ -1,27 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -explode b1 f -explode b2 f -nurbsconvert f1 b1_5 -smallview -don f1 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.693336906196208e-008 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i2002 b/tests/bugs/modalg_7/bug29807_i2002 deleted file mode 100644 index d8edea201e..0000000000 --- a/tests/bugs/modalg_7/bug29807_i2002 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -removeloc b2 b2 - -explode b1 f -explode b2 f -nurbsconvert f1 b1_5 -smallview -don f1 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.9119212307774807e-007 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i2003 b/tests/bugs/modalg_7/bug29807_i2003 deleted file mode 100644 index fe3a0bc2df..0000000000 --- a/tests/bugs/modalg_7/bug29807_i2003 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -removeloc b2 b2 - -explode b1 f -explode b2 f -nurbsconvert f1 b1_5 -smallview -don f1 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.412545178522274e-008 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i2004 b/tests/bugs/modalg_7/bug29807_i2004 deleted file mode 100644 index 00801667c4..0000000000 --- a/tests/bugs/modalg_7/bug29807_i2004 +++ /dev/null @@ -1,31 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 -ttranslate b2 0 0 0.3 - -explode b1 f -explode b2 f -nurbsconvert f1 b1_5 -smallview -don f1 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.6039506888710934e-007 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i2005 b/tests/bugs/modalg_7/bug29807_i2005 deleted file mode 100644 index f47081885e..0000000000 --- a/tests/bugs/modalg_7/bug29807_i2005 +++ /dev/null @@ -1,31 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-tool.brep] b2 - -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 -ttranslate b2 0 0 2 - -explode b1 f -explode b2 f -nurbsconvert f1 b1_5 -smallview -don f1 b2_2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 6.4774617011651419e-006 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i2006 b/tests/bugs/modalg_7/bug29807_i2006 deleted file mode 100644 index a49ca810ce..0000000000 --- a/tests/bugs/modalg_7/bug29807_i2006 +++ /dev/null @@ -1,27 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug25542_cylinder.brep] b1 -restore [locate_data_file bug25542_cone.brep] b2 - -explode b1 f -explode b2 f -nurbsconvert f1 b1_1 -smallview -don f1 b2_1 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_1 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 6.4791886898294872e-006 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i3001 b/tests/bugs/modalg_7/bug29807_i3001 deleted file mode 100644 index a1a96b6cb8..0000000000 --- a/tests/bugs/modalg_7/bug29807_i3001 +++ /dev/null @@ -1,25 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -explode b1 f -smallview -don b1_5 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.00015253053837762444 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i3002 b/tests/bugs/modalg_7/bug29807_i3002 deleted file mode 100644 index 627752d213..0000000000 --- a/tests/bugs/modalg_7/bug29807_i3002 +++ /dev/null @@ -1,28 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -removeloc f2 f2 - -explode b1 f -smallview -don b1_5 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.00039718358530349535 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i3003 b/tests/bugs/modalg_7/bug29807_i3003 deleted file mode 100644 index 92f158dacf..0000000000 --- a/tests/bugs/modalg_7/bug29807_i3003 +++ /dev/null @@ -1,28 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -removeloc f2 f2 - -explode b1 f -smallview -don b1_5 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 5.4742962483090032e-005 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i3004 b/tests/bugs/modalg_7/bug29807_i3004 deleted file mode 100644 index 67c2287e47..0000000000 --- a/tests/bugs/modalg_7/bug29807_i3004 +++ /dev/null @@ -1,29 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 -ttranslate f2 0 0 0.3 - -explode b1 f -smallview -don b1_5 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 0.00011289757087827709 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i3005 b/tests/bugs/modalg_7/bug29807_i3005 deleted file mode 100644 index c774db5095..0000000000 --- a/tests/bugs/modalg_7/bug29807_i3005 +++ /dev/null @@ -1,29 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 -ttranslate f2 0 0 2 - -explode b1 f -smallview -don b1_5 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 7.7124681583892622e-007 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i4001 b/tests/bugs/modalg_7/bug29807_i4001 deleted file mode 100644 index 7348b9b28d..0000000000 --- a/tests/bugs/modalg_7/bug29807_i4001 +++ /dev/null @@ -1,26 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -explode b1 f -nurbsconvert f1 b1_5 -smallview -don f1 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.6933365231971514e-008 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i4002 b/tests/bugs/modalg_7/bug29807_i4002 deleted file mode 100644 index 93dc8fd960..0000000000 --- a/tests/bugs/modalg_7/bug29807_i4002 +++ /dev/null @@ -1,29 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -removeloc f2 f2 - -explode b1 f -nurbsconvert f1 b1_5 -smallview -don f1 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.9119209602049977e-007 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i4003 b/tests/bugs/modalg_7/bug29807_i4003 deleted file mode 100644 index 07f0885cb4..0000000000 --- a/tests/bugs/modalg_7/bug29807_i4003 +++ /dev/null @@ -1,29 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -removeloc f2 f2 - -explode b1 f -nurbsconvert f1 b1_5 -smallview -don f1 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.4125458576041928e-008 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i4004 b/tests/bugs/modalg_7/bug29807_i4004 deleted file mode 100644 index b4489f006d..0000000000 --- a/tests/bugs/modalg_7/bug29807_i4004 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 -ttranslate f2 0 0 0.3 - -explode b1 f -nurbsconvert f1 b1_5 -smallview -don f1 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 2.6068687218615023e-007 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i4005 b/tests/bugs/modalg_7/bug29807_i4005 deleted file mode 100644 index 3113cc5d4f..0000000000 --- a/tests/bugs/modalg_7/bug29807_i4005 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -restore [locate_data_file bug29807-obj.brep] b1 -restore [locate_data_file bug29807-cone.brep] f2 - -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 -trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 -ttranslate f2 0 0 2 - -explode b1 f -nurbsconvert f1 b1_5 -smallview -don f1 f2 -fit - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 6.4774618953705733e-006 0.0 0.01 - -if {$NbCurv != 2} { - puts "Error: Please check NbCurves for intersector" -} - -checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png -smallview -2D- -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/bugs/modalg_7/bug29807_i5001 b/tests/bugs/modalg_7/bug29807_i5001 deleted file mode 100644 index fe0b13e0a5..0000000000 --- a/tests/bugs/modalg_7/bug29807_i5001 +++ /dev/null @@ -1,70 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -puts "TODO OCC29883 ALL: Error in res_2: T=0" -puts "TODO OCC29883 ALL: Error: 0 vertices are expected but 2 are found" -puts "TODO OCC29883 ALL: Error : is WRONG because number of VERTEX entities in shape \"result\" is 3" - -foreach a [directory res*] {unset $a} - -binrestore [locate_data_file bug29807_f1.bin] f1 -binrestore [locate_data_file bug29807_f2.bin] f2 - -mksurface s1 f1 -mksurface s2 f2 - -trim s1 s1 -trim s2 s2 - -intersect res s1 s2 1.0e-4 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-7 - xdistcs res_$ic s2 U1 U2 100 2.0e-7 - - mkedge ee res_$ic - baddobjects ee - incr ic - } -} - -bfillds -bbuild result - -smallview -don result* -fit - -# Check gaps between edges in ce -checksection result -r 0 -checkmaxtol result -min_tol 2.0e-7 - -checknbshapes result -edge 2 -vertex 2 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug29807_i5002 b/tests/bugs/modalg_7/bug29807_i5002 deleted file mode 100644 index e55dec57c8..0000000000 --- a/tests/bugs/modalg_7/bug29807_i5002 +++ /dev/null @@ -1,60 +0,0 @@ -puts "========" -puts "0029807: Impossible to cut cone from prism" -puts "========" -puts "" - -foreach a [directory res*] {unset $a} - -cone s1 11.4307383137554 3.49999999999979 -89.7537975119388 0 0 1 1 0 0 80.000725670142287835190342147806 9.45659107381736 -cone s2 -3.6479413426839 -11.578679656441 -89.9782110643133 0 0 1 0 1 0 5 0.250951325477062 - -intersect res s1 s2 1.0e-4 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-20} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-7 - xdistcs res_$ic s2 U1 U2 100 2.0e-7 - - mkedge ee res_$ic - baddobjects ee - incr ic - } -} - -bfillds -bbuild result - -smallview -don result* -fit - -# Check gaps between edges in ce -checksection result -r 0 -checkmaxtol result -min_tol 2.0e-7 - -checknbshapes result -edge 3 -vertex 3 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug29866 b/tests/bugs/modalg_7/bug29866 deleted file mode 100644 index 53ad0a9535..0000000000 --- a/tests/bugs/modalg_7/bug29866 +++ /dev/null @@ -1,73 +0,0 @@ -puts "================" -puts "OCC29866: Intersector returns two overlapped curves as a result" -puts "================" -puts "" - -set GoodNbCurv 1 - -binrestore [locate_data_file bug29866_sur1.bin] f1 -binrestore [locate_data_file bug29866_sur2.bin] f2 - -mksurface s1 f1 -mksurface s2 f2 -trim s2 s2 - -intersect result s1 s2 - -set che [whatis result] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "result" exists - renamevar result result_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis result_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - display result_$ic - - bounds result_$ic U1 U2 - - dump U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs result_$ic s1 U1 U2 10 4.0e-5 - xdistcs result_$ic s2 U1 U2 10 1.0e-5 - - for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { - mkedge e1 result_$ic - mkedge e2 result_$ip - - set coe [checkoverlapedges e1 e2 5.0e-5] - - puts "result_$ic <-> result_$ip: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: result_$ic and result_$ip are overlaped" - } - } - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Number of curves is good!" - checklength result_1 -l 2.6307272714501035 -} else { - puts "Error: $GoodNbCurv curves are expected but [expr {$ic - 1}] are found!" -} - -smallview -don result* -fit -clear -don s1 s2 result* -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29910_2 b/tests/bugs/modalg_7/bug29910_2 deleted file mode 100644 index 178efaaada..0000000000 --- a/tests/bugs/modalg_7/bug29910_2 +++ /dev/null @@ -1,37 +0,0 @@ -puts "========" -puts "OCC29910: Porting to Debian80-64 : Regressions in Modeling Algorithms" -puts "========" -puts "" - -# Different result between Debian 7 and Debian 8 and between MSVC 2010 and 2017. -puts "TODO ?OCC29910 Windows: Error: Tolerance = 4.0169383828521568e-006 is not equal to expected" -puts "TODO ?OCC29910 Linux: Error: Tolerance = 6.0392296447644325e-07 is not equal to expected" -puts "TODO ?OCC29910 ALL: Error : is WRONG because number of VERTEX entities in shape \"result\" is 7" -puts "TODO ?OCC29910 ALL: Error : is WRONG because number of EDGE entities in shape \"result\" is 5" - -restore [locate_data_file bug29910_f1.brep] f1 -restore [locate_data_file bug29910_f2.brep] f2 - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv - -checkreal Tolerance $Toler 1.0e-7 1.0e-7 0.0 - -if {$NbCurv != 4} { - puts "Error: Please check NbCurves for intersector" -} - -bsection result f1 f2 -checksection result -r 4 -checkshape result -checknbshapes result -edge 4 -vertex 6 -checkprops result -l 97.2011 - -if {[regexp "Faulties" [bopargcheck result]]} { - puts "Error: bopargcheck has found some faulties in result" -} - -smallview -don result -fit - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug29972_1 b/tests/bugs/modalg_7/bug29972_1 deleted file mode 100644 index 3e14357e2b..0000000000 --- a/tests/bugs/modalg_7/bug29972_1 +++ /dev/null @@ -1,65 +0,0 @@ -puts "========" -puts "OCC29972: Intersection curve has a weird gap in the middle of it" -puts "========" -puts "" - -set GoodNbCurves 2 - -foreach a [directory res*] {unset $a} - -restore [locate_data_file bug29972_s1.draw] s1 -cylinder s2 -120 54.2955104312028 -116 1 0 0 0 0 -1 28 - -intersect res s1 s2 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-6 - xdistcs res_$ic s2 U1 U2 100 2.0e-6 - - mkedge ee res_$ic - baddobjects ee - - incr ic - } -} - -# Check of gaps between intersection curves -bfillds -bbuild rs - -checknbshapes rs -edge $GoodNbCurves -checksection rs -r 0 - -smallview -don res_* - -fit -don s1 s2 -clpoles s1 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29972_2 b/tests/bugs/modalg_7/bug29972_2 deleted file mode 100644 index ecf70f15d0..0000000000 --- a/tests/bugs/modalg_7/bug29972_2 +++ /dev/null @@ -1,65 +0,0 @@ -puts "========" -puts "OCC29972: Intersection curve has a weird gap in the middle of it" -puts "========" -puts "" - -set GoodNbCurves 2 - -foreach a [directory res*] {unset $a} - -restore [locate_data_file bug29972_s1.draw] s1 -cylinder s2 -120 54.2955104312028 -116 1 0 0 0 0 -1 28 - -intersect res s1 s2 1.e-4 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-5 - xdistcs res_$ic s2 U1 U2 100 2.0e-5 - - mkedge ee res_$ic - baddobjects ee - - incr ic - } -} - -# Check of gaps between intersection curves -bfillds -bbuild rs - -checknbshapes rs -edge $GoodNbCurves -checksection rs -r 0 - -smallview -don res_* - -fit -don s1 s2 -clpoles s1 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29972_3 b/tests/bugs/modalg_7/bug29972_3 deleted file mode 100644 index 7e465591f2..0000000000 --- a/tests/bugs/modalg_7/bug29972_3 +++ /dev/null @@ -1,73 +0,0 @@ -puts "========" -puts "OCC29972: Intersection curve has a weird gap in the middle of it" -puts "========" -puts "" - -set GoodNbCurves 6 - -foreach a [directory res*] {unset $a} - -torus s1 -127 84 100 0 0 -1 1 0 0 23 10 -cylinder s2 -132 61.5500556793564 131 0 0 -1 1 0 0 10 - -intersect res s1 s2 1.0e-4 - -if { [info exists res] } { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - if { ![info exists res_$ic] } { - set AllowRepeat 0 - } else { - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-7 - xdistcs res_$ic s2 U1 U2 100 2.0e-7 - - mkedge ee res_$ic - baddobjects ee - - incr ic - } -} - -# Check of gaps between intersection curves -bfillds -bbuild rs - -checknbshapes rs -edge $GoodNbCurves - -regexp {nb alone Vertices : ([-0-9.+eE]+)} [ checksection rs -r 4 ] full nbv -if { $nbv < 2 } { - puts "Error : The section is closed. The result is possible to better than on MASTER version. Please check carefully." -} else { - for {set i 1} {$i < $nbv} {incr i} { - for {set j [expr $i +1] } {$j <= $nbv} {incr j} { - distmini dd alone_$i alone_$j; - - if { [dval dd_val] > 3.0e-6 } { - puts "Error: The distance between alone_$i and alone_$j is too big" - } - } - } -} - -smallview -don res_* - -fit -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29972_4 b/tests/bugs/modalg_7/bug29972_4 deleted file mode 100644 index da92bd43a0..0000000000 --- a/tests/bugs/modalg_7/bug29972_4 +++ /dev/null @@ -1,80 +0,0 @@ -puts "========" -puts "OCC29972: Intersection curve has a weird gap in the middle of it" -puts "========" -puts "" - -set GoodNbCurves 1 - -foreach a [directory res*] {unset $a} - -restore [locate_data_file bug29972_s3.draw] s1 -plane s2 41.3489013503538 536.047793220744 -145.944893918698 0.999990480720734 0 0.00436330928474653 0.00436330928474653 0 -0.999990480720734 - -intersect res s1 s2 1.0e-4 - -if { [info exists res] } { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - if { ![info exists res_$ic] } { - set AllowRepeat 0 - } else { - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 0.01 - xdistcs res_$ic s2 U1 U2 100 0.01 - - #check whether the curve has a loop - set delta [dval (U2-U1)/1000.0] - cvalue res_$ic [dval U1] xp yp zp dx1 dy1 dz1 - for {set p [dval U1]} {$p <= [dval U2]} {set p [expr $p + $delta]} { - cvalue res_$ic $p xp yp zp dx2 dy2 dz2 - - #Check if the angle between the vectors {dx1 dy1 dz1} and {dx2 dy2 dz2} is less than 75deg. - set nv1 [ dval dx1*dx1+dy1*dy1+dz1*dz1 ] - set nv2 [ dval dx2*dx2+dy2*dy2+dz2*dz2 ] - - set nv1 [ expr sqrt($nv1) ] - set nv2 [ expr sqrt($nv2) ] - - set dp [ dval dx1*dx2+dy2*dy2+dz1*dz2 ] - - if {$dp < [ expr 0.25881904510252076234889883762405 * $nv1 * $nv2 ] } { - puts "Error: The curve res_$ic is possible to have a bend at parameter $p. Please check carefully" - } - - dset dx1 dx2 - dset dy1 dy2 - dset dz1 dz2 - } - - incr ic - } -} - -incr ic -1 - -if { $ic != $GoodNbCurves } { - puts "Error: $GoodNbCurves are expected but $ic ones are found" -} - -smallview -don res_* - -fit -clpoles s1 -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29972_5 b/tests/bugs/modalg_7/bug29972_5 deleted file mode 100644 index b014c19b41..0000000000 --- a/tests/bugs/modalg_7/bug29972_5 +++ /dev/null @@ -1,89 +0,0 @@ -puts "========" -puts "OCC29972: Intersection curve has a weird gap in the middle of it" -puts "========" -puts "" - -puts "TODO OCC27243 ALL: Error: The curve res_1 possibly has a bend" - -set GoodNbCurves 2 - -foreach a [directory res*] {unset $a} - -binrestore [locate_data_file bug29972_f1.bin] f1 - -mksurface s1 f1 -plane s2 -145.136225014162, -136.038366, -73.563687 0 0 1 -1 0 0 - -intersect res s1 s2 - -if { [info exists res] } { - #Only variable "res" exists - renamevar res res_1 -} - -dset aLambda1 1.0e-5 -dset aLambda2 [dval 1-aLambda1] - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - if { ![info exists res_$ic] } { - set AllowRepeat 0 - } else { - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 1.0e-7 - xdistcs res_$ic s2 U1 U2 100 1.0e-7 - - #check whether the curve has a loop - set aFpar [dval U1*aLambda1+aLambda2*U2] - set aLpar [dval U2] - - set delta [expr ($aLpar-$aFpar)/10.0] - cvalue res_$ic $aFpar xp yp zp dx1 dy1 dz1 - for {set p $aFpar} {$p <= $aLpar} {set p [expr $p + $delta]} { - cvalue res_$ic $p xp yp zp dx2 dy2 dz2 - - #Check if the angle between the vectors {dx1 dy1 dz1} and {dx2 dy2 dz2} is less than 40deg. - set nv1 [ dval dx1*dx1+dy1*dy1+dz1*dz1 ] - set nv2 [ dval dx2*dx2+dy2*dy2+dz2*dz2 ] - - set nv1 [ expr sqrt($nv1) ] - set nv2 [ expr sqrt($nv2) ] - - set dp [ dval dx1*dx2+dy2*dy2+dz1*dz2 ] - - if {$dp < [ expr 0.76604444311897803520239265055542 * $nv1 * $nv2 ] } { - puts "Error: The curve res_$ic possibly has a bend at parameter $p. Please check carefully" - } - - dset dx1 dx2 - dset dy1 dy2 - dset dz1 dz2 - } - - incr ic - } -} - -incr ic -1 - -if { $ic != $GoodNbCurves } { - puts "Error: $GoodNbCurves are expected but $ic ones are found" -} - -smallview -clear -point p1 57.478209319525746 -120.6955841545726 -125.98789759526636 -point p2 57.478010564066473 -120.69677875685414 -125.98860176530741 -fit - -clpoles s1 -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29972_6 b/tests/bugs/modalg_7/bug29972_6 deleted file mode 100644 index c4005f6011..0000000000 --- a/tests/bugs/modalg_7/bug29972_6 +++ /dev/null @@ -1,89 +0,0 @@ -puts "========" -puts "OCC29972: Intersection curve has a weird gap in the middle of it" -puts "========" -puts "" - -puts "TODO OCC27243 ALL: Error: The curve res_1 possibly has a bend" - -set GoodNbCurves 2 - -foreach a [directory res*] {unset $a} - -binrestore [locate_data_file bug29972_f1.bin] f1 - -mksurface s1 f1 -plane s2 -145.136225014162, -136.038366, -73.563687 0 0 1 -1 0 0 - -intersect res s1 s2 1.0e-4 - -if { [info exists res] } { - #Only variable "res" exists - renamevar res res_1 -} - -dset aLambda1 1.0e-5 -dset aLambda2 [dval 1-aLambda1] - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - if { ![info exists res_$ic] } { - set AllowRepeat 0 - } else { - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 1.0e-7 - xdistcs res_$ic s2 U1 U2 100 1.0e-7 - - #check whether the curve has a loop - set aFpar [dval U1*aLambda1+aLambda2*U2] - set aLpar [dval U2] - - set delta [expr ($aLpar-$aFpar)/10.0] - cvalue res_$ic $aFpar xp yp zp dx1 dy1 dz1 - for {set p $aFpar} {$p <= $aLpar} {set p [expr $p + $delta]} { - cvalue res_$ic $p xp yp zp dx2 dy2 dz2 - - #Check if the angle between the vectors {dx1 dy1 dz1} and {dx2 dy2 dz2} is less than 40deg. - set nv1 [ dval dx1*dx1+dy1*dy1+dz1*dz1 ] - set nv2 [ dval dx2*dx2+dy2*dy2+dz2*dz2 ] - - set nv1 [ expr sqrt($nv1) ] - set nv2 [ expr sqrt($nv2) ] - - set dp [ dval dx1*dx2+dy2*dy2+dz1*dz2 ] - - if {$dp < [ expr 0.76604444311897803520239265055542 * $nv1 * $nv2 ] } { - puts "Error: The curve res_$ic possibly has a bend at parameter $p. Please check carefully" - } - - dset dx1 dx2 - dset dy1 dy2 - dset dz1 dz2 - } - - incr ic - } -} - -incr ic -1 - -if { $ic != $GoodNbCurves } { - puts "Error: $GoodNbCurves are expected but $ic ones are found" -} - -smallview -clear -point p1 57.478209319525746 -120.6955841545726 -125.98789759526636 -point p2 57.478010564066473 -120.69677875685414 -125.98860176530741 -fit - -clpoles s1 -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug29994 b/tests/bugs/modalg_7/bug29994 deleted file mode 100644 index cdd673118c..0000000000 --- a/tests/bugs/modalg_7/bug29994 +++ /dev/null @@ -1,63 +0,0 @@ -puts "========" -puts "0029994: Misprint in IntWalk_PWalking::Perform(...) method" -puts "========" -puts "" - -foreach a [directory res*] {unset $a} - -torus s1 185.793144150183 -13 70.9931441501827 0 -1 0 0 0 -1 27.0094480547676 0.25 -restore [locate_data_file bug29994_s2.draw] s2 - -intersect res s1 s2 1.0e-4 - -if { [info exists res] } { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - if { ![info exists res_$ic] } { - set AllowRepeat 0 - } else { - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-7 - xdistcs res_$ic s2 U1 U2 100 2.0e-7 - - mkedge ee res_$ic - baddobjects ee - incr ic - } -} - -incr ic -1 - -if { $ic == 1 } { - puts "OK: good number of curves!" - checklength res_1 -l 0.70541045554962345 -eps 1.0e-3 -} else { - puts "Error: Incorrect number of curves in intersection result!" - bfillds - bbuild result - - # Check gaps between edges in result - checksection result -r 2 - checkmaxtol result -min_tol 2.0e-7 - checknbshapes result -edge 1 -vertex 2 -} - -smallview -don res_* -fit -disp s1 s2 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug30082_1 b/tests/bugs/modalg_7/bug30082_1 deleted file mode 100644 index 59f6890343..0000000000 --- a/tests/bugs/modalg_7/bug30082_1 +++ /dev/null @@ -1,27 +0,0 @@ -puts "========" -puts "0030082: Intersection algorithm returns curve with big tolerance value" -puts "========" -puts "" - -foreach a [directory c_*] { unset $a } - -brestore [locate_data_file bug27928_b1.brep] b1 -brestore [locate_data_file bug27928_b2.brep] b2 -explode b1 f -explode b2 f - -if { [regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_1 b2_2 -2d] full Toler NbCurv ] } { - # Before the fix, the tolerance was 0.0010828835451753697 - checkreal Tolerance $Toler 6.5e-7 0.0 0.1 - - if {$NbCurv != 1} { - puts "Error: 1 curve is expected but $NbCurv curves are found." - } -} else { - puts "Error: Intersection result is empty" -} - -smallview -don c_* -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug30082_2 b/tests/bugs/modalg_7/bug30082_2 deleted file mode 100644 index ddfc67c5ed..0000000000 --- a/tests/bugs/modalg_7/bug30082_2 +++ /dev/null @@ -1,67 +0,0 @@ -puts "========" -puts "0030082: Intersection algorithm returns curve with big tolerance value" -puts "========" -puts "" - -foreach a [directory res*] {unset $a} - -set aTol 1.0e-4 -set GoodNbCurves 4 - -cylinder s1 -106.471129473161 -64.3442185874231 -19.25 1 0 0 0 0 -1 0.25 -cylinder s2 -124.971129473161 -67.0942185874231 -20.5 0 0 1 1 0 -0 3 -intersect res s1 s2 $aTol - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 -} - -bclearobjects -bcleartools - -set ic 1 -set AllowRepeat 1 -while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 $aTol - xdistcs res_$ic s2 U1 U2 100 $aTol - - mkedge ee res_$ic - baddobjects ee - incr ic - } -} - -incr ic -1 - -if { $ic != $GoodNbCurves } { - puts "Error: $GoodNbCurves curves are expected but $ic ones are found" -} - -bfillds -bbuild result - -smallview -don result -fit - -# Check gaps between edges in ce -checksection result -r 0 -checkmaxtol result -min_tol 2.0e-7 - -checknbshapes result -edge 4 -vertex 3 - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug30100_2 b/tests/bugs/modalg_7/bug30100_2 deleted file mode 100644 index 831cc1e8c5..0000000000 --- a/tests/bugs/modalg_7/bug30100_2 +++ /dev/null @@ -1,11 +0,0 @@ -puts "========" -puts "0030100: Modeling Algorithms - ShapeUpgrade_UnifySameDomain is unable to unify faces based on the same toroidal surface" -puts "========" -puts "" - -restore [locate_data_file bug30100_faces.brep] f -explode f - -if {![regexp "no 3d curves" [bopcurves f_1 f_2]]} { - puts "Error: Tangent faces are not detected" -} diff --git a/tests/bugs/modalg_7/bug30202_2 b/tests/bugs/modalg_7/bug30202_2 deleted file mode 100644 index 533de34750..0000000000 --- a/tests/bugs/modalg_7/bug30202_2 +++ /dev/null @@ -1,14 +0,0 @@ -puts "========" -puts "0030202: IntPatch_WLineTool::JoinWLines array out of bounds" -puts "========" -puts "" - -restore [locate_data_file bug30202_src.brep] b1 -restore [locate_data_file bug30202_tool.brep] b2 - -explode b1 f -explode b2 f - -if {![regexp "no 3d curves\n has no 3d points" [bopcurves b1_5 b2_7 -2d]]} { - puts "Error: Expected intersection result is empty" -} diff --git a/tests/bugs/moddata_1/buc60623_3 b/tests/bugs/moddata_1/buc60623_3 deleted file mode 100755 index b4908340d9..0000000000 --- a/tests/bugs/moddata_1/buc60623_3 +++ /dev/null @@ -1,30 +0,0 @@ -puts "========================" -puts "BUC60623" -puts "========================" - -restore [locate_data_file buc60623a.brep] a -checkshape a -restore [locate_data_file buc60623b.brep] b -checkshape b - -mksurface S1 a -mksurface S2 b - -intersect I1 S1 S2 -regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection I1] full cs2 -if { $cs2 != 0 } { - puts " Faulty : Intersection is not correct" -} else { - puts "Intersection of S1 and S2 is correct" -} - -intersect I2 S2 S1 -regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection I2] full cs2 -if { $cs2 != 0 } { - puts " Faulty : Intersection is not correct" -} else { - puts "Intersection of S2 and S1 is correct" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_1/buc60815 b/tests/bugs/moddata_1/buc60815 deleted file mode 100755 index 993fe67e71..0000000000 --- a/tests/bugs/moddata_1/buc60815 +++ /dev/null @@ -1,22 +0,0 @@ -puts "TODO OCC12345 ALL: Faulty BUC60815: NO EXCEPTION." -puts "==========" -puts "BUC60815" -puts "==========" - -plane p1 1 0 0 -plane p2 0 0 0 1 0 0 -trim p1 p1 -50 50 -50 50 -trim p2 p2 -75 75 -75 75 -intersect r2 p1 p2 -extsurf e1 r2 10 10 10 -extsurf e3 r2 10 10 10 - -if [catch { intersect result e1 e3 } catch_result] { - puts "Faulty BUC60815: NO EXCEPTION." - puts "INTERSECTION BETWEEN TWO SURFACES LYING ON THE SAME PLANE UNDEFINED" -} else { - puts "BUC60815 OK: suitable except" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_1/bug106 b/tests/bugs/moddata_1/bug106 deleted file mode 100755 index 031266e76d..0000000000 --- a/tests/bugs/moddata_1/bug106 +++ /dev/null @@ -1,78 +0,0 @@ - -puts "================" -puts "BUC61032" -puts "OCC106" -puts "================" -puts "" - -restore [locate_data_file OCC106-1.draw] sh1 -#### checkshape sh1 # - not a topological shape -restore [locate_data_file OCC106-2.draw] sh2 -#### checkshape sh2 # - not a topological shape - -trimv s1 sh1 -1000 1000 -trimv s2 sh2 -1000 1000 - -if [catch {intersect res s1 s2} result] { -set mistake 1 -} else { -set mistake 0 -} - -if { $mistake == 0 } { - puts "" - set nom 0 - set j 1 - repeat 10 { - set che [whatis res_$j] - set che1 [whatis res_$j] - set err [lindex $che [expr [llength $che] - 1]] - set err1 [lindex $che1 [expr [llength $che1] - 2]] - - if { $err != "curve" && $err1 != "3d"} { - break - } else { - set nom [expr $nom + 1] - } - incr j} - if { $nom == 0} { - puts "1) Faulty OCC106: Intersection was made WRONGLY" -} else { - puts [format "1) OCC106 OK : Intersection command works properly: %s curves" $nom] - puts "" -} -} else { - puts "1) Faulty OCC106: Intersection was made WRONGLY" -} - -if [catch {intersect rrs sh1 sh2} result] { -set mistake 1 -} else { -set mistake 0 -} - -if { $mistake == 0 } { - puts "" - set nom 0 - set j 1 - repeat 10 { - set che [whatis rrs_$j] - set che1 [whatis rrs_$j] - set err [lindex $che [expr [llength $che] - 1]] - set err1 [lindex $che1 [expr [llength $che1] - 2]] - - if { $err != "curve" && $err1 != "3d"} { - break - } else { - set nom [expr $nom + 1] - } - incr j} - if { $nom == 0} { - puts "2) Faulty OCC106: Intersection was made WRONGLY" -} else { - puts [format "2) OCC106 OK : Intersection command works properly: %s curves" $nom] -} -} else { - puts "2) Faulty OCC106: Intersection was made WRONGLY" -} - diff --git a/tests/bugs/moddata_1/bug139 b/tests/bugs/moddata_1/bug139 deleted file mode 100755 index 957a3c2cd3..0000000000 --- a/tests/bugs/moddata_1/bug139 +++ /dev/null @@ -1,25 +0,0 @@ -puts "================" -puts "OCC139" -puts "================" -puts "" -####################################### -## The intersection must be closed . So the curve is wrong. -####################################### - -restore [locate_data_file OCC139-1.draw] sh1 -restore [locate_data_file OCC139-2.draw] sh2 - -if { ![catch {intersect result sh1 sh2} catch_result] } { - puts "OCC139 OK : intersection found" - regexp { nb alone Vertices : +([-0-9.+eE]+)} [checksection result] full num - if { $num != 0 } { - puts "Faulty OCC139: Intersection was made WRONGLY. The curve must be closed ." - } else { - puts "OCC139 OK : Intersection command works properly. The curve is closed" - } -} else { - puts "Faulty OCC139 : NO intersection found" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_1/bug20524 b/tests/bugs/moddata_1/bug20524 deleted file mode 100755 index ae86c3c346..0000000000 --- a/tests/bugs/moddata_1/bug20524 +++ /dev/null @@ -1,22 +0,0 @@ -puts "========================" -puts "OCC20524" -puts "========================" -puts "" -####################################################################### -# Wrong intersection -####################################################################### - -set BugNumber OCC20524 - -restore [locate_data_file OCC20524-surf1.draw] surf1 -restore [locate_data_file OCC20524-surf2.draw] surf2 - -intersect result surf1 surf2 - -set che [whatis result] -if { ![regexp {3d curve} $che] } { - puts "Faulty ${BugNumber}: command INTERSECT works wrongly" -} else { - puts "${BugNumber} OK : command INTERSECT works properly" -} - diff --git a/tests/bugs/moddata_1/bug20766 b/tests/bugs/moddata_1/bug20766 deleted file mode 100755 index fe634b3ad6..0000000000 --- a/tests/bugs/moddata_1/bug20766 +++ /dev/null @@ -1,34 +0,0 @@ -pload QAcommands - -puts "============" -puts "OCC20766" -puts "============" -puts "" -####################################################################### -# Intersection of cone with plane in apex point crashes -####################################################################### - -set BugNumber OCC20766 - -OCC20766 plane 1 0 0 3522.4299999999998 - -set x -3522.4299999999998 -set y 2540 -set z -1461.4300000000001 -set dx 5449.7857099692965 -set dy 0 -set dz 5537.6938973109054 -set PI180 0.017453292519943295 -set semi-angle [expr 0.46689346637921703 / ${PI180}] -set radius 0. - -cone c ${x} ${y} ${z} ${dx} ${dy} ${dz} ${semi-angle} ${radius} - -if [catch { intersect result plane c } ] { - puts "Faulty ${BugNumber} : intersect is wrong" -} else { - puts "OK ${BugNumber}" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_1/bug22720 b/tests/bugs/moddata_1/bug22720 deleted file mode 100755 index bca0d276f5..0000000000 --- a/tests/bugs/moddata_1/bug22720 +++ /dev/null @@ -1,20 +0,0 @@ -puts "============" -puts "OCC22720" -puts "============" -puts "" -####################################################################### -# Wrong intersection point for the case of intersection between sphere and plane -####################################################################### - -set BugNumber OCC22720 - -restore [locate_data_file OCC22720-f1.brep] f1 -restore [locate_data_file OCC22720-f2.brep] f2 - -mksurface s1 f1 -mksurface s2 f2 - -trim s1t s1 0 2 0 2 -intersect result s1t s2 - -checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_1/bug22723 b/tests/bugs/moddata_1/bug22723 deleted file mode 100755 index 5fe0cf106f..0000000000 --- a/tests/bugs/moddata_1/bug22723 +++ /dev/null @@ -1,32 +0,0 @@ -puts "============" -puts "OCC22723" -puts "============" -puts "" -####################################################################### -# Wrong intersection curve for the case of intersection between cylinder and plane -####################################################################### - -set BugNumber OCC22723 - -restore [locate_data_file bug22723_fz44.brep] b1 -restore [locate_data_file bug22723_fz7.brep] b2 -mksurface s1 b1 -mksurface s2 b2 -intersect result s1 s2 - -regexp {Parameters : ([-0-9.+eE]+) ([-0-9.+eE]+)} [dump result] full a1 a2 -set status 0 - -if { ${a1}>=0 } { - if { ${a2}<6.29 } { - set status 1 - } -} - -if { ${status}==1 } { - puts "OK ${BugNumber}" -} else { - puts "Faulty ${BugNumber}" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_2/bug22851 b/tests/bugs/moddata_2/bug22851 deleted file mode 100755 index a02d0d1894..0000000000 --- a/tests/bugs/moddata_2/bug22851 +++ /dev/null @@ -1,29 +0,0 @@ -puts "============" -puts "OCC22851" -puts "============" -puts "" -####################################################################### -# No intersection curve between two surfaces -####################################################################### - -set BugNumber OCC22851 - -restore [locate_data_file bug22851_fz1.brep] b1 -restore [locate_data_file bug22851_fz8.brep] b2 -mksurface s1 b1 -mksurface s2 b2 -intersect i s1 s2 - -set dump_info [dump i] - -set lst [split ${dump_info}] -set dump_length [llength $lst] - -set find_BSCurve [regexp {BSplineCurve} $dump_info] -set find_Degree_Poles_Knots [regexp {Degree +[-0-9.+eE]+, +[-0-9.+eE]+ +Poles, +[-0-9.+eE]+ +Knots} $dump_info] - -if { $dump_length == 0 && !$find_BSCurve && !$find_Degree_Poles_Knots } { - puts "Faulty ${BugNumber}" -} else { - puts "OK ${BugNumber}" -} \ No newline at end of file diff --git a/tests/bugs/moddata_2/bug22923 b/tests/bugs/moddata_2/bug22923 deleted file mode 100755 index 024e57118b..0000000000 --- a/tests/bugs/moddata_2/bug22923 +++ /dev/null @@ -1,28 +0,0 @@ -puts "============" -puts "OCC22923" -puts "============" -####################################################################### -# The command "intersect" throws an exception -####################################################################### - -set BugNumber OCC22923 - -restore [locate_data_file bug22923_Face-2_7.brep] b1 -restore [locate_data_file bug22923_Face-7_0.brep] b2 - -set exception_status 0 - -mksurface s1 b1 -mksurface s2 b2 - -set msg [ intersect i s1 s2 ] -set index [ lsearch $msg Exception ] - -if {$index > -1} { - set exception_status 1 } - -if { ${exception_status} != 0 } { - puts "Faulty ${BugNumber}" -} else { - puts "OK ${BugNumber}" -} diff --git a/tests/bugs/moddata_2/bug23576 b/tests/bugs/moddata_2/bug23576 deleted file mode 100755 index d77f252723..0000000000 --- a/tests/bugs/moddata_2/bug23576 +++ /dev/null @@ -1,33 +0,0 @@ -puts "============" -puts "OCC23576" -puts "============" -puts "" -####################################################################### -# Intersection algorithm produces trimmed circle with illegal parametric range. -####################################################################### - -restore [locate_data_file bug23576_ff_b1_4_z564.brep] b1 - -explode b1 -bopcurves b1_1 b1_2 -copy c_1 result - -set log [dump result] - -regexp {Parameters : +([-0-9.+eE]+) +([-0-9.+eE]+)} ${log} full rc1 rc2 -puts "rc1=${rc1}" -puts "rc2=${rc2}" -set 2_PI [expr 2. * 2. * asin(1.0)] -puts "2_PI=${2_PI}" -puts "" - -if {${rc1} < 0.} { - puts "Error: Bad value of parametric range rc1" -} else { - puts "Good value of parametric range rc1" -} -if {${rc2} < ${2_PI}} { - puts "Error: Bad value of parametric range rc2" -} else { - puts "Good value of parametric range rc2" -} diff --git a/tests/bugs/moddata_2/bug236 b/tests/bugs/moddata_2/bug236 deleted file mode 100755 index 9c16476629..0000000000 --- a/tests/bugs/moddata_2/bug236 +++ /dev/null @@ -1,40 +0,0 @@ -puts "TODO OCC12345 ALL: Faulty OCC236" - -puts "================" -puts "OCC236" -puts "================" -puts "" -####################################################### -##Result of intersection of two surfaces of linear extrusion is incorrect. -####################################################### - -restore [locate_data_file OCC236a.rle] su1 -############### checkshape su1 # is not a topological shape -restore [locate_data_file OCC236b.rle] su2 -############### checkshape su2 # is not a topological shape - -intersect result su1 su2 - -set che [directory] -set err [lindex $che [expr [llength $che] - 1]] -if { $err != "result_2"} { - puts "Faulty OCC236" -} else { - puts "OCC236 OK (first checking) : Intersection command works properly" - regexp {nb +alone +Vertices +: +([-0-9.+eE]+)} [checksection result_1] full num - if { $num != 0 } { - puts " Faulty OCC236 (second checking): Result result_1 is UNclosed !!! " - } else { - puts " OCC236 OK (second checking): Result result_1 is closed !!! " - puts "" - } - regexp {nb +alone +Vertices +: +([-0-9.+eE]+)} [checksection result_2] full num - if { $num != 0 } { - puts " Faulty OCC236 (second checking): Result result_2 is UNclosed !!! " - } else { - puts " OCC236 OK (second checking): Result result_2 is closed !!! " - } -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug23643 b/tests/bugs/moddata_2/bug23643 deleted file mode 100755 index 18d74e47e8..0000000000 --- a/tests/bugs/moddata_2/bug23643 +++ /dev/null @@ -1,29 +0,0 @@ -puts "========================" -puts "OCC23643" -puts "========================" -puts "" -####################################################################### -# Intersection algorithm produces B-Spline curve in case of coaxial cones -####################################################################### - -restore [locate_data_file bug23643_qf3.brep] b - -explode b -copy b_1 f1 -copy b_2 f2 - -mksurface s1 f1 -mksurface s2 f2 - -trim s1t s1 0 2*pi -18 10 -trim s2t s2 0 2*pi -18 10 - -intersect result s1t s2t - -set log [dump result] - -if {[regexp {Trimmed +curve} ${log}]} { - puts "Intersection algorithm work OK" -} else { - puts "Error: Intersection algorithm work bad" -} diff --git a/tests/bugs/moddata_2/bug23644 b/tests/bugs/moddata_2/bug23644 deleted file mode 100755 index b4fd0ca772..0000000000 --- a/tests/bugs/moddata_2/bug23644 +++ /dev/null @@ -1,20 +0,0 @@ -puts "========" -puts "CR23644" -puts "========" - -########################################## -## Intersection between coaxial cones produces exception -########################################## - -pcone cn1 10 0 20 -pcone cn2 20 0 20 -explode cn1 f -explode cn2 f -copy cn1_1 f1 -copy cn2_1 f2 - -if [catch {bopcurves f1 f2} BOPLog] { - if { [regexp "Tolerance Reached=0\n has no 3d curve" ${BOPLog}] != 1 } { - puts "CR23644: Error" - } -} diff --git a/tests/bugs/moddata_2/bug237 b/tests/bugs/moddata_2/bug237 deleted file mode 100755 index cdfb9c87d7..0000000000 --- a/tests/bugs/moddata_2/bug237 +++ /dev/null @@ -1,27 +0,0 @@ -puts "================" -puts "OCC237" -puts "================" -puts "" -####################################################### -## Hang-ups during the intersection of attached surfaces -####################################################### - -restore [locate_data_file OCC236b.rle] su1 -############### checkshape su1 # is not a topological shape -restore [locate_data_file OCC237b.rle] su2 -############### checkshape su2 # is not a topological shape - -if [catch {intersect result su1 su2 }] { - set mistake 1 -} else { - set mistake 0 -} - -if { $mistake != 0} { - puts "Faulty OCC237: Intersection was made WRONGLY" -} else { - puts "OCC237 OK : Intersection command works properly" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug271 b/tests/bugs/moddata_2/bug271 deleted file mode 100755 index d235965ee4..0000000000 --- a/tests/bugs/moddata_2/bug271 +++ /dev/null @@ -1,26 +0,0 @@ - -puts "========================" -puts " OCC271 " -puts "========================" -puts "" - -restore [locate_data_file OCC271a.rle] su1 -restore [locate_data_file OCC271b.rle] su2 - -set U1 2.315721254379057e-16 -set U2 0.01131870392278708 -set V1 226.9760100729095 -set V2 203.7283534809051 - -intersect result su1 su2 $U1 $V1 $U2 $V2 - -set che [whatis result] - -if { ![regexp {3d} $che] || ![regexp {curve} $che]} { - puts "Faulty OCC271: command INTERSECT works wrongly" -} else { - puts "OCC271 OK : command INTERSECT works properly" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug286 b/tests/bugs/moddata_2/bug286 deleted file mode 100755 index 1f95128aa9..0000000000 --- a/tests/bugs/moddata_2/bug286 +++ /dev/null @@ -1,28 +0,0 @@ -puts "TODO OCC12345 ALL: Faulty OCC286: Attempt to project the point on surface gives wrong result." -puts "========================" -puts " OCC286 " -puts "========================" -puts "" - -restore [locate_data_file OCC286a.draw] a -restore [locate_data_file OCC286b.draw] b - -intersect i a b -cvalue i 0.31 x y z -point p x y z -proj b x y z - -set err1 "" -set err2 "" -set err3 "" -regexp {Point +: +([-0-9.+eE]+, +[-0-9.+eE]+, +[-0-9.+eE]+)} [dump ext_1] full err1 -regexp {Point +: +([-0-9.+eE]+, +[-0-9.+eE]+, +[-0-9.+eE]+)} [dump ext_2] full err2 -regexp {Point +: +([-0-9.+eE]+, +[-0-9.+eE]+, +[-0-9.+eE]+)} [dump ext_3] full err3 - -if { $err1 == $err2 || $err1 == $err3 || $err2 == $err3 } { - puts "Faulty OCC286: Attempt to project the point on surface gives wrong result." -} else { - puts "OCC286 OK : Attempt to project the point on surface gives correct result" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_2/bug324 b/tests/bugs/moddata_2/bug324 deleted file mode 100755 index 0593ea210d..0000000000 --- a/tests/bugs/moddata_2/bug324 +++ /dev/null @@ -1,21 +0,0 @@ -puts "========================" -puts " OCC324 " -puts "========================" -puts "" -################################################################# -## The command "intersect" applied to the given arguments "s1" (plane) and "s2" (cylinder) leads -## to the program hang-up. -################################################################# - -restore [locate_data_file OCC324a.draw] s1 -restore [locate_data_file OCC324b.draw] s2 - -if [catch {intersect result s1 s2} catch_result] { - puts "Faulty OCC324: function INTERSECT works wrongly" -} else { - puts "OCC324 OK: function INTERSECT works properly" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - - diff --git a/tests/bugs/moddata_2/bug333 b/tests/bugs/moddata_2/bug333 deleted file mode 100755 index d80400f170..0000000000 --- a/tests/bugs/moddata_2/bug333 +++ /dev/null @@ -1,72 +0,0 @@ -puts "================" -puts "OCC333: Superimposed curves during intersection two surfaces " -puts "================" -puts "" - -set GoodNbCurv 14 - -restore [locate_data_file OCC333a.draw] s1 -restore [locate_data_file OCC333b.draw] s2 - -intersect result s1 s2 - -set che [whatis result] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "result" exists - renamevar result result_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis result_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - display result_$ic - - bounds result_$ic U1 U2 - - dump U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs result_$ic s1 U1 U2 10 2.0e-7 - xdistcs result_$ic s2 U1 U2 10 2.0e-7 - - for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { - mkedge e1 result_$ic - mkedge e2 result_$ip - - set coe [checkoverlapedges e1 e2 5.0e-5] - - puts "result_$ic <-> result_$ip: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: result_$ic and result_$ip are overlaped" - } - } - - incr ic - } -} - -incr ic -1 - -if {$ic == $GoodNbCurv} { - puts "OK: Number of curves is good!" -} else { - puts "Error: $GoodNbCurv curves are expected but $ic ones are found!" -} - -smallview -don result* -fit -clear -don s1 s2 result* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug370 b/tests/bugs/moddata_2/bug370 deleted file mode 100755 index 9dbc8e5e6f..0000000000 --- a/tests/bugs/moddata_2/bug370 +++ /dev/null @@ -1,24 +0,0 @@ -puts "========================" -puts "BUC61033" -puts " OCC370 " -puts "========================" -puts "" -################################################################# -##Intersection between a sphere and trimmed plane, using IntPatch_Intersection, lead to infinite cycle. -################################################################# - -sphere gs1 1 -plane gs2 0 0 0 1 0 0 -trim trgs2 gs2 0 1.000001 -1 0.000001 - -intersect result gs1 trgs2 - -cpulimit 300 - -puts "OCC370 OK: function INTERSECT works properly" - -erase gs2 - -checkview -display result -2d -path ${imagedir}/${test_image}.png - - diff --git a/tests/bugs/moddata_2/bug371 b/tests/bugs/moddata_2/bug371 deleted file mode 100755 index 0d424b7818..0000000000 --- a/tests/bugs/moddata_2/bug371 +++ /dev/null @@ -1,24 +0,0 @@ - -puts "========================" -puts "BUC61034" -puts " OCC371 " -puts "========================" -puts "" -################################################################# -##Intersection between two BSplineSurfaces, using IntPatch_Intersection, lead to infinite cycle. -################################################################# - -restore [locate_data_file OCC371a.brep] a -restore [locate_data_file OCC371b.brep] b - -mksurface gs1 a -mksurface gs2 b -trim trgs1 gs1 0.0 1.0 0.9698725179864 1.0 -trim trgs2 gs2 0.0 1.0 0.24333094700742 0.92374551772989 - -#cpulimit 300 -intersect result trgs1 trgs2 - -checkview -display result -2d -path ${imagedir}/${test_image}.png - - diff --git a/tests/bugs/moddata_2/bug429 b/tests/bugs/moddata_2/bug429 deleted file mode 100755 index e1a320dab7..0000000000 --- a/tests/bugs/moddata_2/bug429 +++ /dev/null @@ -1,32 +0,0 @@ -puts "========================" -puts " OCC429 " -puts "========================" -puts "" -####################################### -## Projection for a point on a surface works wrong -####################################### - -restore [locate_data_file OCC429a.draw] a -restore [locate_data_file OCC429b.draw] b - -intersect i a b - -cvalue i_2 0.43213918 x y z -point p x y z -proj b x y z - -set err1 [string range [dump ext_1] 55 64] -set err2 [string range [dump ext_2] 55 64] -set err3 [string range [dump ext_3] 55 64] -set err4 [string range [dump ext_4] 55 64] -set err5 [string range [dump ext_5] 55 64] -set err6 [string range [dump ext_6] 55 64] - -if { $err1 != "Parameters" || $err2 != "Parameters" || $err3 != "Parameters" || $err4 != "Parameters" || $err5 != "Parameters" || $err6 != "Parameters" } { - puts " OCC286 OK : Projection for a point on a surface works properly" -} else { - puts "Faulty OCC429 : Attempt to project the point on surface gives incorrect result" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug431 b/tests/bugs/moddata_2/bug431 deleted file mode 100755 index 4b5f75d009..0000000000 --- a/tests/bugs/moddata_2/bug431 +++ /dev/null @@ -1,23 +0,0 @@ -puts "========================" -puts " OCC431 " -puts "========================" -puts "" -##################################### -## Intersection of two surfaces is not compleate curve. -##################################### - -restore [locate_data_file OCC431a.draw] su1 -restore [locate_data_file OCC431b.draw] su2 - -intersect result su1 su2 - -set che [whatis result] - -if { ![regexp {curve} $che] || ![regexp {3d} $che]} { - puts "Faulty OCC431 : Command INTERSECT works WRONGLY" -} else { - puts "OCC431 OK : Command INTERSECT works properly" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug504 b/tests/bugs/moddata_2/bug504 deleted file mode 100755 index 2287b920fb..0000000000 --- a/tests/bugs/moddata_2/bug504 +++ /dev/null @@ -1,28 +0,0 @@ -puts "=========" -puts " OCC504 " -puts "=========" -puts "" -############################### -## AllocMemory while intersection command -############################### - -restore [locate_data_file OCC504a.draw] su1 -# checkshape su1 - -restore [locate_data_file OCC504b.draw] su2 -# checkshape su2 - -if [catch {intersect result su1 su2} catch_result] { - puts "Faulty OCC504 : A solution takes all memory and crach with AllocMemory" -} else { - puts "OCC504 OK: function intersection works ok" -} - -if { [regexp {curve} [whatis result_1]] && [regexp {curve} [whatis result_2]] } { - puts "OCC504 OK : Result shape is CORRECT !!! " -} else { - puts " Faulty OCC504: Result shape is INcorrect !!! " -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug513 b/tests/bugs/moddata_2/bug513 deleted file mode 100755 index ce2c849f36..0000000000 --- a/tests/bugs/moddata_2/bug513 +++ /dev/null @@ -1,23 +0,0 @@ -puts "========" -puts "OCC513" -puts "========" -puts "" - -###################################### -## Can not intersect plane and conical surfaces -## The ">intersect" command hangs up the computer. -###################################### - -# cpulimit 9000 - -restore [locate_data_file OCC513a.draw] sa23 -restore [locate_data_file OCC513b.draw] sb8 - -if { [catch {intersect result sa23 sb8} catch_result] } { - puts "Faulty OCC513: function INTERSECTION works wrongly" -} else { - puts "OCC513 OK: function INTERSECTION works properly" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug531 b/tests/bugs/moddata_2/bug531 deleted file mode 100755 index 59a55f1f69..0000000000 --- a/tests/bugs/moddata_2/bug531 +++ /dev/null @@ -1,16 +0,0 @@ - -puts "=======" -puts "OCC531" -puts "=======" -puts "" -########################################################## -## Can not intersect plane and cone.The ">intersect" command hangs up the computer -########################################################## - -restore [locate_data_file OCC531_1.draw] a -restore [locate_data_file OCC531_2.draw] b - -intersect result a b - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug537 b/tests/bugs/moddata_2/bug537 deleted file mode 100755 index 3d192fc53c..0000000000 --- a/tests/bugs/moddata_2/bug537 +++ /dev/null @@ -1,27 +0,0 @@ -puts "TODO OCC12345 ALL: Error : OCC537" - -puts "=======" -puts "OCC537" -puts "=======" -puts "" -####################################################################### -##Application do something in intersection operation for long time and eat much memory (This may be the -## reason of BUS ERROR that happens in application). Intersection operation invokes for conical and plane -## surfaces. -####################################################################### - -restore [locate_data_file OCC537_CONE.draw] c -restore [locate_data_file OCC537_PLANE.draw] p - -intersect result c p - -set wt_is [whatis result] - -if { [regexp {WIRE} ${wt_is}] } { - puts " OCC537 OK" -} else { - puts "Error : OCC537" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png - diff --git a/tests/bugs/moddata_2/bug565 b/tests/bugs/moddata_2/bug565 deleted file mode 100755 index 67a147a67d..0000000000 --- a/tests/bugs/moddata_2/bug565 +++ /dev/null @@ -1,71 +0,0 @@ -puts "========" -puts "OCC565: Can not intersect two trimmed conical surfaces" -puts "========" -puts "" - -set GoodNbCurv 1 - -foreach c [directory result*] { - unset $c -} - -foreach c [directory inf*] { - unset $c -} - -restore [locate_data_file OCC565a.draw] s1 -restore [locate_data_file OCC565b.draw] s2 - -puts "Preliminary check: intersection work with infinite cones:" -if { [catch {intersect inf s1 s2 } catch_result] } { - puts "Faulty OCC565: function intersection works wrongly with infinite cones" -} else { - set isFound 0 - foreach c [directory inf*] { - set ind [string first "3d curve" [whatis $c]] - if {${ind} < 0} { - dump $c - puts "Error: Intersection result (with infinite cones) is not 3D-curve" - } else { - set isFound 1 - } - } - - if { !$isFound } { - puts "Error: Empty intersection result (with infinite cones)" - } -} - -trim s1x s1 0 2*pi 0 2.8 -trim s2x s2 0 2*pi 0 2.8 - -if { [catch {intersect result s1x s2x } catch_result] } { - puts "Faulty OCC565 exception: function intersection works wrongly with trimmed cones" -} else { - foreach c [directory result*] { - bounds $c U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs $c s1 U1 U2 10 1.0e-7 - xdistcs $c s2 U1 U2 10 1.0e-7 - } - - set NbCurv [llength [directory result*]] - - if { $NbCurv == $GoodNbCurv } { - puts "OK: Number of curves is good!" - } else { - puts "Error: $GoodNbCurv is expected but $NbCurv is found!" - } - - smallview - don result* - fit - disp s1x s2x - checkview -screenshot -2d -path ${imagedir}/${test_image}.png -} - - diff --git a/tests/bugs/moddata_2/bug567_1 b/tests/bugs/moddata_2/bug567_1 deleted file mode 100644 index 223b72581c..0000000000 --- a/tests/bugs/moddata_2/bug567_1 +++ /dev/null @@ -1,94 +0,0 @@ -puts "========" -puts "OCC567: Can not intersect two Rectangular Trimmed Surfaces ." -puts "========" -puts "" - -# Different result between Debian 7 and Debian 8 and between MSVC 2010 and 2017. -puts "TODO ?OCC30012 Linux: Error: 10 curves are expected but 9 ones are found." -puts "TODO ?OCC30012 Linux: Error: 10 curves are expected but 8 ones are found." -puts "TODO ?OCC29910 Windows: Error: 10 curves are expected but 11 ones are found." -puts "TODO ?OCC29910 Windows: Error : is WRONG because number of EDGE entities in shape \"rs\" is 15" -puts "TODO ?OCC29910 Linux: Error : is WRONG because number of EDGE entities in shape \"rs\" is 8" -puts "TODO ?OCC29910 Windows: Error: 0 vertices are expected but 2 are found" - -set GoodNbCurves 10 - -foreach a [directory res*] {unset $a} - -restore [locate_data_file OCC567a.draw] s1 -restore [locate_data_file OCC567b.draw] s2 - -if { [catch {intersect res s1 s2 } catch_result] } { - puts "Faulty OCC567: function intersection works wrongly with infinite Surfaces" -} else { - set che [whatis res] - set ind [string first "3d curve" $che] - if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 - } - - bclearobjects - bcleartools - - set ic 1 - set AllowRepeat 1 - while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-7 - xdistcs res_$ic s2 U1 U2 100 2.0e-7 - - for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { - mkedge e1 res_$ic - mkedge e2 res_$ip - - set coe [checkoverlapedges e1 e2 5.0e-5] - - puts "res_$ic <-> res_$ip: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: res_$ic and res_$ip are overlaped" - } - } - - mkedge ee res_$ic - baddobjects ee - - incr ic - } - } - - incr ic -1 - - if {$ic != $GoodNbCurves} { - puts "Error: $GoodNbCurves curves are expected but $ic ones are found." - } - - if {$ic != 1} { - # Check of gaps between intersection curves - bfillds - bbuild rs - - checknbshapes rs -edge 14 - checksection rs -r 0 - } -} - -smallview -don res_* - -fit -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_2/bug567_2 b/tests/bugs/moddata_2/bug567_2 deleted file mode 100644 index 21286d553b..0000000000 --- a/tests/bugs/moddata_2/bug567_2 +++ /dev/null @@ -1,89 +0,0 @@ -puts "========" -puts "OCC567: Can not intersect two Rectangular Trimmed Surfaces ." -puts "========" -puts "" - -set GoodNbCurves 1 - -restore [locate_data_file OCC567a.draw] s1 -restore [locate_data_file OCC567b.draw] s2 - -foreach a [directory res*] {unset $a} - -trim s1x s1 0 2*pi 0 2*pi/13 -trim s2x s2 0 2*pi 0 2*pi/13 - -if { [catch {intersect res s1x s2x } catch_result] } { - puts "Faulty OCC565 exception: function intersection works wrongly with trimmed Surfaces" -} else { - set che [whatis res] - set ind [string first "3d curve" $che] - if {${ind} >= 0} { - #Only variable "res" exists - renamevar res res_1 - } - - bclearobjects - bcleartools - - set ic 1 - set AllowRepeat 1 - while { $AllowRepeat != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeat 0 - } else { - - bounds res_$ic U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs res_$ic s1 U1 U2 100 2.0e-7 - xdistcs res_$ic s2 U1 U2 100 2.0e-7 - - for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { - mkedge e1 res_$ic - mkedge e2 res_$ip - - set coe [checkoverlapedges e1 e2 5.0e-5] - - puts "res_$ic <-> res_$ip: $coe" - if { [regexp "Edges is not overlaped" $coe] != 1 } { - puts "Error: res_$ic and res_$ip are overlaped" - } - } - - mkedge ee res_$ic - baddobjects ee - - incr ic - } - } - - incr ic -1 - - if {$ic != $GoodNbCurves} { - puts "Error: $GoodNbCurves curves are expected but $ic ones are found." - } - - if {$ic != 1} { - # Check of gaps between intersection curves - bfillds - bbuild rs - - checknbshapes rs -edge 1 - checksection rs -r 2 - } -} - -smallview -don res_* - -fit -don s1 s2 -disp res_* - -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_2/bug604 b/tests/bugs/moddata_2/bug604 deleted file mode 100755 index 276b6324d1..0000000000 --- a/tests/bugs/moddata_2/bug604 +++ /dev/null @@ -1,35 +0,0 @@ -puts "TODO OCC12345 ALL: Faulty OCC604: Result of intersection operation is INcorrect !!!" - -puts "========================" -puts " OCC604" -puts "========================" -puts "" -############################ -## Wrong intersection between two tores. -############################ - -restore [locate_data_file OCC604a.draw] a -restore [locate_data_file OCC604b.draw] b - -if { [catch { intersect result a b } catch_result] } { - puts "Faulty OCC604: function INTERSECTION works with exception" -} else { - set nom 0 - set j 1 - repeat 10 { - set err [lindex [whatis res_$j] 5] - if { $err != "curve"} { - break - } else { - set nom [expr $nom + 1] - } - incr j - } - if { $nom != 1 } { - puts "Faulty OCC604: Result of intersection operation is INcorrect !!!" - } else { - puts "OCC604 OK : Result of intersection operation is CORRECT !!! " - } -} - -checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_2/bug6474 b/tests/bugs/moddata_2/bug6474 deleted file mode 100755 index 321dfe0f57..0000000000 --- a/tests/bugs/moddata_2/bug6474 +++ /dev/null @@ -1,20 +0,0 @@ -puts "============" -puts "OCC6474" -puts "============" -puts "" -###################################################### -# Incorrect result of intersection of a plane and an extrusion surface -###################################################### - -set BugNumber OCC6474 - -restore [locate_data_file OCC6474-s1.draw] s1 -restore [locate_data_file OCC6474-s2.draw] s2 - -intersect res s1 s2 - -if {[llength [directory res*]] != 1} { - puts "Faulty ${BugNumber}: more than 1 intersection line is got" -} else { - puts "OK ${BugNumber}" -} diff --git a/tests/bugs/moddata_2/ger61235 b/tests/bugs/moddata_2/ger61235 deleted file mode 100755 index cf56c2aa30..0000000000 --- a/tests/bugs/moddata_2/ger61235 +++ /dev/null @@ -1,24 +0,0 @@ -puts "===========" -puts "GER61235" -puts "===========" - -restore [locate_data_file ger61235a.brep] tool -checkshape tool -restore [locate_data_file ger61235b.brep] object -checkshape object - -bsection result object tool - -puts "Result of section :" -checkshape result -#To check geometry part -mksurface s1 tool -mksurface s2 object - -puts "Result of intersect :" -intersect result s1 s2 -puts [checksection result] - -checkview -display result -2d -path ${imagedir}/${test_image}.png - - diff --git a/tests/bugs/moddata_3/bug23471 b/tests/bugs/moddata_3/bug23471 deleted file mode 100755 index 97eab65ac9..0000000000 --- a/tests/bugs/moddata_3/bug23471 +++ /dev/null @@ -1,63 +0,0 @@ -puts "TODO OCC26190 ALL: Error: Curve Number is bad" -puts "TODO OCC26190 ALL: Error: Length of intersection line is bad!" - -puts "============" -puts "CR23471" -puts "============" -puts "" -####################################################################### -# Intersection algorithm produces overlapping intersection curves -####################################################################### - -# Attention!!!! -# Change these values is strictly forbidden (see bug #26190) -set GoodNbCurv 1 -set GoodLength 79655.615367318111 - -restore [locate_data_file OCC22790-cx.brep] b - -explode b -mksurface s1 b_1 -mksurface s2 b_3 -intersect res s1 s2 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - copy res res_1 -} - -set SumLength 0 - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - set log [length res_$ic] - set exp_string "The length res_$ic is +(\[-0-9.+eE\]+)" - regexp ${exp_string} ${log} full len - set SumLength [expr $SumLength+$len] - - incr ic - } -} - -set NbCurv [expr {$ic - 1}] -if {$NbCurv == $GoodNbCurv} { - puts "OK: Curve Number is good!" -} else { - puts "Error: Curve Number is bad ($NbCurv curve(s) found, but $GoodNbCurv expected)!" -} - -if { abs($SumLength - $GoodLength) < 0.01*$GoodLength } { - puts "OK: Length of intersection line is good!" -} else { - puts "Error: Length of intersection line is bad!" - puts "Expected length is: $GoodLength" - puts "Found length is: $SumLength" -} \ No newline at end of file diff --git a/tests/bugs/moddata_3/bug23981 b/tests/bugs/moddata_3/bug23981 deleted file mode 100755 index 2c6925494d..0000000000 --- a/tests/bugs/moddata_3/bug23981 +++ /dev/null @@ -1,22 +0,0 @@ -puts "=========" -puts "CR23981" -puts "=========" -puts "" -############################### -## Wrong section curves -############################### - -restore [locate_data_file bug23981_s1.draw] s1 -restore [locate_data_file bug23981_s2.draw] s2 - -intersect i s1 s2 - -puts "First test" -xdistcs i_1 s1 0 1 100 1e-7 - -puts "Second test" -xdistcs i_2 s1 0 1 100 1e-7 - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_3/bug24142 b/tests/bugs/moddata_3/bug24142 deleted file mode 100755 index d6b19854be..0000000000 --- a/tests/bugs/moddata_3/bug24142 +++ /dev/null @@ -1,24 +0,0 @@ -puts "================" -puts "OCC24142" -puts "================" -puts "" -################################################################# -## Wrong section curve -################################################################# - -restore [locate_data_file OCC152.brep] sh -explode sh f - -mksurface s1 sh_3 -mksurface s2 sh_5 - -trim st1 s1 0 6.28318530717959 0 74.9999999999999 -trim st2 s2 0 6.28318530717959 -74.0551172696384 125.944882730362 - -intersect cur st1 st2 - -if { [regexp -nocase "curve" [whatis cur]] } { - puts "Error: intersection curve is built while it should not" -} - -checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_3/bug24427_2 b/tests/bugs/moddata_3/bug24427_2 deleted file mode 100644 index 7e6d03da01..0000000000 --- a/tests/bugs/moddata_3/bug24427_2 +++ /dev/null @@ -1,31 +0,0 @@ -puts "=========" -puts "CR24427" -puts "=========" -puts "" -############################### -## Wrong section curves -############################### - -restore [locate_data_file bug24427_b1.brep] b1 -restore [locate_data_file bug24427_b2.brep] b2 - -mksurface s1 b1 -mksurface s2 b2 - -trim s1t s1 0 3.1415926535897931 3.3684854563490672 3.9269908169872507 -trim s2t s2 0 3.1415926535897931 -1.0598124096115453e-015 0.013271150216666670 - -intersect i s1t s2t -don s1t s2t i - -puts "First test" -xdistcs i s1 0 1 10 1e-7 - -puts "Second test" -xdistcs i s2 0 1 10 1e-7 - -donly i s1t s2t - -smallview -fit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_3/bug25095 b/tests/bugs/moddata_3/bug25095 deleted file mode 100644 index e50564832c..0000000000 --- a/tests/bugs/moddata_3/bug25095 +++ /dev/null @@ -1,27 +0,0 @@ -puts "============" -puts "OCC25095" -puts "============" -puts "" -####################################################################### -# Wrong result obtained by projection algorithm -####################################################################### - -restore [locate_data_file bug25095_fz639.brep] b1 -restore [locate_data_file bug25095_fz5075.brep] b2 - -mksurface s1 b1 -bopcurves b1 b2 - -trim ct1 c_1 0.79929107016766299 7.0824763773472492 -trim ct2 c_1 0.79929107016766343 7.0824763773472501 - -project cp1 ct1 s1 -project cp2 ct2 s1 -checklength cp1 -l 7.2783309522 -checklength cp2 -l 7.2783309522 - -#v2d2 -view 1 -2D- 728 20 400 400 - -2dfit -checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_3/bug25782_1 b/tests/bugs/moddata_3/bug25782_1 deleted file mode 100755 index 879676da0c..0000000000 --- a/tests/bugs/moddata_3/bug25782_1 +++ /dev/null @@ -1,70 +0,0 @@ -puts "========" -puts "OCC25782" -puts "========" -puts "" -###################################################### -# The result of intersection between two cylinders is incorrect -# Algorithm must find one curves only -###################################################### - -set GoodNbCurv 1 - -restore [locate_data_file bug25782_fz19.brep] b1 -restore [locate_data_file bug25782_fz53.brep] b2 - -mksurface s1 b1 -mksurface s2 b2 - -intersect res s1 s2 - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - - copy res res_1 -} - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - xdistcs res_$ic s1 0 100 10 1e-7 - xdistcs res_$ic s2 0 100 10 1e-7 - - incr ic - } -} - -if {[expr {$ic - 1}] == $GoodNbCurv} { - puts "OK: Curve Number is good!" -} else { - puts "Error: Curves Number is bad!" -} - -set log [bopcurves b1 b2] - -regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv -set MaxTol 1.e-7 -if {${Toler} > ${MaxTol}} { - puts "Error: Tolerance is too big!" -} - -if {$NbCurv != $GoodNbCurv} { - puts "Error: Curves Number is bad!" -} - -for {set i 1} {$i <= ${NbCurv}} {incr i} { - bounds c_$i U1 U2 - - if {[dval U2-U1] < 1.0e-9} { - puts "Error: Wrong curve's range!" - } - - xdistcs c_$i s1 U1 U2 10 1e-7 - xdistcs c_$i s2 U1 U2 10 1e-7 -} diff --git a/tests/bugs/moddata_3/bug25782_2 b/tests/bugs/moddata_3/bug25782_2 deleted file mode 100755 index a54a2915f8..0000000000 --- a/tests/bugs/moddata_3/bug25782_2 +++ /dev/null @@ -1,51 +0,0 @@ -puts "========" -puts "OCC25782" -puts "========" -puts "" -###################################################### -# The result of intersection between two cylinders is incorrect -###################################################### - -set GoodNbCurv 2 - -cylinder s1 0 0 0 12 35 47 5 -cylinder s2 3 2 8 12 35 47 4 - -set bug_info [intersect res s1 s2] - -set che [whatis res] -set ind [string first "3d curve" $che] -if {${ind} >= 0} { - #Only variable "res" exists - - copy res res_1 -} - -if {[llength ${bug_info}] != $GoodNbCurv} { - puts "Error: The result of intersection between two cylinders is incorrect" -} - -set Tolerance 1.e-7 -set D_good 0. -set Limit_Tol 1.0e-7 - -set ic 1 -set AllowRepeate 1 -while { $AllowRepeate != 0 } { - set che [whatis res_$ic] - set ind [string first "3d curve" $che] - if {${ind} < 0} { - set AllowRepeate 0 - } else { - if { [regexp {\*\*\nLine} [dump res_$ic]] } { - #puts "OK : Correct intersection" - } else { - puts "Error : Bad intersection" - } - - xdistcs res_$ic s1 0 100 10 1e-7 - xdistcs res_$ic s2 0 100 10 1e-7 - - incr ic - } -} diff --git a/tests/lowalgos/grids.list b/tests/lowalgos/grids.list index c3848ca3b3..5d4e4d5ba4 100644 --- a/tests/lowalgos/grids.list +++ b/tests/lowalgos/grids.list @@ -2,4 +2,5 @@ 002 bnd 003 extcs 004 extcc -005 2dgcc \ No newline at end of file +005 2dgcc +006 intss \ No newline at end of file diff --git a/tests/lowalgos/intss/begin b/tests/lowalgos/intss/begin new file mode 100644 index 0000000000..b9d05984d3 --- /dev/null +++ b/tests/lowalgos/intss/begin @@ -0,0 +1,30 @@ +# Checks whether theCurve has a loop/bend +# Use: CheckLoops curve CosMaxAngle [theNbPoints]} +# theNbPoints sets the interval of discretization; +# theCosMaxAngle sets the maximal rotation angle between two adjacent segments. This value must be equal to the cosine of this angle. + +help CheckLoops {curve CosMaxAngle theNbPoints } +proc CheckLoops {theCurve theCosMaxAngle {theNbPoints 1000.0}} { + upvar #0 $theCurve aCurve + bounds aCurve U1 U2 + + set delta [dval (U2-U1)/$theNbPoints] + cvalue aCurve [dval U1] xp yp zp dx1 dy1 dz1 + + for {set p [dval U1]} {$p <= [dval U2]} {set p [expr $p + $delta]} { + cvalue aCurve $p xp yp zp dx2 dy2 dz2 + + #Check if the angle between the vectors {dx1 dy1 dz1} and {dx2 dy2 dz2} is less than 30deg. + set nv1 [ dval dx1*dx1+dy1*dy1+dz1*dz1 ] + set nv2 [ dval dx2*dx2+dy2*dy2+dz2*dz2 ] + set dp [ dval dx1*dx2+dy2*dy2+dz1*dz2 ] + + if {$dp < [ expr $theCosMaxAngle * sqrt($nv1 * $nv2) ] } { + puts "Error: The curve aCurve is possible to have a bend at parameter $p. Please check carefully" + } + + dset dx1 dx2 + dset dy1 dy2 + dset dz1 dz2 + } +} diff --git a/tests/lowalgos/intss/buc60623_3 b/tests/lowalgos/intss/buc60623_3 new file mode 100644 index 0000000000..b4908340d9 --- /dev/null +++ b/tests/lowalgos/intss/buc60623_3 @@ -0,0 +1,30 @@ +puts "========================" +puts "BUC60623" +puts "========================" + +restore [locate_data_file buc60623a.brep] a +checkshape a +restore [locate_data_file buc60623b.brep] b +checkshape b + +mksurface S1 a +mksurface S2 b + +intersect I1 S1 S2 +regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection I1] full cs2 +if { $cs2 != 0 } { + puts " Faulty : Intersection is not correct" +} else { + puts "Intersection of S1 and S2 is correct" +} + +intersect I2 S2 S1 +regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection I2] full cs2 +if { $cs2 != 0 } { + puts " Faulty : Intersection is not correct" +} else { + puts "Intersection of S2 and S1 is correct" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/buc60815 b/tests/lowalgos/intss/buc60815 new file mode 100644 index 0000000000..993fe67e71 --- /dev/null +++ b/tests/lowalgos/intss/buc60815 @@ -0,0 +1,22 @@ +puts "TODO OCC12345 ALL: Faulty BUC60815: NO EXCEPTION." +puts "==========" +puts "BUC60815" +puts "==========" + +plane p1 1 0 0 +plane p2 0 0 0 1 0 0 +trim p1 p1 -50 50 -50 50 +trim p2 p2 -75 75 -75 75 +intersect r2 p1 p2 +extsurf e1 r2 10 10 10 +extsurf e3 r2 10 10 10 + +if [catch { intersect result e1 e3 } catch_result] { + puts "Faulty BUC60815: NO EXCEPTION." + puts "INTERSECTION BETWEEN TWO SURFACES LYING ON THE SAME PLANE UNDEFINED" +} else { + puts "BUC60815 OK: suitable except" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug106 b/tests/lowalgos/intss/bug106 new file mode 100644 index 0000000000..031266e76d --- /dev/null +++ b/tests/lowalgos/intss/bug106 @@ -0,0 +1,78 @@ + +puts "================" +puts "BUC61032" +puts "OCC106" +puts "================" +puts "" + +restore [locate_data_file OCC106-1.draw] sh1 +#### checkshape sh1 # - not a topological shape +restore [locate_data_file OCC106-2.draw] sh2 +#### checkshape sh2 # - not a topological shape + +trimv s1 sh1 -1000 1000 +trimv s2 sh2 -1000 1000 + +if [catch {intersect res s1 s2} result] { +set mistake 1 +} else { +set mistake 0 +} + +if { $mistake == 0 } { + puts "" + set nom 0 + set j 1 + repeat 10 { + set che [whatis res_$j] + set che1 [whatis res_$j] + set err [lindex $che [expr [llength $che] - 1]] + set err1 [lindex $che1 [expr [llength $che1] - 2]] + + if { $err != "curve" && $err1 != "3d"} { + break + } else { + set nom [expr $nom + 1] + } + incr j} + if { $nom == 0} { + puts "1) Faulty OCC106: Intersection was made WRONGLY" +} else { + puts [format "1) OCC106 OK : Intersection command works properly: %s curves" $nom] + puts "" +} +} else { + puts "1) Faulty OCC106: Intersection was made WRONGLY" +} + +if [catch {intersect rrs sh1 sh2} result] { +set mistake 1 +} else { +set mistake 0 +} + +if { $mistake == 0 } { + puts "" + set nom 0 + set j 1 + repeat 10 { + set che [whatis rrs_$j] + set che1 [whatis rrs_$j] + set err [lindex $che [expr [llength $che] - 1]] + set err1 [lindex $che1 [expr [llength $che1] - 2]] + + if { $err != "curve" && $err1 != "3d"} { + break + } else { + set nom [expr $nom + 1] + } + incr j} + if { $nom == 0} { + puts "2) Faulty OCC106: Intersection was made WRONGLY" +} else { + puts [format "2) OCC106 OK : Intersection command works properly: %s curves" $nom] +} +} else { + puts "2) Faulty OCC106: Intersection was made WRONGLY" +} + diff --git a/tests/lowalgos/intss/bug139 b/tests/lowalgos/intss/bug139 new file mode 100644 index 0000000000..957a3c2cd3 --- /dev/null +++ b/tests/lowalgos/intss/bug139 @@ -0,0 +1,25 @@ +puts "================" +puts "OCC139" +puts "================" +puts "" +####################################### +## The intersection must be closed . So the curve is wrong. +####################################### + +restore [locate_data_file OCC139-1.draw] sh1 +restore [locate_data_file OCC139-2.draw] sh2 + +if { ![catch {intersect result sh1 sh2} catch_result] } { + puts "OCC139 OK : intersection found" + regexp { nb alone Vertices : +([-0-9.+eE]+)} [checksection result] full num + if { $num != 0 } { + puts "Faulty OCC139: Intersection was made WRONGLY. The curve must be closed ." + } else { + puts "OCC139 OK : Intersection command works properly. The curve is closed" + } +} else { + puts "Faulty OCC139 : NO intersection found" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug20524 b/tests/lowalgos/intss/bug20524 new file mode 100644 index 0000000000..ae86c3c346 --- /dev/null +++ b/tests/lowalgos/intss/bug20524 @@ -0,0 +1,22 @@ +puts "========================" +puts "OCC20524" +puts "========================" +puts "" +####################################################################### +# Wrong intersection +####################################################################### + +set BugNumber OCC20524 + +restore [locate_data_file OCC20524-surf1.draw] surf1 +restore [locate_data_file OCC20524-surf2.draw] surf2 + +intersect result surf1 surf2 + +set che [whatis result] +if { ![regexp {3d curve} $che] } { + puts "Faulty ${BugNumber}: command INTERSECT works wrongly" +} else { + puts "${BugNumber} OK : command INTERSECT works properly" +} + diff --git a/tests/lowalgos/intss/bug20766 b/tests/lowalgos/intss/bug20766 new file mode 100644 index 0000000000..fe634b3ad6 --- /dev/null +++ b/tests/lowalgos/intss/bug20766 @@ -0,0 +1,34 @@ +pload QAcommands + +puts "============" +puts "OCC20766" +puts "============" +puts "" +####################################################################### +# Intersection of cone with plane in apex point crashes +####################################################################### + +set BugNumber OCC20766 + +OCC20766 plane 1 0 0 3522.4299999999998 + +set x -3522.4299999999998 +set y 2540 +set z -1461.4300000000001 +set dx 5449.7857099692965 +set dy 0 +set dz 5537.6938973109054 +set PI180 0.017453292519943295 +set semi-angle [expr 0.46689346637921703 / ${PI180}] +set radius 0. + +cone c ${x} ${y} ${z} ${dx} ${dy} ${dz} ${semi-angle} ${radius} + +if [catch { intersect result plane c } ] { + puts "Faulty ${BugNumber} : intersect is wrong" +} else { + puts "OK ${BugNumber}" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug21494 b/tests/lowalgos/intss/bug21494 new file mode 100644 index 0000000000..f91ce163eb --- /dev/null +++ b/tests/lowalgos/intss/bug21494 @@ -0,0 +1,22 @@ +puts "TODO OCC21494 ALL: Error: Intersection between cone and sphere fails" + +puts "========" +puts "OCC21494" +puts "========" +puts "" +############################################ +# Intersection between cone and sphere fails +############################################ + +pcone c 15 0 10 +psphere s 10 +explode c f +explode s f +mksurface sc c_1 +mksurface ss s_1 + +intersect i sc ss + +if { [info exist i_1] == 0 } { + puts "Error: Intersection between cone and sphere fails" +} diff --git a/tests/lowalgos/intss/bug21750 b/tests/lowalgos/intss/bug21750 new file mode 100644 index 0000000000..b0fe0d1673 --- /dev/null +++ b/tests/lowalgos/intss/bug21750 @@ -0,0 +1,26 @@ +puts "============" +puts "OCC21750" +puts "============" +puts "" +################################## +# Intersection of two cylindrical surfaces fails +################################## + +cylinder c1 1031.3339148728076 -113.25868616662650 56.152387686082520 -0.86602540378443815 0.50000000000000089 0.0 -0.50000000000000089 -0.86602540378443815 0.0 76.499999999999986 +cylinder c2 1017.0706583606553 -103.24955863669388 56.152387686082548 0.86602540378443915 -0.49999999999999933 0.0 0.49999999999999933 0.86602540378443915 0.0 76.499999999999986 + +if { [catch {set info [intersect r c1 c2 1e-7]} catch_result] } { + puts "Error: The intersection of two cylindrical surfaces causes an exception" +} + +# Number of solutions check. +# There should be only 2 solution. +if {[llength $info] != 2} { + Error: Incorrect number of solutions. +} + +smallview + +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug22720 b/tests/lowalgos/intss/bug22720 new file mode 100644 index 0000000000..bca0d276f5 --- /dev/null +++ b/tests/lowalgos/intss/bug22720 @@ -0,0 +1,20 @@ +puts "============" +puts "OCC22720" +puts "============" +puts "" +####################################################################### +# Wrong intersection point for the case of intersection between sphere and plane +####################################################################### + +set BugNumber OCC22720 + +restore [locate_data_file OCC22720-f1.brep] f1 +restore [locate_data_file OCC22720-f2.brep] f2 + +mksurface s1 f1 +mksurface s2 f2 + +trim s1t s1 0 2 0 2 +intersect result s1t s2 + +checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug22723 b/tests/lowalgos/intss/bug22723 new file mode 100644 index 0000000000..5fe0cf106f --- /dev/null +++ b/tests/lowalgos/intss/bug22723 @@ -0,0 +1,32 @@ +puts "============" +puts "OCC22723" +puts "============" +puts "" +####################################################################### +# Wrong intersection curve for the case of intersection between cylinder and plane +####################################################################### + +set BugNumber OCC22723 + +restore [locate_data_file bug22723_fz44.brep] b1 +restore [locate_data_file bug22723_fz7.brep] b2 +mksurface s1 b1 +mksurface s2 b2 +intersect result s1 s2 + +regexp {Parameters : ([-0-9.+eE]+) ([-0-9.+eE]+)} [dump result] full a1 a2 +set status 0 + +if { ${a1}>=0 } { + if { ${a2}<6.29 } { + set status 1 + } +} + +if { ${status}==1 } { + puts "OK ${BugNumber}" +} else { + puts "Faulty ${BugNumber}" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug22766 b/tests/lowalgos/intss/bug22766 new file mode 100644 index 0000000000..73118ab088 --- /dev/null +++ b/tests/lowalgos/intss/bug22766 @@ -0,0 +1,15 @@ +puts "============" +puts "CR22766" +puts "============" +puts "" +##################################################################################################################### +# Wrong results done by several algorithms for the case of intersection between a surface of revolution and a plane +##################################################################################################################### + +restore [locate_data_file bug22766_f1] f1 +restore [locate_data_file bug22766_f2] f2 + +mksurface s1 f1 +mksurface s2 f2 + +intersect result s1 s2 diff --git a/tests/lowalgos/intss/bug22851 b/tests/lowalgos/intss/bug22851 new file mode 100644 index 0000000000..a02d0d1894 --- /dev/null +++ b/tests/lowalgos/intss/bug22851 @@ -0,0 +1,29 @@ +puts "============" +puts "OCC22851" +puts "============" +puts "" +####################################################################### +# No intersection curve between two surfaces +####################################################################### + +set BugNumber OCC22851 + +restore [locate_data_file bug22851_fz1.brep] b1 +restore [locate_data_file bug22851_fz8.brep] b2 +mksurface s1 b1 +mksurface s2 b2 +intersect i s1 s2 + +set dump_info [dump i] + +set lst [split ${dump_info}] +set dump_length [llength $lst] + +set find_BSCurve [regexp {BSplineCurve} $dump_info] +set find_Degree_Poles_Knots [regexp {Degree +[-0-9.+eE]+, +[-0-9.+eE]+ +Poles, +[-0-9.+eE]+ +Knots} $dump_info] + +if { $dump_length == 0 && !$find_BSCurve && !$find_Degree_Poles_Knots } { + puts "Faulty ${BugNumber}" +} else { + puts "OK ${BugNumber}" +} \ No newline at end of file diff --git a/tests/lowalgos/intss/bug22923 b/tests/lowalgos/intss/bug22923 new file mode 100644 index 0000000000..024e57118b --- /dev/null +++ b/tests/lowalgos/intss/bug22923 @@ -0,0 +1,28 @@ +puts "============" +puts "OCC22923" +puts "============" +####################################################################### +# The command "intersect" throws an exception +####################################################################### + +set BugNumber OCC22923 + +restore [locate_data_file bug22923_Face-2_7.brep] b1 +restore [locate_data_file bug22923_Face-7_0.brep] b2 + +set exception_status 0 + +mksurface s1 b1 +mksurface s2 b2 + +set msg [ intersect i s1 s2 ] +set index [ lsearch $msg Exception ] + +if {$index > -1} { + set exception_status 1 } + +if { ${exception_status} != 0 } { + puts "Faulty ${BugNumber}" +} else { + puts "OK ${BugNumber}" +} diff --git a/tests/lowalgos/intss/bug23163_1 b/tests/lowalgos/intss/bug23163_1 new file mode 100644 index 0000000000..48405267bc --- /dev/null +++ b/tests/lowalgos/intss/bug23163_1 @@ -0,0 +1,28 @@ +puts "TODO OCC23163 ALL: Error: No resulting circle of radius 5 at the intersection of tori, only b-splines" + +puts "================" +puts "OCC23163" +puts "================" +puts "" +####################################################################### +# Intersection of tori fails to produce results +####################################################################### + +torus t1 20 5 +torus t2 40 0 0 20 5 + +intersect result t1 t2 + +set NbCurv [llength [directory result*]] + +if { $NbCurv > 4 } { + puts "OK: Number of curves is good" +} else { + puts "Error: No resulting circle of radius 5 at the intersection of tori, only b-splines" +} + +smallview +donly result* +fit +display t1 t2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23163_2 b/tests/lowalgos/intss/bug23163_2 new file mode 100644 index 0000000000..a487b7fcf2 --- /dev/null +++ b/tests/lowalgos/intss/bug23163_2 @@ -0,0 +1,28 @@ +puts "TODO OCC23163 ALL: Error: No resulting circle at the intersection of tori, only b-splines" + +puts "================" +puts "OCC23163" +puts "================" +puts "" +####################################################################### +# Intersection of tori fails to produce results +####################################################################### + +restore [locate_data_file bug23163_surface1_draw_b.draw] s1 +restore [locate_data_file bug23163_surface2_draw_b.draw] s2 + +intersect result s1 s2 + +set NbCurv [llength [directory result*]] + +if { $NbCurv > 6 } { + puts "OK: Number of curves is good" +} else { + puts "Error: No resulting circle at the intersection of tori, only b-splines" +} + +smallview +donly result* +fit +display s1 s2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23163_3 b/tests/lowalgos/intss/bug23163_3 new file mode 100644 index 0000000000..3b1a86af58 --- /dev/null +++ b/tests/lowalgos/intss/bug23163_3 @@ -0,0 +1,28 @@ +puts "TODO OCC23163 ALL: Error: No resulting circle at the intersection of tori, only b-splines" + +puts "================" +puts "OCC23163" +puts "================" +puts "" +####################################################################### +# Intersection of tori fails to produce results +####################################################################### + +restore [locate_data_file bug23163_surface1_draw_b.draw] ss1 +restore [locate_data_file bug23163_surface2_draw_b.draw] ss2 + +intersect result ss1 ss2 + +set NbCurv [llength [directory result*]] + +if { $NbCurv > 6 } { + puts "OK: Number of curves is good" +} else { + puts "Error: No resulting circle at the intersection of tori, only b-splines" +} + +smallview +donly result* +fit +display ss1 ss2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23166 b/tests/lowalgos/intss/bug23166 new file mode 100644 index 0000000000..f6e698d204 --- /dev/null +++ b/tests/lowalgos/intss/bug23166 @@ -0,0 +1,32 @@ +puts "================" +puts "OCC23166" +puts "================" +puts "" +####################################################################### +# Intersection of plane and cone produces wrong result +####################################################################### + +restore [locate_data_file bug23166_surface1_draw.draw] s1 +restore [locate_data_file bug23166_surface2_draw.draw] s2 + +intersect result s1 s2 + +set log [dump result_1] +if { [regexp {Parameters} ${log}] } { + puts "Error: untrimmed first hyperbola" +} else { + puts "OK: untrimmed first hyperbola" +} + +set log [dump result_2] +if { [regexp {Parameters} ${log}] } { + puts "Error: untrimmed second hyperbola" +} else { + puts "OK: untrimmed second hyperbola" +} + +smallview +donly result* +fit +display s1 s2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23176 b/tests/lowalgos/intss/bug23176 new file mode 100644 index 0000000000..614eaf8b65 --- /dev/null +++ b/tests/lowalgos/intss/bug23176 @@ -0,0 +1,61 @@ +puts "================" +puts "OCC23176" +puts "================" +puts "" +####################################################################### +# Intersection of cylinder and cone produces open curve +####################################################################### + +restore [locate_data_file bug23176_surface1_draw.draw] s1 +restore [locate_data_file bug23176_surface2_draw.draw] s2 + +intersect result s1 s2 + +set che [whatis result] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "result" exists + renamevar result result_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + set che [whatis result_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds result_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs result_$ic s1 U1 U2 10 2.0e-7 + xdistcs result_$ic s2 U1 U2 10 2.0e-7 + + mkedge ee result_$ic + baddobjects ee + incr ic + } +} + +# Check gaps in result +bfillds +bbuild rw + +checksection rw -r 0 +checkmaxtol rw -min_tol 2.0e-7 + +checknbshapes rw -edge 4 -vertex 4 + +smallview +don result* +fit +display s1 s2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23177_1 b/tests/lowalgos/intss/bug23177_1 new file mode 100644 index 0000000000..17efcb1f79 --- /dev/null +++ b/tests/lowalgos/intss/bug23177_1 @@ -0,0 +1,58 @@ +puts "========" +puts "OCC23177" +puts "========" +puts "" +#################################################################### +# Intersection of plane and torus misses a result and never produces analytical result +#################################################################### + +set GoodNbCurv 2 + +torus s1 100 10 +plane s2 0 0 0 0 1 0 +intersect res s1 s2 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + break; + } else { + if { ![regexp "Circle" [dump res_$ic]] } { + puts "Error: Intersection result must be circle" + } + + bounds res_$ic U1 U2 + + checkreal CurveBoundaries [dval U2-U1] [dval 2*pi] 1.0e-10 0.0 + + xdistcs res_$ic s1 U1 U2 10 1.0e-7 + xdistcs res_$ic s2 U1 U2 10 1.0e-7 + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" +} + + +smallview +don res_* +fit +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug23177_2 b/tests/lowalgos/intss/bug23177_2 new file mode 100644 index 0000000000..12f1991ff8 --- /dev/null +++ b/tests/lowalgos/intss/bug23177_2 @@ -0,0 +1,58 @@ +puts "========" +puts "OCC23177" +puts "========" +puts "" +#################################################################### +# Intersection of plane and torus misses a result and never produces analytical result +#################################################################### + +set GoodNbCurv 2 + +torus s1 100 10 +plane s2 0 0 0 1 0 0 +intersect res s1 s2 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + break; + } else { + if { ![regexp "Circle" [dump res_$ic]] } { + puts "Error: Intersection result must be circle" + } + + bounds res_$ic U1 U2 + + checkreal CurveBoundaries [dval U2-U1] [dval 2*pi] 1.0e-10 0.0 + + xdistcs res_$ic s1 U1 U2 10 1.0e-7 + xdistcs res_$ic s2 U1 U2 10 1.0e-7 + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" +} + + +smallview +don res_* +fit +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug23178 b/tests/lowalgos/intss/bug23178 new file mode 100644 index 0000000000..a16ee989dc --- /dev/null +++ b/tests/lowalgos/intss/bug23178 @@ -0,0 +1,43 @@ +puts "================" +puts "OCC23178" +puts "================" +puts "" +####################################################################### +# Intersection of cylinders fails to produce results +####################################################################### + +set GoodNbCurv 6 + +foreach c [directory result*] { + unset $c +} + +cylinder s1 4.999999999813, 1.35836143386791, 0.20975890778078 -1, 0, 0 0, 0, 1 10 +cylinder s2 9.999999999813, 9.1401960568287, 0.11837300583107 0, -0.75870713028692, 0.651431877061437 0, -0.651431877061437, -0.75870713028692 5 + +intersect result s1 s2 + +foreach c [directory result*] { + bounds $c U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs $c s1 U1 U2 10 2.0e-7 + xdistcs $c s2 U1 U2 10 2.0e-7 +} + +set NbCurv [llength [directory result*]] + +if { $NbCurv == $GoodNbCurv } { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but $NbCurv is found!" +} + +smallview +don result* +fit +disp s1 s2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23218 b/tests/lowalgos/intss/bug23218 new file mode 100644 index 0000000000..f76240a657 --- /dev/null +++ b/tests/lowalgos/intss/bug23218 @@ -0,0 +1,26 @@ +puts "TODO OCC25597 ALL: Error: Reached tolerance" +puts "============" +puts "OCC23218" +puts "============" +puts "" +####################################################################### +# Wrong value of tolerance for the intersection curve. +####################################################################### + +set BugNumber OCC23218 + +puts "Load first shape ..." +restore [locate_data_file bug23218_b1] b1 + +puts "Load second shape ..." +restore [locate_data_file bug23218_b4] b2 + +puts "Start project operation ..." +set result [bopcurves b1 b2] +puts $result +puts "Finish project operation ..." + +set GoodToleranceReached 6.3315853638232248e-007 +regexp {Tolerance Reached=([-0-9.+eE]+)} $result full ToleranceReached + +checkreal "Reached tolerance" ${ToleranceReached} ${GoodToleranceReached} 0 0.001 diff --git a/tests/lowalgos/intss/bug23471 b/tests/lowalgos/intss/bug23471 new file mode 100644 index 0000000000..97eab65ac9 --- /dev/null +++ b/tests/lowalgos/intss/bug23471 @@ -0,0 +1,63 @@ +puts "TODO OCC26190 ALL: Error: Curve Number is bad" +puts "TODO OCC26190 ALL: Error: Length of intersection line is bad!" + +puts "============" +puts "CR23471" +puts "============" +puts "" +####################################################################### +# Intersection algorithm produces overlapping intersection curves +####################################################################### + +# Attention!!!! +# Change these values is strictly forbidden (see bug #26190) +set GoodNbCurv 1 +set GoodLength 79655.615367318111 + +restore [locate_data_file OCC22790-cx.brep] b + +explode b +mksurface s1 b_1 +mksurface s2 b_3 +intersect res s1 s2 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + copy res res_1 +} + +set SumLength 0 + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + set log [length res_$ic] + set exp_string "The length res_$ic is +(\[-0-9.+eE\]+)" + regexp ${exp_string} ${log} full len + set SumLength [expr $SumLength+$len] + + incr ic + } +} + +set NbCurv [expr {$ic - 1}] +if {$NbCurv == $GoodNbCurv} { + puts "OK: Curve Number is good!" +} else { + puts "Error: Curve Number is bad ($NbCurv curve(s) found, but $GoodNbCurv expected)!" +} + +if { abs($SumLength - $GoodLength) < 0.01*$GoodLength } { + puts "OK: Length of intersection line is good!" +} else { + puts "Error: Length of intersection line is bad!" + puts "Expected length is: $GoodLength" + puts "Found length is: $SumLength" +} \ No newline at end of file diff --git a/tests/lowalgos/intss/bug23576 b/tests/lowalgos/intss/bug23576 new file mode 100644 index 0000000000..d77f252723 --- /dev/null +++ b/tests/lowalgos/intss/bug23576 @@ -0,0 +1,33 @@ +puts "============" +puts "OCC23576" +puts "============" +puts "" +####################################################################### +# Intersection algorithm produces trimmed circle with illegal parametric range. +####################################################################### + +restore [locate_data_file bug23576_ff_b1_4_z564.brep] b1 + +explode b1 +bopcurves b1_1 b1_2 +copy c_1 result + +set log [dump result] + +regexp {Parameters : +([-0-9.+eE]+) +([-0-9.+eE]+)} ${log} full rc1 rc2 +puts "rc1=${rc1}" +puts "rc2=${rc2}" +set 2_PI [expr 2. * 2. * asin(1.0)] +puts "2_PI=${2_PI}" +puts "" + +if {${rc1} < 0.} { + puts "Error: Bad value of parametric range rc1" +} else { + puts "Good value of parametric range rc1" +} +if {${rc2} < ${2_PI}} { + puts "Error: Bad value of parametric range rc2" +} else { + puts "Good value of parametric range rc2" +} diff --git a/tests/lowalgos/intss/bug236 b/tests/lowalgos/intss/bug236 new file mode 100644 index 0000000000..9c16476629 --- /dev/null +++ b/tests/lowalgos/intss/bug236 @@ -0,0 +1,40 @@ +puts "TODO OCC12345 ALL: Faulty OCC236" + +puts "================" +puts "OCC236" +puts "================" +puts "" +####################################################### +##Result of intersection of two surfaces of linear extrusion is incorrect. +####################################################### + +restore [locate_data_file OCC236a.rle] su1 +############### checkshape su1 # is not a topological shape +restore [locate_data_file OCC236b.rle] su2 +############### checkshape su2 # is not a topological shape + +intersect result su1 su2 + +set che [directory] +set err [lindex $che [expr [llength $che] - 1]] +if { $err != "result_2"} { + puts "Faulty OCC236" +} else { + puts "OCC236 OK (first checking) : Intersection command works properly" + regexp {nb +alone +Vertices +: +([-0-9.+eE]+)} [checksection result_1] full num + if { $num != 0 } { + puts " Faulty OCC236 (second checking): Result result_1 is UNclosed !!! " + } else { + puts " OCC236 OK (second checking): Result result_1 is closed !!! " + puts "" + } + regexp {nb +alone +Vertices +: +([-0-9.+eE]+)} [checksection result_2] full num + if { $num != 0 } { + puts " Faulty OCC236 (second checking): Result result_2 is UNclosed !!! " + } else { + puts " OCC236 OK (second checking): Result result_2 is closed !!! " + } +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug23643 b/tests/lowalgos/intss/bug23643 new file mode 100644 index 0000000000..18d74e47e8 --- /dev/null +++ b/tests/lowalgos/intss/bug23643 @@ -0,0 +1,29 @@ +puts "========================" +puts "OCC23643" +puts "========================" +puts "" +####################################################################### +# Intersection algorithm produces B-Spline curve in case of coaxial cones +####################################################################### + +restore [locate_data_file bug23643_qf3.brep] b + +explode b +copy b_1 f1 +copy b_2 f2 + +mksurface s1 f1 +mksurface s2 f2 + +trim s1t s1 0 2*pi -18 10 +trim s2t s2 0 2*pi -18 10 + +intersect result s1t s2t + +set log [dump result] + +if {[regexp {Trimmed +curve} ${log}]} { + puts "Intersection algorithm work OK" +} else { + puts "Error: Intersection algorithm work bad" +} diff --git a/tests/lowalgos/intss/bug23644 b/tests/lowalgos/intss/bug23644 new file mode 100644 index 0000000000..b4fd0ca772 --- /dev/null +++ b/tests/lowalgos/intss/bug23644 @@ -0,0 +1,20 @@ +puts "========" +puts "CR23644" +puts "========" + +########################################## +## Intersection between coaxial cones produces exception +########################################## + +pcone cn1 10 0 20 +pcone cn2 20 0 20 +explode cn1 f +explode cn2 f +copy cn1_1 f1 +copy cn2_1 f2 + +if [catch {bopcurves f1 f2} BOPLog] { + if { [regexp "Tolerance Reached=0\n has no 3d curve" ${BOPLog}] != 1 } { + puts "CR23644: Error" + } +} diff --git a/tests/lowalgos/intss/bug23699 b/tests/lowalgos/intss/bug23699 new file mode 100644 index 0000000000..873dff1e9e --- /dev/null +++ b/tests/lowalgos/intss/bug23699 @@ -0,0 +1,18 @@ +puts "=========" +puts "CR23699" +puts "=========" +puts "" +############################### +## Exception reaised during intersection between two surfaces +############################### + +restore [locate_data_file bug23699_Compound_sigsegv.brep] b1 + +explode b1 f + +mksurface s1 b1_1 +mksurface s2 b1_2 + +intersect result s1 s2 + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug237 b/tests/lowalgos/intss/bug237 new file mode 100644 index 0000000000..cdfb9c87d7 --- /dev/null +++ b/tests/lowalgos/intss/bug237 @@ -0,0 +1,27 @@ +puts "================" +puts "OCC237" +puts "================" +puts "" +####################################################### +## Hang-ups during the intersection of attached surfaces +####################################################### + +restore [locate_data_file OCC236b.rle] su1 +############### checkshape su1 # is not a topological shape +restore [locate_data_file OCC237b.rle] su2 +############### checkshape su2 # is not a topological shape + +if [catch {intersect result su1 su2 }] { + set mistake 1 +} else { + set mistake 0 +} + +if { $mistake != 0} { + puts "Faulty OCC237: Intersection was made WRONGLY" +} else { + puts "OCC237 OK : Intersection command works properly" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug23732 b/tests/lowalgos/intss/bug23732 new file mode 100644 index 0000000000..91159d7052 --- /dev/null +++ b/tests/lowalgos/intss/bug23732 @@ -0,0 +1,17 @@ +puts "=========" +puts "CR23722" +puts "=========" +puts "" +############################### +## Exception reaised during intersection between two surfaces +############################### + +restore [locate_data_file bug23732_fx1.brep] b1 +restore [locate_data_file bug23732_fx2.brep] b2 + +mksurface s1 b1 +mksurface s2 b2 + +intersect result s1 s2 + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23948_1 b/tests/lowalgos/intss/bug23948_1 new file mode 100644 index 0000000000..e4bf6e9001 --- /dev/null +++ b/tests/lowalgos/intss/bug23948_1 @@ -0,0 +1,45 @@ +puts "=========" +puts "OCC23948" +puts "=========" +puts "" +########################################################### +# Wrong intersection between a surface of revolution and a plane. +########################################################### + +set MaxTol 1.0e-6 +set NbCurv_OK 2 + +restore [locate_data_file bug22766_f1] f1 +restore [locate_data_file bug22766_f2] f2 + +set log [bopcurves f1 f2 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${NbCurv} != ${NbCurv_OK}} { + puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found." +} + +checkreal TolReached ${Toler} ${MaxTol} 0.0 0.1 + +bclearobjects +bcleartools + +for { set i 1 } { $i <= $NbCurv } { incr i } { + mkedge ee c_$i + baddobjects ee +} + +if { $NbCurv > 1 } { + bfillds + bbuild rs + checksection rs -r 2 + checkmaxtol rs -ref $MaxTol + checkprops rs -l 111.803 +} + +smallview +don c_* +fit +disp f1 f2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23948_2 b/tests/lowalgos/intss/bug23948_2 new file mode 100644 index 0000000000..26a2a4419f --- /dev/null +++ b/tests/lowalgos/intss/bug23948_2 @@ -0,0 +1,36 @@ +puts "=========" +puts "OCC23948" +puts "=========" +puts "" +########################################################### +# Wrong intersection between a surface of revolution and a plane. +########################################################### + +foreach a [directory c_*] {unset $a} + +restore [locate_data_file bug22766_f1] f1 +restore [locate_data_file bug22766_f2] f2 + +mksurface s1 f1 +mksurface s2 f2 + +set log [bopcurves f1 f2] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +for { set i 1 } { $i <= $NbCurv } { incr i } { + bounds c_$i U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 0 1 10 2.0e-7 + xdistcs c_$i s2 0 1 10 2.0e-7 +} + +smallview +don c_* +fit +disp s1 s2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug23972 b/tests/lowalgos/intss/bug23972 new file mode 100644 index 0000000000..b9d919bc37 --- /dev/null +++ b/tests/lowalgos/intss/bug23972 @@ -0,0 +1,52 @@ +puts "==========" +puts "OCC23972: Excep-tion thrown when intersecting two cones" +puts "==========" +puts "" + +pload QAcommands + +set GoodNbCurv 2 + +OCC23972 s1 s2 + +intersect res s1 s2 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds res_$ic U1 U2 + + # Hyperbola is expected as intersection result. + # So, all bounds are adjusted to allow correct computation. + if { [dval U1] < -20.0 } { dset U1 -20.0 } + if { [dval U2] > 20.0 } { dset U2 20.0 } + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 10 3.0e-7 + xdistcs res_$ic s2 U1 U2 10 3.0e-7 + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Number of curves is good!" +} else { + puts "Error: Number of curves is bad!" +} \ No newline at end of file diff --git a/tests/lowalgos/intss/bug23981 b/tests/lowalgos/intss/bug23981 new file mode 100644 index 0000000000..2c6925494d --- /dev/null +++ b/tests/lowalgos/intss/bug23981 @@ -0,0 +1,22 @@ +puts "=========" +puts "CR23981" +puts "=========" +puts "" +############################### +## Wrong section curves +############################### + +restore [locate_data_file bug23981_s1.draw] s1 +restore [locate_data_file bug23981_s2.draw] s2 + +intersect i s1 s2 + +puts "First test" +xdistcs i_1 s1 0 1 100 1e-7 + +puts "Second test" +xdistcs i_2 s1 0 1 100 1e-7 + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug24142 b/tests/lowalgos/intss/bug24142 new file mode 100644 index 0000000000..d6b19854be --- /dev/null +++ b/tests/lowalgos/intss/bug24142 @@ -0,0 +1,24 @@ +puts "================" +puts "OCC24142" +puts "================" +puts "" +################################################################# +## Wrong section curve +################################################################# + +restore [locate_data_file OCC152.brep] sh +explode sh f + +mksurface s1 sh_3 +mksurface s2 sh_5 + +trim st1 s1 0 6.28318530717959 0 74.9999999999999 +trim st2 s2 0 6.28318530717959 -74.0551172696384 125.944882730362 + +intersect cur st1 st2 + +if { [regexp -nocase "curve" [whatis cur]] } { + puts "Error: intersection curve is built while it should not" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug24299 b/tests/lowalgos/intss/bug24299 new file mode 100644 index 0000000000..ec6ce1b5d9 --- /dev/null +++ b/tests/lowalgos/intss/bug24299 @@ -0,0 +1,22 @@ +puts "=========" +puts "CR24299" +puts "=========" +puts "" +############################### +## Wrong section curve +############################### + +restore [locate_data_file pro19653a.brep] b1 +restore [locate_data_file pro19653b.brep] b2 + +explode b1 f +explode b2 f +mksurface s1 b1_1 +mksurface s2 b2_1 +intersect i s1 s2 + +xdistcs i_2 s1 0 1 10 1e-5 + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug24313 b/tests/lowalgos/intss/bug24313 new file mode 100644 index 0000000000..5a279888cc --- /dev/null +++ b/tests/lowalgos/intss/bug24313 @@ -0,0 +1,14 @@ +puts "============" +puts "OCC24313" +puts "============" +puts "" +####################################################################### +# BRepAlgoAPI_Section and IntTools_FaceFace aren't written to handle Geom_SurfaceOfLinearExtrusion +####################################################################### + +circle c 0 0 0 0 0 1 1 0 0 100 +extsurf s1 c 0 0 1 +plane s2 0 0 0 1 0 0 0 1 0 +mkface b1 s1 +mkface b2 s2 +bopcurves b1 b2 diff --git a/tests/lowalgos/intss/bug24418_1 b/tests/lowalgos/intss/bug24418_1 new file mode 100644 index 0000000000..6c058615df --- /dev/null +++ b/tests/lowalgos/intss/bug24418_1 @@ -0,0 +1,25 @@ +puts "TODO OCC24418 ALL: Error in ii_2: T=" + +puts "========" +puts "OCC24418" +puts "========" +puts "" +############################################################ +# Wrong section curves when intersecting analytical surfaces +############################################################ + +restore [locate_data_file OCC20964_revsolid.brep] b1 +restore [locate_data_file OCC20964_sphere.brep] b2 + +explode b1 f; copy b1_7 b1 +explode b2 f; copy b2_1 b2 +mksurface s1 b1 +mksurface s2 b2 +trimv s1t s1 0 230.14184397163115 + +intersect ii s1t s2 + +bounds ii_2 u1 u2 + +xdistcs ii_2 s1 u1 u2 10 2.0e-7 +xdistcs ii_2 s2 u1 u2 10 2.0e-7 diff --git a/tests/lowalgos/intss/bug24418_2 b/tests/lowalgos/intss/bug24418_2 new file mode 100644 index 0000000000..c3c8001356 --- /dev/null +++ b/tests/lowalgos/intss/bug24418_2 @@ -0,0 +1,26 @@ +puts "TODO OCC24418 ALL: Error in ii_1: T=" + +puts "========" +puts "OCC24418" +puts "========" +puts "" +############################################################ +# Wrong section curves when intersecting analytical surfaces +############################################################ + +ptorus b1 25 24 90 +plane p 20 20 10 0 0 1 +pcone b2 p 10 8 40 +explode b1 f; copy b1_1 b1 +explode b2 f; copy b2_1 b2 +mksurface s1 b1 +mksurface s2 b2 +trimu s1t s1 0 1.5707963267948966 +trimv s2t s2 0 40.049968789001575 + +intersect ii s1t s2t + +bounds ii_1 u1 u2 + +xdistcs ii_1 s1 u1 u2 10 2.0e-7 +xdistcs ii_1 s2 u1 u2 10 2.0e-7 diff --git a/tests/lowalgos/intss/bug24427_2 b/tests/lowalgos/intss/bug24427_2 new file mode 100644 index 0000000000..7e6d03da01 --- /dev/null +++ b/tests/lowalgos/intss/bug24427_2 @@ -0,0 +1,31 @@ +puts "=========" +puts "CR24427" +puts "=========" +puts "" +############################### +## Wrong section curves +############################### + +restore [locate_data_file bug24427_b1.brep] b1 +restore [locate_data_file bug24427_b2.brep] b2 + +mksurface s1 b1 +mksurface s2 b2 + +trim s1t s1 0 3.1415926535897931 3.3684854563490672 3.9269908169872507 +trim s2t s2 0 3.1415926535897931 -1.0598124096115453e-015 0.013271150216666670 + +intersect i s1t s2t +don s1t s2t i + +puts "First test" +xdistcs i s1 0 1 10 1e-7 + +puts "Second test" +xdistcs i s2 0 1 10 1e-7 + +donly i s1t s2t + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug24429 b/tests/lowalgos/intss/bug24429 new file mode 100644 index 0000000000..8386a6a444 --- /dev/null +++ b/tests/lowalgos/intss/bug24429 @@ -0,0 +1,59 @@ +puts "========" +puts "OCC24429: Cylinder-torus intersection throws an ex-ception and produces no result" +puts "========" +puts "" + +puts "TODO OCC24429 ALL: Error: 0 vertices are expected but 2 are found." + +set GoodNbCurves 8 + +restore [locate_data_file bug24429_s1.draw] s1 +restore [locate_data_file bug24429_s2.draw] s2 + +intersect res s1 s2 + +if { [info exists res] } { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + if { ![info exists res_$ic] } { + set AllowRepeat 0 + } else { + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-6 + xdistcs res_$ic s2 U1 U2 100 2.0e-6 + + mkedge ee res_$ic + baddobjects ee + + incr ic + } +} + +# Check of gaps between intersection curves +bfillds +bbuild rs + +checknbshapes rs -edge $GoodNbCurves +checksection rs -r 0 + +smallview +don res_* + +fit +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug24472 b/tests/lowalgos/intss/bug24472 new file mode 100644 index 0000000000..83b61430fa --- /dev/null +++ b/tests/lowalgos/intss/bug24472 @@ -0,0 +1,79 @@ +puts "=========" +puts "CR24472" +puts "=========" +puts "" +############################### +## Wrong section curves +############################### + +puts "TODO OCC29501 ALL: Error in ii12_22" + +set MaxToler 1.5e-4 + +restore [locate_data_file bug24472_Pipe_1.brep] b1 + +explode b1 f +copy b1_2 f1 +copy b1_3 f2 +copy b1_6 f3 +mksurface s1 f1 +mksurface s2 f2 +mksurface s3 f3 + +puts "" +puts "First test" +# 1.1 geometry +intersect ii12 s1 s2 + +foreach c [directory ii12*] { + bounds $c U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + # cos(~75.5deg) + CheckLoops $c 0.25 + + xdistcs $c s1 U1 U2 10 $MaxToler + xdistcs $c s2 U1 U2 10 $MaxToler +} + +puts "" +puts "Second test" +# 1.2 topology +bsection r12 f1 f2 +bopcheck r12 +# OK + +regexp {Tolerance MAX=([-0-9.+eE]+)} [tolerance r12] full toler +if { $toler > $MaxToler } { puts "Error: Tolerance of the section r12 is too large" } + +puts "" +puts "Third test" +# 2.1 geometry +intersect ii13 s1 s3 + +foreach c [directory ii13*] { + bounds $c U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + # cos(~75.5deg) + CheckLoops $c 0.25 + + xdistcs $c s1 U1 U2 10 $MaxToler + xdistcs $c s2 U1 U2 10 $MaxToler +} + +puts "" +puts "Fourth test" +# 2.2 topology +bsection r13 f1 f3 +bopcheck r13 +# OK + +regexp {Tolerance MAX=([-0-9.+eE]+)} [tolerance r13] full toler +if { $toler > $MaxToler } { puts "Error: Tolerance of the section r13 is too large" } diff --git a/tests/lowalgos/intss/bug24505 b/tests/lowalgos/intss/bug24505 new file mode 100644 index 0000000000..83d686bc1a --- /dev/null +++ b/tests/lowalgos/intss/bug24505 @@ -0,0 +1,20 @@ +puts "===========" +puts "OCC24505" +puts "===========" +puts "" +############################################################## +# Wrong section curves between Cone and Cylinder with collinear axes +############################################################## + +restore [locate_data_file bug24505_f1.brep] f1 +restore [locate_data_file bug24505_f2.brep] f2 + +bopcurves f1 f2 + +set info [dump c_1] + +if { [regexp "Circle" $info] != 1 } { + puts "Error : Wrong section curves" +} else { + puts "OK : Good section curves" +} diff --git a/tests/lowalgos/intss/bug24585_1 b/tests/lowalgos/intss/bug24585_1 new file mode 100644 index 0000000000..9c8598473c --- /dev/null +++ b/tests/lowalgos/intss/bug24585_1 @@ -0,0 +1,67 @@ +puts "=========" +puts "OCC24585" +puts "=========" +puts "" +########################################################### +# Wrong pcurve of the section curve +########################################################### + +set NbCurv_OK 1 + +restore [locate_data_file bug24585_b1.brep] b1 +restore [locate_data_file bug24585_b2.brep] b2 + +mksurface s1 b1 +bounds s1 U1f_exp U1l_exp V1f_exp V1l_exp + +set log [bopcurves b1 b2 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${NbCurv} != ${NbCurv_OK}} { + puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found." +} + +if { ${Toler} > 5.e-5} { + puts "Error: bad tolerance of result" +} + +bounds c2d1_1 U1 U2 +2dcvalue c2d1_1 U1 U_begin V_begin +2dcvalue c2d1_1 U2 U_end V_end + +#Theoretically, c2d1_1 must cover U-diapason of surface s1 fully. + +set delta_f [dval U1f_exp-U_begin] + +#ATTENTION!!! U_begin must be strictly equal U1f_exp (without any tolerance) +if {${delta_f} != 0} { + puts "Error: Bad value. U_begin = [dval U_begin], Ufirst = [dval U1f_exp]." +} else { + puts "OK: Good value. U_begin matches with Ufirst of surface." +} + +puts "" + +set delta_l [dval U1l_exp-U_end] + +#ATTENTION!!! U_end must be strictly equal U1l_exp (without any tolerance) +if {${delta_l} != 0} { + puts "Error: Bad value. U_end = [dval U_end], Ulast = [dval U1l_exp]." +} else { + puts "OK: Good value. U_end matches with Ulast of surface." +} + +puts "" +puts "Check if tangents in first and last point of line have the same directions" + +#See bug#26752 +cvalue c_1 U1 xx yy zz dx1 dy1 dz1 +cvalue c_1 U2 xx yy zz dx2 dy2 dz2 + +set DP [dval dx1*dx2+dy1*dy2+dz1*dz2] +if {${DP} < 0} { + puts "Error: Tangents are reversed. Bug 26752 is reproduced." +} else { + puts "OK: Tangents are not reversed." +} diff --git a/tests/lowalgos/intss/bug24612 b/tests/lowalgos/intss/bug24612 new file mode 100644 index 0000000000..6a3357b49e --- /dev/null +++ b/tests/lowalgos/intss/bug24612 @@ -0,0 +1,82 @@ +puts "=========" +puts "OCC24612" +puts "=========" +puts "" +########################################################### +# Wrong pcurve of the section curve +########################################################### + +set MaxTol 7.0e-5 +set NbCurv_OK 1 +restore [locate_data_file bug24612_b1.brep] b1 +restore [locate_data_file bug24612_b2.brep] b2 + +mksurface s1 b1 +bounds s1 U1f_exp U1l_exp V1f_exp V1l_exp + +dval U1f_exp +dval U1l_exp +dval V1f_exp +dval V1l_exp + +set log [bopcurves b1 b2 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${NbCurv} != ${NbCurv_OK}} { + puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found." +} + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +#Theoretically, c2d1_1 must cover V-diapason of surface s1 fully. + +set log [dump c2d1_1] + +regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles +puts "Degree=${Degree}" +puts "Poles=${Poles}" +puts "KnotsPoles=${KnotsPoles}" +puts "" + +set Pole 1 +set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" +regexp ${exp_string} ${log} full U_begin V_begin + +puts "Pole=${Pole}" +puts "U_begin=${U_begin}" +puts "V_begin=${V_begin}" +dset V_begin ${V_begin} +puts "" + +set Pole ${Poles} +set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" +regexp ${exp_string} ${log} full U_end V_end + +puts "Pole=${Pole}" +puts "U_end=${U_end}" +puts "V_end=${V_end}" +dset V_end ${V_end} +puts "" + +set delta_f [dval V1l_exp-V_begin] + +#ATTENTION!!! V_begin must be strictly equal V1l_exp (without any tolerance) +if {${delta_f} != 0} { + puts "Error: Bad value. V_begin = [dval V_begin], Vlast = [dval V1l_exp]." +} else { + puts "OK: Good value. V_begin matches with Vlast of surface." +} + +puts "" + +set delta_l [dval V1f_exp-V_end] + +#ATTENTION!!! V_end must be strictly equal V1f_exp (without any tolerance) +if {${delta_l} != 0} { + puts "Error: Bad value. V_end = [dval V_end], Vfirst = [dval V1f_exp]." +} else { + puts "OK: Good value. V_end matches with Vfirst of surface." +} diff --git a/tests/lowalgos/intss/bug24643 b/tests/lowalgos/intss/bug24643 new file mode 100644 index 0000000000..0fedc978b0 --- /dev/null +++ b/tests/lowalgos/intss/bug24643 @@ -0,0 +1,25 @@ +puts "================" +puts "OCC24643" +puts "================" +puts "" +####################################################################### +# No section curve between plane and cone +####################################################################### + +restore [locate_data_file bug24643_b1.brep] b1 +restore [locate_data_file bug24643_b2.brep] b2 +bopcurves b1 b2 +checklength c_1 -l 107.39085794960783 + +set log [dump c_1] +if {[regexp {Trimmed +curve} ${log}]} { + puts "OK: section curve is good" +} else { + puts "Error: section curve is bad" +} + +smallview +donly c_1 b1 b2 +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug24648 b/tests/lowalgos/intss/bug24648 new file mode 100644 index 0000000000..8f6b7dcbbd --- /dev/null +++ b/tests/lowalgos/intss/bug24648 @@ -0,0 +1,36 @@ +puts "===========" +puts "OCC24648" +puts "===========" +puts "" +############################################################## +# Different types of intersection curves between Cone and Torus with a different order of arguments +############################################################## + +cone s1 60 0 +torus s2 30 20 + +intersect i1 s1 s2 +set info1 [dump i1_1] + +intersect i2 s2 s1 +set info2 [dump i2_1] + +set type_of_curve "Circle" + +if { [regexp ${type_of_curve} ${info1}] != 1 } { + puts "Error : Wrong type of intersection curve #1" +} else { + puts "OK : Good type of intersection curve #1" +} + +if { [regexp ${type_of_curve} ${info2}] != 1 } { + puts "Error : Wrong type of intersection curve #2" +} else { + puts "OK : Good type of intersection curve #2" +} + +smallview +donly i1_1 i2_1 +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug24650 b/tests/lowalgos/intss/bug24650 new file mode 100644 index 0000000000..4b33f5f33c --- /dev/null +++ b/tests/lowalgos/intss/bug24650 @@ -0,0 +1,64 @@ +puts "===========" +puts "OCC24650" +puts "===========" +puts "" +############################################################## +# Wrong intersection curves obtained for a surface of revolution and a plane. +############################################################## + +set GoodNbCurv 1 + +restore [locate_data_file bug24650_fz1365.brep] b1 +restore [locate_data_file bug24650_fz2495.brep] b2 + +mksurface sb1 b1 +mksurface sb2 b2 +trimu sb1tu sb1 0.242 0.291 + +clear + +set N [intersect res sb1tu sb2] + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + display res_$ic + + bounds res_$ic U1 U2 + + dval U1 + dval U2 + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic sb1tu U1 U2 10 1e-7 + xdistcs res_$ic sb2 U1 U2 10 1e-7 + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Curve Number is good!" +} else { + puts "Error: Curve Number is bad!" +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug24676 b/tests/lowalgos/intss/bug24676 new file mode 100644 index 0000000000..4f5630c07a --- /dev/null +++ b/tests/lowalgos/intss/bug24676 @@ -0,0 +1,13 @@ +puts "========" +puts "0024676: Wrong result done by intersection algorithm" +puts "========" +puts "" + +restore [locate_data_file bug24676_b2.brep] b2 + +for {set i 1} { $i <= 6} {incr i} { + restore [locate_data_file bug24676_b1_${i}.brep] b1_$i + if {![regexp "no 3d curves\n has no 3d points" [ bopcurves b1_$i b2 ]]} { + puts "Error: Non-empty intersection result between b1_$i and b2, while empty is expected" + } +} diff --git a/tests/lowalgos/intss/bug24772 b/tests/lowalgos/intss/bug24772 new file mode 100644 index 0000000000..fa20fad11e --- /dev/null +++ b/tests/lowalgos/intss/bug24772 @@ -0,0 +1,45 @@ +puts "========" +puts "OCC24772" +puts "========" +puts "" +################################################################ +# Intersection of cylinder and cone produces incorrect results +################################################################ + +restore [locate_data_file bug24772_s1.draw] s1 +restore [locate_data_file bug24772_s2.draw] s2 + +smallview +X+Y +fit +zoom 6 + +set bug_info [intersect r s1 s2] + +if {[llength $bug_info] != 4} { +# puts "ERROR: OCC24722 is reproduced." +} else { + # snapshot r_1 + clear + display s1 + display s2 + display r_1 + xwd $imagedir/${casename}_r_1.png + # snapshot r_2 + clear + display s1 + display s2 + display r_2 + xwd $imagedir/${casename}_r_2.png + # snapshot r_3 + clear + display s1 + display s2 + display r_3 + xwd $imagedir/${casename}_r_3.png + # snapshot r_4 + clear + display s1 + display s2 + display r_4 + xwd $imagedir/${casename}_r_4.png +} diff --git a/tests/lowalgos/intss/bug24915 b/tests/lowalgos/intss/bug24915 new file mode 100644 index 0000000000..2c25dd4e91 --- /dev/null +++ b/tests/lowalgos/intss/bug24915 @@ -0,0 +1,50 @@ +puts "TODO OCC26927 ALL: Error: Tolerance is too big!" + +puts "=========" +puts "CR24915" +puts "=========" +puts "" +############################### +## Wrong intersection curves between two cylinders +############################### + +puts "##############################" +puts "#!!!Searh \"Attention\" keyword on this web-page for additinal checking!!!" +puts "##############################" + +restore [locate_data_file bug24915_ft2.brep] b1 +restore [locate_data_file bug24915_ft3.brep] b2 + +# 1. topology +bclearobjects +bcleartools +baddobjects b1 b2 +bfillds +bbuild r +checkshape r + +# 2. geometry +set MaxTol 1.0e-7 +set GoodNBCurv 3 + +set log [bopcurves b1 b2 -2d] + +if { ! [regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv] } { + puts "Error: Cannot find tolerance value in output of bopcurve command" +} + +if { $NbCurv != $GoodNBCurv } { + puts "Error: Number of curves is wrong!" +} + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +smallview + +for {set i 1} {$i <= $GoodNBCurv} {incr i} { + donly b2 c_$i + fit + checkview -screenshot -2d -path ${imagedir}/${test_image}_$i.png +} diff --git a/tests/lowalgos/intss/bug25095 b/tests/lowalgos/intss/bug25095 new file mode 100644 index 0000000000..e50564832c --- /dev/null +++ b/tests/lowalgos/intss/bug25095 @@ -0,0 +1,27 @@ +puts "============" +puts "OCC25095" +puts "============" +puts "" +####################################################################### +# Wrong result obtained by projection algorithm +####################################################################### + +restore [locate_data_file bug25095_fz639.brep] b1 +restore [locate_data_file bug25095_fz5075.brep] b2 + +mksurface s1 b1 +bopcurves b1 b2 + +trim ct1 c_1 0.79929107016766299 7.0824763773472492 +trim ct2 c_1 0.79929107016766343 7.0824763773472501 + +project cp1 ct1 s1 +project cp2 ct2 s1 +checklength cp1 -l 7.2783309522 +checklength cp2 -l 7.2783309522 + +#v2d2 +view 1 -2D- 728 20 400 400 + +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25193 b/tests/lowalgos/intss/bug25193 new file mode 100644 index 0000000000..e401b254b6 --- /dev/null +++ b/tests/lowalgos/intss/bug25193 @@ -0,0 +1,105 @@ +puts "TODO OCC27116 ALL: Error: Summary length =" +puts "TODO OCC27116 ALL: Error: 1 intersection curve\\(s\\) expected but" + +puts "================" +puts "OCC25193" +puts "================" +puts "" +####################################################################### +# Bad Intersection curveobtained by Surface/Surface Intersection Algorithm. +####################################################################### + +puts "" + +pload QAcommands + +set GoodNbCurv 1 +set GoodTol 3.6570868343352305e-005 +set NbControlPts 10 + +restore [locate_data_file bug25193_s1t.draw] s1 +restore [locate_data_file bug25193_s4t.draw] s4 + +#Ethalon of intersection curve +bounds s1 us1 us2 vs1 vs2 +uiso cc s1 us1 + +regexp {is ([-0-9.+eE]+)} [length cc 1.0e-4] full ExpLength +puts "Expected length = $ExpLength" + +intersect res s1 s4 $GoodTol +set che [whatis res] +set ind [string first "3d curve" $che] + +set AllowRepeate 1 +set ic 1 + +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +set SumLength 0 + +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + break + } + + for {set jc 1} {$jc < $ic} {incr jc} { + mkedge e1 res_$ic + mkedge e2 res_$jc + set coe [checkoverlapedges e1 e2] + + puts "res_$ic <-> res_$jc: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: Overlapped intersection curves" + } + } + + regexp {is ([-0-9.+eE]+)} [length res_$ic 1.0e-4] full ll + + set SumLength [ expr $SumLength+$ll ] + + bounds res_$ic U1 U2 + + set step [ dval (U2-U1)/$NbControlPts ] + + if { $step < 1.0e-9*$NbControlPts } { + puts "Error: Wrong curve's range!" + } + + set DPPrev 0 + for {set par [dval U1]} {$par <= [dval U2]} {set par [expr $par+$step]} { + cvalue res_$ic $par xx yy zz dx1 dy1 dz1 + regexp " parameter 1 = +(\[-0-9*\.+eE\]+)" [proj cc xx yy zz] full cpar + cvalue cc $cpar xx yy zz dx2 dy2 dz2 + + set DP [dval dx1*dx2+dy1*dy2+dz1*dz2] + + if {$DPPrev*$DP < 0.0} { + puts "Error: Curve res_$ic changes its direction" + } + + set DPPrev $DP + } + + incr ic +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Good number of intersection curve(s) obtained by Surface/Surface Intersection Algorithm" +} else { + puts "Error: $GoodNbCurv intersection curve(s) expected but [expr {$ic - 1}] found" +} + +checkreal "Summary length " ${SumLength} $ExpLength 0.0 1.0e-6 + +smallview +donly res_* s1 s4 +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25224 b/tests/lowalgos/intss/bug25224 new file mode 100644 index 0000000000..6937dd22da --- /dev/null +++ b/tests/lowalgos/intss/bug25224 @@ -0,0 +1,37 @@ +puts "================" +puts "OCC25224" +puts "================" +puts "" +####################################################################### +# The section curve between two cylindrical faces is incomplete +####################################################################### + +restore [locate_data_file bug25224_Input_5.brep] b1 +restore [locate_data_file bug25224_Input_21.brep] b2 + +# 1. bopcurves +explode b1 f +explode b2 f + +set log [bopcurves b1_1 b2_1] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv +set MaxTol 1.e-7 +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} +checklength c_1 -l 0.52377379499528021 + +# 2. BOP +bclearobjects +bcleartools +baddobjects b1 +baddtools b2 +bfillds +bbuild result + +checkprops result -s 21.4983 +checkshape result + +checknbshapes result -vertex 10 -edge 19 -wire 13 -face 13 -shell 3 -solid 3 -compsolid 0 -compound 1 -shape 62 +checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25248 b/tests/lowalgos/intss/bug25248 new file mode 100644 index 0000000000..1d924cfbc6 --- /dev/null +++ b/tests/lowalgos/intss/bug25248 @@ -0,0 +1,12 @@ +puts "=========" +puts "CR25248" +puts "=========" +puts "" +############################### +## Curve-Surface intersection algorithm raises exception +############################### + +restore [locate_data_file bug25248_c.draw] c +restore [locate_data_file bug25111_s2.draw] s + +intersect i c s diff --git a/tests/lowalgos/intss/bug25292_11 b/tests/lowalgos/intss/bug25292_11 new file mode 100644 index 0000000000..de9171d948 --- /dev/null +++ b/tests/lowalgos/intss/bug25292_11 @@ -0,0 +1,68 @@ +puts "================" +puts "OCC25292" +puts "================" +puts "" +####################################################################### +# Face/Face intersection algorithm gives different results for different order of the arguments +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25292_Input_0.brep] b1 +restore [locate_data_file bug25292_Input_1.brep] b2 + +explode b1 f +copy b1_2 f1 +explode b2 f +copy b2_2 f2 + +############################# +set log [bopcurves f1 f2 -2d] +############################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +#This value must be equal to the analogical value in bug25292_11 and bug25292_12 of "bugs modalg_5" testgrid. +set MaxTol 2.0e-7 + +#This value must be equal to the analogical value in bug25292_11, bug25292_12, bug25292_15 and bug25292_16 of "bugs modalg_5" testgrid. +set GoodNbCurv 4 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +#------------- + +puts "" + +mksurface s1 f1 +mksurface s2 f2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + puts "U2=[dval U1]" + puts "U2=[dval U2]" + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 U1 U2 10 ${Toler} + xdistcs c_$i s2 U1 U2 10 ${Toler} +} + +v2d +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25292_12 b/tests/lowalgos/intss/bug25292_12 new file mode 100644 index 0000000000..61e028aa8f --- /dev/null +++ b/tests/lowalgos/intss/bug25292_12 @@ -0,0 +1,68 @@ +puts "================" +puts "OCC25292" +puts "================" +puts "" +####################################################################### +# Face/Face intersection algorithm gives different results for different order of the arguments +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25292_Input_0.brep] b1 +restore [locate_data_file bug25292_Input_1.brep] b2 + +explode b1 f +copy b1_2 f1 +explode b2 f +copy b2_2 f2 + +############################# +set log [bopcurves f2 f1 -2d] +############################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +#This value must be equal to the analogical value in bug25292_11 and bug25292_12 of "bugs modalg_5" testgrid. +set MaxTol 2.0e-7 + +#This value must be equal to the analogical value in bug25292_11, bug25292_12, bug25292_15 and bug25292_16 of "bugs modalg_5" testgrid. +set GoodNbCurv 4 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +#------------- + +puts "" + +mksurface s1 f1 +mksurface s2 f2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + puts "U2=[dval U1]" + puts "U2=[dval U2]" + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 U1 U2 10 ${Toler} + xdistcs c_$i s2 U1 U2 10 ${Toler} +} + +v2d +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25292_21 b/tests/lowalgos/intss/bug25292_21 new file mode 100644 index 0000000000..516f96dac4 --- /dev/null +++ b/tests/lowalgos/intss/bug25292_21 @@ -0,0 +1,68 @@ +puts "================" +puts "OCC25292" +puts "================" +puts "" +####################################################################### +# Face/Face intersection algorithm gives different results for different order of the arguments +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25292_Input_3.brep] b1 +restore [locate_data_file bug25292_Input_11.brep] b2 + +explode b1 f +copy b1_1 f1 +explode b2 f +copy b2_1 f2 + +######################### +set log [bopcurves f1 f2 -2d] +######################### + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +#This value must be equal to the analogical value in bug25292_21 and bug25292_22 of "bugs modalg_5" testgrid. +set MaxTol 1.e-7 + +#This value must be equal to the analogical value in bug25292_21, bug25292_22, bug25292_25 and bug25292_26 of "bugs modalg_5" testgrid. +set GoodNbCurv 2 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +#------------- + +puts "" + +mksurface s1 f1 +mksurface s2 f2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + puts "U2=[dval U1]" + puts "U2=[dval U2]" + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 U1 U2 10 ${Toler} + xdistcs c_$i s2 U1 U2 10 ${Toler} +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25292_22 b/tests/lowalgos/intss/bug25292_22 new file mode 100644 index 0000000000..b641b0a3b5 --- /dev/null +++ b/tests/lowalgos/intss/bug25292_22 @@ -0,0 +1,68 @@ +puts "================" +puts "OCC25292" +puts "================" +puts "" +####################################################################### +# Face/Face intersection algorithm gives different results for different order of the arguments +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25292_Input_3.brep] b1 +restore [locate_data_file bug25292_Input_11.brep] b2 + +explode b1 f +copy b1_1 f1 +explode b2 f +copy b2_1 f2 + +######################### +set log [bopcurves f2 f1 -2d] +######################### + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +#This value must be equal to the analogical value in bug25292_21 and bug25292_22 of "bugs modalg_5" testgrid. +set MaxTol 1.e-7 + +#This value must be equal to the analogical value in bug25292_21, bug25292_22, bug25292_25 and bug25292_26 of "bugs modalg_5" testgrid. +set GoodNbCurv 2 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +#------------- + +puts "" + +mksurface s1 f1 +mksurface s2 f2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + puts "U2=[dval U1]" + puts "U2=[dval U2]" + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 U1 U2 10 ${Toler} + xdistcs c_$i s2 U1 U2 10 ${Toler} +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25292_31 b/tests/lowalgos/intss/bug25292_31 new file mode 100644 index 0000000000..b807823edd --- /dev/null +++ b/tests/lowalgos/intss/bug25292_31 @@ -0,0 +1,62 @@ +puts "================" +puts "OCC25292" +puts "================" +puts "" +####################################################################### +# Face/Face intersection algorithm gives different results for different order of the arguments +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25292_f1.brep] f1 +restore [locate_data_file bug25292_f2.brep] f2 + +############################# +set log [bopcurves f1 f2 -2d] +############################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. +set MaxTol 1.3e-7 + +#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. +set GoodNbCurv 1 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!!" +} + +#------------- + +puts "" + +mksurface s1 f1 +mksurface s2 f2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + puts "U2=[dval U1]" + puts "U2=[dval U2]" + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 U1 U2 10 ${Toler} + xdistcs c_$i s2 U1 U2 10 ${Toler} +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25292_32 b/tests/lowalgos/intss/bug25292_32 new file mode 100644 index 0000000000..04a5a0e620 --- /dev/null +++ b/tests/lowalgos/intss/bug25292_32 @@ -0,0 +1,62 @@ +puts "================" +puts "OCC25292" +puts "================" +puts "" +####################################################################### +# Face/Face intersection algorithm gives different results for different order of the arguments +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25292_f1.brep] f1 +restore [locate_data_file bug25292_f2.brep] f2 + +############################# +set log [bopcurves f2 f1 -2d] +############################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. +set MaxTol 1.3e-7 + +#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. +set GoodNbCurv 1 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!!" +} + +#------------- + +puts "" + +mksurface s1 f1 +mksurface s2 f2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + puts "U2=[dval U1]" + puts "U2=[dval U2]" + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 U1 U2 10 ${Toler} + xdistcs c_$i s2 U1 U2 10 ${Toler} +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25380 b/tests/lowalgos/intss/bug25380 new file mode 100644 index 0000000000..c668905028 --- /dev/null +++ b/tests/lowalgos/intss/bug25380 @@ -0,0 +1,26 @@ +puts "================" +puts "OCC25380" +puts "================" +puts "" +####################################################################### +# Intersection curve cannot reach boundary of surface +####################################################################### + +restore [locate_data_file bug25380_b1.brep] b1 +restore [locate_data_file bug25380_b2.brep] b2 + +set log [bopcurves b1 b2] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv +set MaxTol 1.e-11 +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} +checklength c_1 -l 1.614 + +smallview +donly c_1 b1 +fit +display b2 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25416_1 b/tests/lowalgos/intss/bug25416_1 new file mode 100644 index 0000000000..c42dc9d9ee --- /dev/null +++ b/tests/lowalgos/intss/bug25416_1 @@ -0,0 +1,59 @@ +puts "================" +puts "OCC25416" +puts "================" +puts "" +####################################################################### +# Wrong section curve +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25416_f1.brep] f1 +restore [locate_data_file bug25416_f2.brep] f2 + +############################# +set log [bopcurves f1 f2 -2d] +############################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +set MaxTol 1.e-7 + +set GoodNbCurv 1 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +#------------- + +mksurface s1 f1 +mksurface s2 f2 + +erase s1 s2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + dump U1 U2 + + if {[dval $U2-$U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 ${U1} ${U2} 10 1e-7 + xdistcs c_$i s2 ${U1} ${U2} 10 1e-7 +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25416_2 b/tests/lowalgos/intss/bug25416_2 new file mode 100644 index 0000000000..a6b31c961c --- /dev/null +++ b/tests/lowalgos/intss/bug25416_2 @@ -0,0 +1,65 @@ +puts "================" +puts "OCC25416" +puts "================" +puts "" +####################################################################### +# Wrong section curve +####################################################################### + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +# bopcurves command + +restore [locate_data_file bug25416_f3.brep] f1 +restore [locate_data_file bug25416_f4.brep] f2 + +mksurface s1 f1 +mksurface s2 f2 + +#Trim according to "xbounds f1" +trim s1 s1 -55.44 150.554 -98.1087 79.1766 + +mkface ff1 s1 +donly ff1 f2 + +############################# +set log [bopcurves ff1 f2 -2d] +############################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. +set MaxTol 1.e-7 + +#This value must be equal to the analogical value in bug25292_31 and bug25292_32 of "bugs modalg_5" testgrid. +set GoodNbCurv 2 + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +#------------- + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + dump U1 U2 + + if {[dval $U2-$U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 ${U1} ${U2} 10 1e-7 + xdistcs c_$i s2 ${U1} ${U2} 10 1e-7 +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25416_3 b/tests/lowalgos/intss/bug25416_3 new file mode 100644 index 0000000000..39c76766ed --- /dev/null +++ b/tests/lowalgos/intss/bug25416_3 @@ -0,0 +1,40 @@ +puts "================" +puts "OCC25416" +puts "================" +puts "" +####################################################################### +# Wrong section curve +####################################################################### + +#Check if intersection algorithm produces overlapped curves + +restore [locate_data_file bug25416_s1.draw] s1 +restore [locate_data_file bug25416_s2.draw] s2 + +set ll [intersect ii s1 s2] + +set status 0 +if { [llength $ll] < 1 } { + set status 1 +} + +foreach i $ll { + foreach j $ll { + if { $i >= $j } continue + + mkedge e1 $i + mkedge e2 $j + set coe [checkoverlapedges e1 e2] + + puts "$i<->$j: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + set status 2 + } + } +} + +if { $status != 0 } { + puts "Wrong section. Error with code $status" +} else { + puts "OK: Good section" +} diff --git a/tests/lowalgos/intss/bug25465_1 b/tests/lowalgos/intss/bug25465_1 new file mode 100644 index 0000000000..be9fd47911 --- /dev/null +++ b/tests/lowalgos/intss/bug25465_1 @@ -0,0 +1,22 @@ +puts "========" +puts "OCC25465" +puts "========" +puts "" +################################################ +# Excess vertex in the result of CUT operation +################################################ + +restore [locate_data_file OCC25465_Gorivo.brep] b1 +restore [locate_data_file OCC25465_Translation_1.brep] b2 + +explode b1 f +explode b2 f +set bug_info [bopcurves b1_3 b2_4] +bop b1 b2 +bopcut result + +# It is strictly forbidden to change reference values of vertexes and edges (see OCC25465) +checknbshapes result -vertex 11 -edge 17 -wire 8 -face 8 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 47 +if {[lindex $bug_info 2] != 3} { + puts "ERROR: OCC25465 is reproduced." +} diff --git a/tests/lowalgos/intss/bug25465_2 b/tests/lowalgos/intss/bug25465_2 new file mode 100644 index 0000000000..884a8cf760 --- /dev/null +++ b/tests/lowalgos/intss/bug25465_2 @@ -0,0 +1,22 @@ +puts "========" +puts "OCC25465" +puts "========" +puts "" +################################################ +# Excess vertex in the result of CUT operation +################################################ + +restore [locate_data_file OCC25465_t_boite1.brep] b1 +restore [locate_data_file OCC25465_c_cyl.brep] b2 + +explode b1 f +explode b2 f +set bug_info [bopcurves b1_6 b2_1] +bop b1 b2 +bopcut result + +# It is strictly forbidden to change reference values of vertexes and edges (see OCC25465) +checknbshapes result -vertex 13 -edge 20 -wire 11 -face 8 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 55 +if {[lindex $bug_info 2] != 2} { + puts "ERROR: OCC25465 is reproduced." +} diff --git a/tests/lowalgos/intss/bug25488 b/tests/lowalgos/intss/bug25488 new file mode 100644 index 0000000000..3437ecd6be --- /dev/null +++ b/tests/lowalgos/intss/bug25488 @@ -0,0 +1,31 @@ +puts "========" +puts "OCC25488" +puts "========" +puts "" +###################################################### +# Wrong result of two trimmed cylinders intersection +###################################################### + +set Tolerance 1.1e-7 +set Limit_Tol 1.0e-7 + +puts "##############################" +puts "#!!!Search \"Attention\" keyword on this web-page for additional checking!!!" +puts "##############################" +puts "" +puts "" + +restore [locate_data_file OCC25488_sb1_1t.draw] sb1 +restore [locate_data_file OCC25488_sb2_1t.draw] sb2 + +set bug_info [intersect res sb1 sb2] + +set i 0 +while {$i != [llength $bug_info]} { + set res_i [lindex $bug_info $i] + + xdistcs ${res_i} sb1 0 1 10 ${Tolerance} ${Limit_Tol} + xdistcs ${res_i} sb2 0 1 10 ${Tolerance} ${Limit_Tol} + + set i [expr {$i + 1}] +} diff --git a/tests/lowalgos/intss/bug25697_2 b/tests/lowalgos/intss/bug25697_2 new file mode 100644 index 0000000000..bb25efa6f0 --- /dev/null +++ b/tests/lowalgos/intss/bug25697_2 @@ -0,0 +1,44 @@ +puts "==========" +puts "OCC25697" +puts "==========" +puts "" +######################################################################################## +# Regression : Section obtained after command "bsection" in Test Harness is incorrect. +######################################################################################## + +restore [locate_data_file bug25697_shell_for_seam.brep] b1 +restore [locate_data_file bug25697_prism.brep] b2 +explode b1 f +copy b1_1 b1 +explode b2 f +copy b2_1 b2 + +################################# +set log [bopcurves b1 b2 -2d1] +################################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +set GoodNbCurv 3 + +checkreal TolReached ${Toler} 0.00027763280312203317 0.0 0.01 + +if { ${NbCurv} != ${GoodNbCurv} } { + puts "Error: Curve Number is bad!" +} + +#--------------- +mksurface s1 b1 +mksurface s2 b2 + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i u1 u2 + dump u1 u2 + + xdistcs c_$i s1 u1 u2 10 1e-7 + xdistcs c_$i s2 u1 u2 10 1e-7 +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25782_1 b/tests/lowalgos/intss/bug25782_1 new file mode 100644 index 0000000000..879676da0c --- /dev/null +++ b/tests/lowalgos/intss/bug25782_1 @@ -0,0 +1,70 @@ +puts "========" +puts "OCC25782" +puts "========" +puts "" +###################################################### +# The result of intersection between two cylinders is incorrect +# Algorithm must find one curves only +###################################################### + +set GoodNbCurv 1 + +restore [locate_data_file bug25782_fz19.brep] b1 +restore [locate_data_file bug25782_fz53.brep] b2 + +mksurface s1 b1 +mksurface s2 b2 + +intersect res s1 s2 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + + copy res res_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + xdistcs res_$ic s1 0 100 10 1e-7 + xdistcs res_$ic s2 0 100 10 1e-7 + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Curve Number is good!" +} else { + puts "Error: Curves Number is bad!" +} + +set log [bopcurves b1 b2] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv +set MaxTol 1.e-7 +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {$NbCurv != $GoodNbCurv} { + puts "Error: Curves Number is bad!" +} + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs c_$i s1 U1 U2 10 1e-7 + xdistcs c_$i s2 U1 U2 10 1e-7 +} diff --git a/tests/lowalgos/intss/bug25782_2 b/tests/lowalgos/intss/bug25782_2 new file mode 100644 index 0000000000..a54a2915f8 --- /dev/null +++ b/tests/lowalgos/intss/bug25782_2 @@ -0,0 +1,51 @@ +puts "========" +puts "OCC25782" +puts "========" +puts "" +###################################################### +# The result of intersection between two cylinders is incorrect +###################################################### + +set GoodNbCurv 2 + +cylinder s1 0 0 0 12 35 47 5 +cylinder s2 3 2 8 12 35 47 4 + +set bug_info [intersect res s1 s2] + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + + copy res res_1 +} + +if {[llength ${bug_info}] != $GoodNbCurv} { + puts "Error: The result of intersection between two cylinders is incorrect" +} + +set Tolerance 1.e-7 +set D_good 0. +set Limit_Tol 1.0e-7 + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + if { [regexp {\*\*\nLine} [dump res_$ic]] } { + #puts "OK : Correct intersection" + } else { + puts "Error : Bad intersection" + } + + xdistcs res_$ic s1 0 100 10 1e-7 + xdistcs res_$ic s2 0 100 10 1e-7 + + incr ic + } +} diff --git a/tests/lowalgos/intss/bug25818 b/tests/lowalgos/intss/bug25818 new file mode 100644 index 0000000000..e8a2353d59 --- /dev/null +++ b/tests/lowalgos/intss/bug25818 @@ -0,0 +1,18 @@ +puts "============" +puts "OCC25818" +puts "============" +puts "" +####################################################################### +# IntTools_FaceFace throws Standard_ConstructionError with two unbounded planes +####################################################################### + +plane pn1 0 0 0 0 0 1 1 0 0 +plane pn2 0 0 0 1 0 0 0 1 0 +mkface f1 pn1 +mkface f2 pn2 + +bopcurves f1 f2 + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25820_1 b/tests/lowalgos/intss/bug25820_1 new file mode 100644 index 0000000000..782dea8473 --- /dev/null +++ b/tests/lowalgos/intss/bug25820_1 @@ -0,0 +1,35 @@ +puts "========" +puts "OCC25820" +puts "========" +puts "" +################################################################### +# No Intersection Curves between surface of revolution and planes +################################################################### + +restore [locate_data_file OCC25820-Revolution_5.brep] b1 +explode b1 f +copy b1_4 b1 + +restore [locate_data_file OCC25820-Translation_1.brep] b2 +explode b2 f +copy b2_2 b2 + +smallview +clear +display b1 +display b2 +fit + +set info [bopcurves b1 b2] +regexp {Tolerance Reached=([-0-9.+eE]+)} $info full bug_info_tol +regexp {([0-9]+) curve\(s\) found.} $info full bug_info_cur + +if {$bug_info_tol > 1.0e-7} { + puts "ERROR: OCC25820 is reproduced. Tolerance is to large ($bug_info_tol)." +} + +if {$bug_info_cur != 1} { + puts "ERROR: OCC25820 is reproduced. Too many curves were found." +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25820_2 b/tests/lowalgos/intss/bug25820_2 new file mode 100644 index 0000000000..2ac5382220 --- /dev/null +++ b/tests/lowalgos/intss/bug25820_2 @@ -0,0 +1,35 @@ +puts "========" +puts "OCC25820" +puts "========" +puts "" +################################################################### +# No Intersection Curves between surface of revolution and planes +################################################################### + +restore [locate_data_file OCC25820-Revolution_5.brep] b1 +explode b1 f +copy b1_4 b1 + +restore [locate_data_file OCC25820-Translation_2.brep] b2 +explode b2 f +copy b2_4 b2 + +smallview +clear +display b1 +display b2 +fit + +set info [bopcurves b1 b2] +regexp {Tolerance Reached=([-0-9.+eE]+)} $info full bug_info_tol +regexp {([0-9]+) curve\(s\) found.} $info full bug_info_cur + +if {$bug_info_tol > 1.0e-7} { + puts "ERROR: OCC25820 is reproduced. Tolerance is to large ($bug_info_tol)." +} + +if {$bug_info_cur != 1} { + puts "ERROR: OCC25820 is reproduced. Too many curves were found." +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25820_3 b/tests/lowalgos/intss/bug25820_3 new file mode 100644 index 0000000000..3ed68e253c --- /dev/null +++ b/tests/lowalgos/intss/bug25820_3 @@ -0,0 +1,35 @@ +puts "========" +puts "OCC25820" +puts "========" +puts "" +################################################################### +# No Intersection Curves between surface of revolution and planes +################################################################### + +restore [locate_data_file OCC25820-Revolution_5.brep] b1 +explode b1 f +copy b1_4 b1 + +restore [locate_data_file OCC25820-Translation_3.brep] b2 +explode b2 f +copy b2_3 b2 + +smallview +clear +display b1 +display b2 +fit + +set info [bopcurves b1 b2] +regexp {Tolerance Reached=([-0-9.+eE]+)} $info full bug_info_tol +regexp {([0-9]+) curve\(s\) found.} $info full bug_info_cur + +if {$bug_info_tol > 1.0e-7} { + puts "ERROR: OCC25820 is reproduced. Tolerance is to large ($bug_info_tol)." +} + +if {$bug_info_cur != 1} { + puts "ERROR: OCC25820 is reproduced. Too many curves were found." +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25828_3 b/tests/lowalgos/intss/bug25828_3 new file mode 100644 index 0000000000..9d6b704575 --- /dev/null +++ b/tests/lowalgos/intss/bug25828_3 @@ -0,0 +1,37 @@ +puts "========" +puts "OCC25828" +puts "========" +puts "" +########################################## +## BRepAlgoAPI_Section fails for a solid and a face depending on order of arguments +########################################## + +set BugNumber OCC25828 + +restore [locate_data_file bug25828_intersectionproblem.brep] b + +explode b +copy b_1 b1 +copy b_2 b2 + +explode b1 f; copy b1_1 b1 +explode b2 f; copy b2_6 b2 + +set log [bopcurves b1 b2 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +set MaxTol 5.5e-6 +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != 1} { + puts "Error: NbCurv is bad!" +} + +smallview +donly b1 b2 +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25828_4 b/tests/lowalgos/intss/bug25828_4 new file mode 100644 index 0000000000..03c236c7de --- /dev/null +++ b/tests/lowalgos/intss/bug25828_4 @@ -0,0 +1,37 @@ +puts "========" +puts "OCC25828" +puts "========" +puts "" +########################################## +## BRepAlgoAPI_Section fails for a solid and a face depending on order of arguments +########################################## + +set BugNumber OCC25828 + +restore [locate_data_file bug25828_intersectionproblem.brep] b + +explode b +copy b_1 b1 +copy b_2 b2 + +explode b1 f; copy b1_1 b1 +explode b2 f; copy b2_6 b2 + +set log [bopcurves b2 b1 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +set MaxTol 5.5e-6 +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != 1} { + puts "Error: NbCurv is bad!" +} + +smallview +donly b1 b2 +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25842 b/tests/lowalgos/intss/bug25842 new file mode 100644 index 0000000000..ca7dcc063a --- /dev/null +++ b/tests/lowalgos/intss/bug25842 @@ -0,0 +1,18 @@ +puts "================" +puts "OCC25842" +puts "================" +puts "" +####################################################################### +# Wrong intersection 2D-curves obtained for pair of faces. +####################################################################### + +restore [locate_data_file bug25842_f1.brep] f1 +restore [locate_data_file bug25842_f2.brep] f2 + +bopcurves f1 f2 -2d + +v2d +donly c2d2_1 c2d2_2 +2dfit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug25890 b/tests/lowalgos/intss/bug25890 new file mode 100644 index 0000000000..4c3dad3985 --- /dev/null +++ b/tests/lowalgos/intss/bug25890 @@ -0,0 +1,55 @@ +puts "============" +puts "OCC25890" +puts "============" +puts "" +############################### +## Intersection algorithm produces curves overlaped +############################### + +set ExpToler 1.5361108163989659e-007 +set ExpLen 5.036361740755879 + +restore [locate_data_file bug25890_f1.brep] f1 +restore [locate_data_file bug25890_f2.brep] f2 + +set log [ bopcurves f1 f2 -2d ] +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +checkreal TolReached $Toler $ExpToler 0.0 0.1 + +if { ${NbCurv} != 1 } { + puts "Error : NbCurv is bad" + + set nbshapes_expected " + Number of shapes in shape + VERTEX : 0 + EDGE : 0 + WIRE : 0 + FACE : 0 + SHELL : 0 + SOLID : 0 + COMPSOLID : 0 + COMPOUND : 1 + SHAPE : 1 + " + + set SumLen 0.0 + + # Check for overlapping + for {set i 1} {$i <= $NbCurv} {incr i} { + regexp "The +length+ c_$i +is +(\[-0-9.+eE\]+)" [ length c_$i ] full m + set SumLen [ expr $SumLen + $m] + for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { + puts " Check c_$i and c_$j" + mkedge e1 c_$i + mkedge e2 c_$j + bcommon rr e1 e2 + checknbshapes rr -ref "${nbshapes_expected}" -t -m "Partition of 2 shapes" + } + } + + checkreal Length $SumLen $ExpLen 1.0e-7 0.0 +} else { + checklength c_1 -l $ExpLen +} + diff --git a/tests/lowalgos/intss/bug25898 b/tests/lowalgos/intss/bug25898 new file mode 100644 index 0000000000..343274e8e7 --- /dev/null +++ b/tests/lowalgos/intss/bug25898 @@ -0,0 +1,25 @@ +puts "================" +puts "OCC25898" +puts "================" +puts "" +####################################################################### +# Wrong result obtained by intersection algorithm. +####################################################################### + +# Before fix intersection algorithm threw an exception. + +restore [locate_data_file bug25898_x001_1.draw] s1 +restore [locate_data_file bug25898_x001_2.draw] s2 + +set CurveNumb [intersect i s1 s2] + +if { [llength ${CurveNumb}] != 2 } { + puts "Error : Wrong result obtained by intersection algorithm." +} else { + puts "OK : Good result obtained by intersection algorithm." +} + +smallview +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26008 b/tests/lowalgos/intss/bug26008 new file mode 100644 index 0000000000..4c24bf0626 --- /dev/null +++ b/tests/lowalgos/intss/bug26008 @@ -0,0 +1,20 @@ +puts "================" +puts "OCC26008" +puts "================" +puts "" +####################################################################### +# [OCCT 6.8.0 regression] BRepFeat_SplitShape returns invalid shapes +####################################################################### + +sphere ss1 78.4160443343, 8.94293392454, 70.9553808628 6.5 +sphere ss2 82.5593917073, 4.52613090823, 76.3299967 3.5 + +mkface f1 ss1 +mkface f2 ss2 + +bopcurves f1 f2 -2d + +view 1 -2D- 465 20 400 400 +2dfit + +xwd $imagedir/${test_image}.png diff --git a/tests/lowalgos/intss/bug26151_1 b/tests/lowalgos/intss/bug26151_1 new file mode 100644 index 0000000000..8f644833ef --- /dev/null +++ b/tests/lowalgos/intss/bug26151_1 @@ -0,0 +1,33 @@ +puts "============" +puts "OCC26151" +puts "============" +puts "" +############################### +## Wrong result obtained by intersection algorithm. +############################### + +restore [locate_data_file bug26132_shape.brep] q + +explode q +copy q_1 b1 +copy q_2 b2 + +explode b1 f +explode b2 +explode b2_10 f + +set log [bopcurves b1_1 b2_10_4 -2d] + +#Faces almost coincide. Therefore, there is no point in +#returning some intersection line. +#Theoretically, the intersection result is some region (tangent zone). + +if { [regexp "has no 3d curve" ${log}] != 1 } { + puts "Error : Wrong result obtained by intersection algorithm" +} else { + puts "OK : Good result obtained by intersection algorithm" +} + +smallview +fit +xwd $imagedir/${test_image}.png diff --git a/tests/lowalgos/intss/bug26151_2 b/tests/lowalgos/intss/bug26151_2 new file mode 100644 index 0000000000..92b986b5cb --- /dev/null +++ b/tests/lowalgos/intss/bug26151_2 @@ -0,0 +1,33 @@ +puts "============" +puts "OCC26151" +puts "============" +puts "" +############################### +## Wrong result obtained by intersection algorithm. +############################### + +restore [locate_data_file bug26132_shape.brep] q + +explode q +copy q_1 b1 +copy q_2 b2 + +explode b1 f +explode b2 +explode b2_11 f + +set log [bopcurves b1_1 b2_11_2 -2d] + +#Faces almost coincide. Therefore, there is no point in +#returning some intersection line. +#Theoretically, the intersection result is some region (tangent zone). + +if { [regexp "has no 3d curve" ${log}] != 1 } { + puts "Error : Wrong result obtained by intersection algorithm" +} else { + puts "OK : Good result obtained by intersection algorithm" +} + +smallview +fit +xwd $imagedir/${test_image}.png diff --git a/tests/lowalgos/intss/bug26251 b/tests/lowalgos/intss/bug26251 new file mode 100644 index 0000000000..d498eb95b8 --- /dev/null +++ b/tests/lowalgos/intss/bug26251 @@ -0,0 +1,45 @@ +puts "============" +puts "OCC26251" +puts "============" +puts "" +############################### +## Section curve cannot be found +############################### + +restore [locate_data_file bug26251_b31_3.brep] b1 +restore [locate_data_file bug26251_tank31.brep] b2 + +bsection result b1 b2 + +checkprops result -l 2.49934 +checkshape result +checksection result + +set nbshapes_expected " +Number of shapes in shape + VERTEX : 3 + EDGE : 2 + WIRE : 0 + FACE : 0 + SHELL : 0 + SOLID : 0 + COMPSOLID : 0 + COMPOUND : 1 + SHAPE : 6 +" + +checknbshapes result -ref ${nbshapes_expected} -t -m "Section curve" + +explode b2 f +copy b2_5 b2 + +set NbCurves 0 + +set log [bopcurves b1 b2 -2d] +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurves + +if {$NbCurves == 0} { + puts "Error: Intersection curve is not found" +} + +checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26352 b/tests/lowalgos/intss/bug26352 new file mode 100644 index 0000000000..9590d134ec --- /dev/null +++ b/tests/lowalgos/intss/bug26352 @@ -0,0 +1,44 @@ +puts "========" +puts "OCC26352" +puts "========" +puts "" +############################################################################# +# Wrong intersection points found +############################################################################# + +restore [locate_data_file bug26316_shape1.brep] b1 +restore [locate_data_file bug26316_shape2.brep] b2 + +explode b1 f +explode b2 f + +set log1 [bopcurves b1_10 b2_3] +set log2 [bopcurves b1_10 b2_10] +set log3 [bopcurves b1_11 b2_1] +set log4 [bopcurves b1_11 b2_7] + +set search_str "has no 3d points" + +if { [regexp ${search_str} ${log1}] != 1 } { + puts "Error : Wrong intersection point found (1)" +} else { + puts "OK : Good result obtained by intersection algorithm (1)" +} + +if { [regexp ${search_str} ${log2}] != 1 } { + puts "Error : Wrong intersection point found (2)" +} else { + puts "OK : Good result obtained by intersection algorithm (2)" +} + +if { [regexp ${search_str} ${log3}] != 1 } { + puts "Error : Wrong intersection point found (3)" +} else { + puts "OK : Good result obtained by intersection algorithm (3)" +} + +if { [regexp ${search_str} ${log4}] != 1 } { + puts "Error : Wrong intersection point found (4)" +} else { + puts "OK : Good result obtained by intersection algorithm (4)" +} diff --git a/tests/lowalgos/intss/bug26431_1 b/tests/lowalgos/intss/bug26431_1 new file mode 100644 index 0000000000..201859a439 --- /dev/null +++ b/tests/lowalgos/intss/bug26431_1 @@ -0,0 +1,21 @@ +puts "============" +puts "OCC26431" +puts "============" +puts "" +############################### +## Can't cut a sphere from a cylinder +############################### + +restore [locate_data_file bug26431_Body.brep] b1 +restore [locate_data_file bug26431_Sphere.brep] b2 + +explode b1 f +explode b2 f + +set log [bopcurves b1_3 b2_1 -2d] +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv + +set expected_Tolerance_Reached 6.1899285293702062e-006 +set tol_abs_Tolerance_Reached 1.0e-7 +set tol_rel_Tolerance_Reached 0.0 +checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} diff --git a/tests/lowalgos/intss/bug26509_1 b/tests/lowalgos/intss/bug26509_1 new file mode 100644 index 0000000000..3398637e79 --- /dev/null +++ b/tests/lowalgos/intss/bug26509_1 @@ -0,0 +1,42 @@ +puts "========" +puts "0026509: Wrong intersection curve(s) obtained for pair of faces." +puts "========" +puts "" + +circle c1 0 0 0 0 -1 0 75 +circle c2 0 0 0 0 -1 0 65 +mkedge c1 c1 +mkedge c2 c2 +wire c1 c1 +wire c2 c2 +orientation c2 R +mkplane f1 c1 1 +add c2 f1 +prism p1 f1 0 1000 0 +trotate p1 0 0 0 0 0 1 180 +circle c3 50 500 -2000 0 0 1 50 +mkedge c3 c3 +wire c3 c3 +mkplane f2 c3 1 +prism p2 f2 0 0 4000 +explode p1 f +explode p2 f +trotate p2_1 0 500 0 1 0 0 -77 +trotate p2_1 0 0 0 0 0 1 180 + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 + +if {$NbCurv != 3} { + puts "Error: Please check NbCurves for intersector" +} + +puts "Check whether the intersection result is closed in 3D" +bsection result p1_2 p2_1 + +checksection result -r 0 +checkmaxtol result -ref 4.0e-7 +checkprops result -l 1881.92 + +checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug26509_2 b/tests/lowalgos/intss/bug26509_2 new file mode 100644 index 0000000000..3470a53da0 --- /dev/null +++ b/tests/lowalgos/intss/bug26509_2 @@ -0,0 +1,43 @@ +puts "========" +puts "0026509: Wrong intersection curve(s) obtained for pair of faces." +puts "========" +puts "" + +circle c1 0 0 0 0 -1 0 75 +circle c2 0 0 0 0 -1 0 65 +mkedge c1 c1 +mkedge c2 c2 +wire c1 c1 +wire c2 c2 +orientation c2 R +mkplane f1 c1 1 +add c2 f1 +prism p1 f1 0 1000 0 +trotate p1 0 0 0 0 0 1 180 +circle c3 50 500 -2000 0 0 1 50 +mkedge c3 c3 +wire c3 c3 +mkplane f2 c3 1 +prism p2 f2 0 0 4000 +explode p1 f +explode p2 f +trotate p2_1 0 500 0 1 0 0 -77 +trotate p2_1 0 0 0 0 0 1 180 +trotate p1_2 0 0 0 1.22464679914735e-16 1 0 -1.57079632679489655800*180/pi + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 + +if {$NbCurv != 1} { + puts "Error: Please check NbCurves for intersector" +} + +puts "Check whether the intersection result is closed in 3D" +bsection result p1_2 p2_1 + +checksection result -r 0 +checkmaxtol result -ref 4.0e-7 +checkprops result -l 1881.92 + +checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug26509_3 b/tests/lowalgos/intss/bug26509_3 new file mode 100644 index 0000000000..67f4309296 --- /dev/null +++ b/tests/lowalgos/intss/bug26509_3 @@ -0,0 +1,43 @@ +puts "========" +puts "0026509: Wrong intersection curve(s) obtained for pair of faces." +puts "========" +puts "" + +circle c1 0 0 0 0 -1 0 75 +circle c2 0 0 0 0 -1 0 65 +mkedge c1 c1 +mkedge c2 c2 +wire c1 c1 +wire c2 c2 +orientation c2 R +mkplane f1 c1 1 +add c2 f1 +prism p1 f1 0 1000 0 +trotate p1 0 0 0 0 0 1 180 +circle c3 50 500 -2000 0 0 1 50 +mkedge c3 c3 +wire c3 c3 +mkplane f2 c3 1 +prism p2 f2 0 0 4000 +explode p1 f +explode p2 f +trotate p2_1 0 500 0 1 0 0 -77 +trotate p2_1 0 0 0 0 0 1 180 +trotate p1_2 0 0 0 1.22464679914735e-16 1 0 1.57079632679489655800*180/pi + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +puts "Check whether the intersection result is closed in 3D" +bsection result p1_2 p2_1 + +checksection result -r 0 +checkmaxtol result -ref 4.0e-7 +checkprops result -l 1881.92 + +checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug26509_4 b/tests/lowalgos/intss/bug26509_4 new file mode 100644 index 0000000000..780af19080 --- /dev/null +++ b/tests/lowalgos/intss/bug26509_4 @@ -0,0 +1,44 @@ +puts "========" +puts "0026509: Wrong intersection curve(s) obtained for pair of faces." +puts "========" +puts "" + +circle c1 0 0 0 0 -1 0 75 +circle c2 0 0 0 0 -1 0 65 +mkedge c1 c1 +mkedge c2 c2 +wire c1 c1 +wire c2 c2 +orientation c2 R +mkplane f1 c1 1 +add c2 f1 +prism p1 f1 0 1000 0 +trotate p1 0 0 0 0 0 1 180 +circle c3 50 500 -2000 0 0 1 50 +mkedge c3 c3 +wire c3 c3 +mkplane f2 c3 1 +prism p2 f2 0 0 4000 +explode p1 f +explode p2 f +trotate p2_1 0 500 0 1 0 0 -77 +trotate p2_1 0 0 0 0 0 1 180 +trotate p1_2 0 0 0 1.22464679914735e-16 1 0 1.57079632679489655800*180/pi +tmirror p1_2 0 -500 0 0 1 0 + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +puts "Check whether the intersection result is closed in 3D" +bsection result p1_2 p2_1 + +checksection result -r 0 +checkmaxtol result -ref 4.0e-7 +checkprops result -l 1881.92 + +checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug26509_5 b/tests/lowalgos/intss/bug26509_5 new file mode 100644 index 0000000000..c9c68304bf --- /dev/null +++ b/tests/lowalgos/intss/bug26509_5 @@ -0,0 +1,43 @@ +puts "========" +puts "0026509: Wrong intersection curve(s) obtained for pair of faces." +puts "========" +puts "" + +circle c1 0 0 0 0 -1 0 75 +circle c2 0 0 0 0 -1 0 65 +mkedge c1 c1 +mkedge c2 c2 +wire c1 c1 +wire c2 c2 +orientation c2 R +mkplane f1 c1 1 +add c2 f1 +prism p1 f1 0 1000 0 +trotate p1 0 0 0 0 0 1 180 +circle c3 50 500 -2000 0 0 1 50 +mkedge c3 c3 +wire c3 c3 +mkplane f2 c3 1 +prism p2 f2 0 0 4000 +explode p1 f +explode p2 f +trotate p2_1 0 500 0 1 0 0 -77 +trotate p2_1 0 0 0 0 0 1 180 +trotate p2_1 -49.9999999999998, 1448.74012957047, -449.90210868773 1.19325918102424e-16, 0.974370064785235, -0.224951054343865 -1.26610367277949897868*180/pi + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +puts "Check whether the intersection result is closed in 3D" +bsection result p1_2 p2_1 + +checksection result -r 0 +checkmaxtol result -ref 4.0e-7 +checkprops result -l 1881.92 + +checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug26509_6 b/tests/lowalgos/intss/bug26509_6 new file mode 100644 index 0000000000..bd6f305874 --- /dev/null +++ b/tests/lowalgos/intss/bug26509_6 @@ -0,0 +1,44 @@ +puts "========" +puts "0026509: Wrong intersection curve(s) obtained for pair of faces." +puts "========" +puts "" + +circle c1 0 0 0 0 -1 0 75 +circle c2 0 0 0 0 -1 0 65 +mkedge c1 c1 +mkedge c2 c2 +wire c1 c1 +wire c2 c2 +orientation c2 R +mkplane f1 c1 1 +add c2 f1 +prism p1 f1 0 1000 0 +trotate p1 0 0 0 0 0 1 180 +circle c3 50 500 -2000 0 0 1 50 +mkedge c3 c3 +wire c3 c3 +mkplane f2 c3 1 +prism p2 f2 0 0 4000 +explode p1 f +explode p2 f +trotate p2_1 0 500 0 1 0 0 -77 +trotate p2_1 0 0 0 0 0 1 180 +trotate p1_2 0 0 0 1.22464679914735e-16 1 0 -1.57079632679489655800*180/pi +trotate p2_1 -49.9999999999998, 1448.74012957047, -449.90210868773 1.19325918102424e-16, 0.974370064785235, -0.224951054343865 -1.26610367277949897868*180/pi + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves p1_2 p2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 3.6430300265667996e-07 0.0 0.1 + +if {$NbCurv != 1} { + puts "Error: Please check NbCurves for intersector" +} + +puts "Check whether the intersection result is closed in 3D" +bsection result p1_2 p2_1 + +checksection result -r 0 +checkmaxtol result -ref 4.0e-7 +checkprops result -l 1881.92 + +checkview -display result -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug26576_1 b/tests/lowalgos/intss/bug26576_1 new file mode 100644 index 0000000000..40e3086505 --- /dev/null +++ b/tests/lowalgos/intss/bug26576_1 @@ -0,0 +1,56 @@ +puts "============" +puts "OCC26576" +puts "============" +puts "" +############################### +## Wrong result obtained by intersection algorithm. +############################### + +pload DCAF + +Open [locate_data_file bug26576_study1_new_geom.cbf] D + +GetShape D 0:1:484:1:1:2 b1 +GetShape D 0:1:478:1:1:2 b2 + +explode b1 f +explode b2 f +copy b1_1 b1 +copy b2_2 b2 +donly b1 b2 + +#Wrong value of Tolerance Reached. + +set log [bopcurves b1 b2 -2d] +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv + +set GoodNbCurv 2 + +set expected_Tolerance_Reached 1.2482990218170969e-007 +set tol_abs_Tolerance_Reached 1.0e-7 +set tol_rel_Tolerance_Reached 0.0 +checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!" +} + +#Overlapping intersection curves. + +for {set i 1} {$i < ${NbCurv}} {incr i} { + for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { + mkedge e1 c_$i + mkedge e2 c_$j + + set coe [checkoverlapedges e1 e2 $Tolerance_Reached] + + puts "c_$i<->c_$j: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: c_$i and c_$j are overlaped" + } + } +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26576_3 b/tests/lowalgos/intss/bug26576_3 new file mode 100644 index 0000000000..21467cc160 --- /dev/null +++ b/tests/lowalgos/intss/bug26576_3 @@ -0,0 +1,61 @@ +puts "============" +puts "OCC26576" +puts "============" +puts "" +############################### +## Wrong result obtained by intersection algorithm. +############################### + +pload DCAF + +Open [locate_data_file bug26576_study1_new_geom.cbf] D + +GetShape D 0:1:484:1:1:2 b1_src +GetShape D 0:1:478:1:1:2 b2_src + +save b1_src $imagedir/bug26576_b1.brep +save b2_src $imagedir/bug26576_b2.brep + +restore $imagedir/bug26576_b1.brep b1 +restore $imagedir/bug26576_b2.brep b2 + +explode b1 f +explode b2 f +copy b1_1 b2 +copy b2_2 b1 + +#Wrong value of Tolerance Reached. + +set log [bopcurves b1 b2 -2d] +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv + +set GoodNbCurv 2 + +set expected_Tolerance_Reached 1.2482990218170969e-007 +set tol_abs_Tolerance_Reached 1.0e-7 +set tol_rel_Tolerance_Reached 0.0 +checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!" +} + +#Overlapping intersection curves. + +for {set i 1} {$i < ${NbCurv}} {incr i} { + for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { + mkedge e1 c_$i + mkedge e2 c_$j + + set coe [checkoverlapedges e1 e2 $Tolerance_Reached] + + puts "$i<->$j: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: c_$i and c_$j are overlaped" + } + } +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26576_4 b/tests/lowalgos/intss/bug26576_4 new file mode 100644 index 0000000000..86edaba0ac --- /dev/null +++ b/tests/lowalgos/intss/bug26576_4 @@ -0,0 +1,74 @@ +puts "============" +puts "OCC26576" +puts "============" +puts "" +############################### +## Wrong result obtained by intersection algorithm. +############################### + +set GoodNbCurv 2 + +circle cc 1.5 3.125 0 0 0 1 1 0 0 0.25 +trim cc cc 0 3.14159265358979 +revsurf ss1 cc 1.5 3.125 0 -1 0 0 + +plane ss2 3.48352775473762 1.7282347013387 0 0 0 -1 -1 0 0 + +set IntCurv [intersect intres ss1 ss2] +set NbIntCurv [llength ${IntCurv}] + +if { ${NbIntCurv} != ${GoodNbCurv} } { + puts "Error in geometric intersection: ${GoodNbCurv} curves are expected but ${NbIntCurv} are found!" +} else { + puts "OK : Geometric intersection is good." +} + +# For getting tolerance value +mkface b1 ss1 +mkface b2 ss2 +donly b1 + +set log [bopcurves b1 b2 -2d] +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv + +set expected_Tolerance_Reached 1.9321146113460029e-008 +set tol_abs_Tolerance_Reached 1.0e-7 +set tol_rel_Tolerance_Reached 0.0 +checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!" +} + +#Overlapping intersection curves. + +if { $Tolerance_Reached < 1.0e-7 } { set Tolerance_Reached 1.0e-7 } + +for {set i 1} {$i < ${NbCurv}} {incr i} { + for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { + mkedge eb1 c_$i + mkedge eb2 c_$j + + mkedge ei1 intres_$i + mkedge ei2 intres_$j + + set coeb [checkoverlapedges eb1 eb2 $Tolerance_Reached] + set coei [checkoverlapedges ei1 ei2 $Tolerance_Reached] + + puts "$i<->$j: $coeb" + puts "$i<->$j: $coei" + if { [regexp "Edges is not overlaped" $coeb] != 1 } { + puts "Error: c_$i and c_$j are overlaped" + } + + if { [regexp "Edges is not overlaped" $coei] != 1 } { + puts "Error: intres_$i and intres_$j are overlaped" + } + + erase eb1 eb2 ei1 ei2 + } +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26675 b/tests/lowalgos/intss/bug26675 new file mode 100644 index 0000000000..20141ba93f --- /dev/null +++ b/tests/lowalgos/intss/bug26675 @@ -0,0 +1,58 @@ +puts "============" +puts "OCC26675" +puts "============" +puts "" +############################### +## 0026675: Eliminate normalization of coordinates in ApproxInt package +############################### + +set GoodNbCurv 1 + +pload QAcommands +OCC26675_1 ss + +intersect res ss_1 ss_2 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + display res_$ic + + bounds res_$ic U1 U2 + + dval U1 + dval U2 + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic ss_1 U1 U2 10 4.6e-6 + xdistcs res_$ic ss_2 U1 U2 10 4.3e-6 + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Curve Number is good!" +} else { + puts "Error: Curve Number is bad!" +} + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26684_1 b/tests/lowalgos/intss/bug26684_1 new file mode 100644 index 0000000000..b79fe1d952 --- /dev/null +++ b/tests/lowalgos/intss/bug26684_1 @@ -0,0 +1,31 @@ +puts "============" +puts "OCC26684" +puts "============" +puts "" +################################################### +## Big tolerance values of the intersection curves +################################################### + +brestore [locate_data_file CTO909_IR2_TuyoPipe20.brep] b1 +brestore [locate_data_file CTO909_IR2_sphere1_20.brep] b2 + +explode b1 f; copy b1_1 f1 +explode b2 f; copy b2_1 f2 + +smallview +donly f1 f2 +fit + +# 1 case +set bop_info [bopcurves f1 f2] +regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info full Tolerance + +checkreal "Reached tolerance" ${Tolerance} 5.8654166482879483e-009 1.e-7 0 + +# 2 case +set bop_info_2d [bopcurves f1 f2 -2d] +regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info_2d full Tolerance_2d + +checkreal "Reached tolerance" ${Tolerance_2d} 1.4569392656749484e-008 1.e-7 0 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26684_2 b/tests/lowalgos/intss/bug26684_2 new file mode 100644 index 0000000000..d5028b7ade --- /dev/null +++ b/tests/lowalgos/intss/bug26684_2 @@ -0,0 +1,31 @@ +puts "============" +puts "OCC26684" +puts "============" +puts "" +################################################### +## Big tolerance values of the intersection curves +################################################### + +brestore [locate_data_file IR2_TuyoPipeBSpline_20_draw2.brep] b1 +brestore [locate_data_file IR2_sphere2_20.brep] b2 + +explode b1 f; copy b1_1 f1 +explode b2 f; copy b2_1 f2 + +smallview +donly f1 f2 +fit + +# 1 case +set bop_info [bopcurves f1 f2] +regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info full Tolerance + +checkreal "Reached tolerance" ${Tolerance} 1.2530391548405894e-008 1.e-7 0 + +# 2 case +set bop_info_2d [bopcurves f1 f2 -2d] +regexp {Tolerance Reached=([-0-9.+eE]+)} $bop_info_2d full Tolerance_2d + +checkreal "Reached tolerance" ${Tolerance_2d} 1.4134494834137484e-005 0 1.e-2 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26699 b/tests/lowalgos/intss/bug26699 new file mode 100644 index 0000000000..9237b6324c --- /dev/null +++ b/tests/lowalgos/intss/bug26699 @@ -0,0 +1,32 @@ +puts "================" +puts "OCC26699" +puts "================" +puts "" +####################################################################### +# Wrong section curves +####################################################################### + +set MaxTol 1.e-7 +set GoodNbCurv 2 + +restore [locate_data_file bug26699_f1.brep] f1 +restore [locate_data_file bug26699_f2.brep] f2 + +set log [bopcurves f1 f2 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} +checklength c_1 -l 3.0 +checklength c_2 -l 3.0 + +axo +donly f* c_* +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug26748 b/tests/lowalgos/intss/bug26748 new file mode 100644 index 0000000000..0d7a342533 --- /dev/null +++ b/tests/lowalgos/intss/bug26748 @@ -0,0 +1,33 @@ +puts "========" +puts "OCC26748" +puts "========" +puts "" +################################################# +# Section between cylindrical and planar faces is not found +################################################# + +set ExpTol 5.0e-8 +set GoodNbCurv 1 + +restore [locate_data_file bug26745_BodyA.brep] a +restore [locate_data_file bug26745_BodyB.brep] b + +explode a f +explode b f + +set log [bopcurves a_9 b_1 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} + +checkreal TolReached $Toler $ExpTol 5.0e-8 0.0 + +smallview +don c_* +fit +disp a_9 b_1 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug26894 b/tests/lowalgos/intss/bug26894 new file mode 100644 index 0000000000..306b44c7ca --- /dev/null +++ b/tests/lowalgos/intss/bug26894 @@ -0,0 +1,67 @@ +puts "================" +puts "OCC26894" +puts "================" +puts "" +####################################################################### +# Intersection algorithm between two infinite cylinders is hanging +####################################################################### + +# Attention!!! +# The test on performance meter. +# On the MASTER it takes: +# Elapsed time: 0 Hours 0 Minutes 6.3723911111 Seconds +# CPU user time: 6.15625 seconds +# CPU system time: 0.0625 seconds + +# The intersection curve is almost infinite. +# Therefore, we must have failed to return +# any section curve (see comments to the issue #26894). +set GoodNbCurv 0 + +restore [locate_data_file bug26884-f1.brep] f1 +restore [locate_data_file bug26884-f2.brep] f2 + +mksurface ss1 f1 +mksurface ss2 f2 + +if { ![ catch {intersect result ss1 ss2 } ] } { + puts "Error: intersection algorithm must return fail status. But it is not." +} + +set che [whatis result] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "result" exists + renamevar result result_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis result_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + display result_$ic + + bounds result_$ic U1 U2 + + dump U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs result_$ic ss1 U1 U2 10 1.0e-7 + xdistcs result_$ic ss2 U1 U2 10 1.0e-7 + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" +} diff --git a/tests/lowalgos/intss/bug27079_1 b/tests/lowalgos/intss/bug27079_1 new file mode 100644 index 0000000000..121b0eb68e --- /dev/null +++ b/tests/lowalgos/intss/bug27079_1 @@ -0,0 +1,23 @@ +puts "============" +puts "OCC27079" +puts "============" +puts "" +################################################################## +# Bad approximation of intersection curves with variable curvature +################################################################## + +restore [locate_data_file bug27079_s1.draw] s1 +restore [locate_data_file bug27079_s2.draw] s2 + +clpoles s2 + +smallview +donly s2 +fit + +intersect result s1 s2 + +checklength result_1 -l 6.8873540591440428 +checklength result_2 -l 6.8873330997321212 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug27079_2 b/tests/lowalgos/intss/bug27079_2 new file mode 100644 index 0000000000..99ea9b7bcd --- /dev/null +++ b/tests/lowalgos/intss/bug27079_2 @@ -0,0 +1,21 @@ +puts "============" +puts "OCC27079" +puts "============" +puts "" +################################################################## +# Bad approximation of intersection curves with variable curvature +################################################################## + +restore [locate_data_file bug27079_s3.draw] s3 +restore [locate_data_file bug27079_s4.draw] s4 + +smallview +donly s4 +fit + +intersect result s3 s4 + +checklength result_1 -l 4.2844275555620923 +checklength result_2 -l 4.2844275531269931 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug271 b/tests/lowalgos/intss/bug271 new file mode 100644 index 0000000000..d235965ee4 --- /dev/null +++ b/tests/lowalgos/intss/bug271 @@ -0,0 +1,26 @@ + +puts "========================" +puts " OCC271 " +puts "========================" +puts "" + +restore [locate_data_file OCC271a.rle] su1 +restore [locate_data_file OCC271b.rle] su2 + +set U1 2.315721254379057e-16 +set U2 0.01131870392278708 +set V1 226.9760100729095 +set V2 203.7283534809051 + +intersect result su1 su2 $U1 $V1 $U2 $V2 + +set che [whatis result] + +if { ![regexp {3d} $che] || ![regexp {curve} $che]} { + puts "Faulty OCC271: command INTERSECT works wrongly" +} else { + puts "OCC271 OK : command INTERSECT works properly" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug27175 b/tests/lowalgos/intss/bug27175 new file mode 100644 index 0000000000..7b4c6450b0 --- /dev/null +++ b/tests/lowalgos/intss/bug27175 @@ -0,0 +1,29 @@ +puts "================" +puts "OCC27175" +puts "================" +puts "" +####################################################################### +# Intersection algorithm with increased tolerance works incorrect with some shapes +####################################################################### + +set ExpectTol 3.002046539399851e-006 +set GoodNbCurv 2 + +plane pl 0.195808075898442 -0.229262227170656 4.05546403129991 0 0 1 +psphere s1 pl 0.03101752454 +restore [locate_data_file bug27128-Helix_Pipe.brep] s2 + +explode s1 f +explode s2 f + +settolerance s1_1 2.0e-6 +settolerance s2_2 2.0e-6 +bopcurves s1_1 s2_2 -2d + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves s1_1 s2_2 -2d] full Toler NbCurv + +checkreal "Tolerance Reached" ${Toler} ${ExpectTol} 0.0 0.1 + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} diff --git a/tests/lowalgos/intss/bug27190 b/tests/lowalgos/intss/bug27190 new file mode 100644 index 0000000000..c93004f9c5 --- /dev/null +++ b/tests/lowalgos/intss/bug27190 @@ -0,0 +1,66 @@ +puts "================" +puts "OCC27190" +puts "================" +puts "" +####################################################################### +# IntPatch_ImpPrmIntersection algorithm does not split intersection curve by the seam-edge of the quadric +####################################################################### + +set MaxTol 1.e-3 +set GoodNbCurv 11 + +restore [locate_data_file bug27167_pipe.brep] a1 +pcylinder a2 100 300 + +explode a1 f +explode a2 f + +set log [bopcurves a1_2 a2_1 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +set Period [dval 2*pi] + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c2d2_$i u1 u2 + + 2dcvalue c2d2_$i u1 x1 y + 2dcvalue c2d2_$i u2 x2 y + + set X1 [dval x1/$Period] + set X2 [dval x2/$Period] + + # Example: x1 = 5.3*pi, x2 = 12.8*pi ==> [x1, x2] intersects seam + if { [expr abs($X1 - $X2) > 1.0] } { + puts "Error: c2d2_$i intersects seam (0.0 or $Period): x1=[dval x1], x2=[dval x2]" + continue; + } + + set iX1 [expr floor($X1)] + set iX2 [expr floor($X2)] + + # Examples: + # 1. x1 = 5*pi/2, x2 = 3*pi ==> [x1, x2] does not intersect seam and + # ($iX1 == $iX2 == 0). I.e. if ($iX1 == $iX2) then seam is not intersected. + # 2. x1 = 3*pi, x2 = 5*pi ==> [x1, x2] intersects seam and + # ($iX1 == 1, $iX2 == 2) ==> ($iX1 != $iX2). + # 3. x1 = pi/4, x2 = 2*pi ==> [x1, x2] does not intersect seam and + # ($iX1 == 0, $iX2 == 1) ==> ($iX1 != $iX2) and ($X2 == $iX2 = 1) + if { ($iX1 != $iX2) && ($X2 != $iX2) } { + puts "Error: c2d2_$i intersects seam (0.0 or $Period): x1=[dval x1], x2=[dval x2]" + } +} + +smallview +don c_* +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug27227 b/tests/lowalgos/intss/bug27227 new file mode 100644 index 0000000000..9cfe04cdc1 --- /dev/null +++ b/tests/lowalgos/intss/bug27227 @@ -0,0 +1,68 @@ +puts "============" +puts "OCC27227" +puts "============" +puts "" +############################################################# +# Intersection curve is not continued to the surface boundary +############################################################# + +ptorus a0 100 20 +tcopy a0 a1 +trotate a1 0 0 0 1 0 0 90 + +explode a0 f +explode a1 f + +smallview +donly a0_1 a1_1 + +bopcurves a0_1 a1_1 -2d + +disp c_5 + +set log [dump c_5] + +regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles +puts "Degree=${Degree}" +puts "Poles=${Poles}" +puts "KnotsPoles=${KnotsPoles}" +puts "" + +set Pole 1 +set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" +regexp ${exp_string} ${log} full X_first Y_first Z_first + +puts "Pole=${Pole}" +puts "X_first=${X_first}" +puts "Y_first=${Y_first}" +puts "Z_first=${Z_first}" +puts "" + +set Pole ${Poles} +set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)" +regexp ${exp_string} ${log} full X_end Y_end Z_end + +puts "Pole=${Pole}" +puts "X_end=${X_end}" +puts "Y_end=${Y_end}" +puts "Z_end=${Z_end}" +puts "" + +set tol_abs [checkmaxtol a0] +set tol_rel 0.01 + +set expected_X_first 80. +checkreal "X_first" ${X_first} ${expected_X_first} ${tol_abs} ${tol_rel} +set expected_Y_first 0. +checkreal "Y_first" ${Y_first} ${expected_Y_first} ${tol_abs} ${tol_rel} +set expected_Z_first 0. +checkreal "Z_first" ${Z_first} ${expected_Z_first} ${tol_abs} ${tol_rel} +puts "" + +set expected_X_end 120. +checkreal "X_end" ${X_end} ${expected_X_end} ${tol_abs} ${tol_rel} +set expected_Y_end 0. +checkreal "Y_end" ${Y_end} ${expected_Y_end} ${tol_abs} ${tol_rel} +set expected_Z_end 0. +checkreal "Z_end" ${Z_end} ${expected_Z_end} ${tol_abs} ${tol_rel} +puts "" diff --git a/tests/lowalgos/intss/bug27252_1 b/tests/lowalgos/intss/bug27252_1 new file mode 100644 index 0000000000..c2bf3c97d3 --- /dev/null +++ b/tests/lowalgos/intss/bug27252_1 @@ -0,0 +1,37 @@ +puts "============" +puts "OCC27252" +puts "============" +puts "" +####################################################################### +# Implicit-implicit intersection (Cylinder-Plane) loses intersection curve +####################################################################### + +set GoodNbCurv 1 +set MaxTol 1.0e-7 + +restore [locate_data_file bug27221.brep] a +explode a +mkplane f a_2 +prism p f -25 0 0 +explode a_1 f +explode p f +don a_1_7 p_3 + +set log [bopcurves a_1_7 p_3 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +smallview +don c_* +fit +display a_1_7 p_3 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug27263 b/tests/lowalgos/intss/bug27263 new file mode 100644 index 0000000000..f6c316ede9 --- /dev/null +++ b/tests/lowalgos/intss/bug27263 @@ -0,0 +1,34 @@ +puts "================" +puts "OCC27263" +puts "================" +puts "" +####################################################################### +# Regression vs 6.9.1: Exception is raised during intersection of two faces +####################################################################### + +set MaxTol 1.e-7 +set GoodNbCurv 1 + +restore [locate_data_file bug27262_cmpd.brep] b +explode b + +smallview +explode b_1 f +don b_1_27 b_2 +fit + +set log [bopcurves b_1_27 b_2 -2d] + +regexp {Tolerance Reached=+([-0-9.+ee]+)\n+([-0-9.+ee]+)} ${log} full Toler NbCurv + +if {${Toler} > ${MaxTol}} { + puts "Error: Tolerance is too big!" +} + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Curve Number is bad!" +} + +checklength c_1 -l 2.9620641619623407 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug27269 b/tests/lowalgos/intss/bug27269 new file mode 100644 index 0000000000..66f5e7e3a3 --- /dev/null +++ b/tests/lowalgos/intss/bug27269 @@ -0,0 +1,40 @@ +puts "============" +puts "OCC27269" +puts "============" +puts "" +############################### +## Intersection algorithm produces null-length curve +############################### + + +restore [locate_data_file bug27267_cmpd.brep] a +explode a f + +smallview +don a_7; fit +disp a_1 + +############################# +set log [bopcurves a_1 a_7 -2d] +############################# + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +for {set i 1} {$i <= ${NbCurv}} {incr i} { + bounds c_$i U1 U2 + + dump U1 U2 + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + set le [length c_$i] + regexp "The length c_$i is +(\[-0-9.+eE\]+)" ${le} full ll + + if { $ll < 1.0e-7 } { + puts "Error: Curve c_$i is too small!" + } +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug27282_2 b/tests/lowalgos/intss/bug27282_2 new file mode 100644 index 0000000000..1d908cc99b --- /dev/null +++ b/tests/lowalgos/intss/bug27282_2 @@ -0,0 +1,45 @@ +puts "============" +puts "OCC27282" +puts "============" +puts "" +############################### +## [Regression to 6.9.1] smesh/bugs_00/A6: Cut produces an empty shape +############################### + +set MaxTol 2.9376013151287501e-006 +set GoodNbCurv 1 + +restore [locate_data_file bug27282_cmpd.brep] a +explode a f + +smallview +don a_2 a_5 +fit + +set log [bopcurves a_2 a_5 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +checkreal ToleranceReached ${Toler} ${MaxTol} 0.0 0.1 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" + + for {set i 1} {$i < ${NbCurv}} {incr i} { + for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { + mkedge e1 c_$i + mkedge e2 c_$j + + dset dd_val 100.0*${Toler} + distmini dd e1 e2 + + if { [dval dd_val] > ${Toler} } { + puts "Error: Intersection result is not closed" + } + } + } +} else { + checklength c_1 -l 833.56846557106064 +} \ No newline at end of file diff --git a/tests/lowalgos/intss/bug27302 b/tests/lowalgos/intss/bug27302 new file mode 100644 index 0000000000..7617f184f4 --- /dev/null +++ b/tests/lowalgos/intss/bug27302 @@ -0,0 +1,48 @@ +puts "============" +puts "OCC27302" +puts "============" +puts "" +############################### +## Invalid curves number in intersection result +############################### + +set MaxTol 6.5952839365451194e-008 +set GoodNbCurv 1 + +restore [locate_data_file CTO900_pro12913a.rle] a +restore [locate_data_file CTO900_pro12913b.rle] b + +explode a f +explode b f + +smallview +don a_34 b_9 +fit + +set log [bopcurves a_34 b_9 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +checkreal ToleranceReached ${Toler} ${MaxTol} 0.0 0.1 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" + + for {set i 1} {$i < ${NbCurv}} {incr i} { + for {set j [expr $i+1]} {$j <= $NbCurv} {incr j} { + mkedge e1 c_$i + mkedge e2 c_$j + + dset dd_val 100.0*${Toler} + distmini dd e1 e2 + + if { [dval dd_val] > ${Toler} } { + puts "Error: Intersection result is not closed" + } + } + } +} else { + checklength c_1 -l 86.536841230136204 +} \ No newline at end of file diff --git a/tests/lowalgos/intss/bug27310_1 b/tests/lowalgos/intss/bug27310_1 new file mode 100644 index 0000000000..146b73dda3 --- /dev/null +++ b/tests/lowalgos/intss/bug27310_1 @@ -0,0 +1,25 @@ +puts "========" +puts "OCC27310" +puts "========" +puts "" +################################################# +# Huge tolerance obtained in the result of intersection of two cylindrical faces +################################################# + +# Number of intersection curves cannot be subject to anything (indeed, output result can be empty). +# The main reason of the bug #27310 was a HUGE TOLERANCE VALUE (TolReached > 10). +# See test "bugs moddata_2 bug496" in case of doubt. + +set ExpTol 1.0e-7 + +restore [locate_data_file OCC496a.brep] a +restore [locate_data_file OCC496b.brep] b + +explode a f +explode b f + +set log [bopcurves a_8 b_2 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +checkreal TolReached $Toler $ExpTol 0.0 0.1 \ No newline at end of file diff --git a/tests/lowalgos/intss/bug27310_2 b/tests/lowalgos/intss/bug27310_2 new file mode 100644 index 0000000000..80f3cc008c --- /dev/null +++ b/tests/lowalgos/intss/bug27310_2 @@ -0,0 +1,25 @@ +puts "========" +puts "OCC27310" +puts "========" +puts "" +################################################# +# Huge tolerance obtained in the result of intersection of two cylindrical faces +################################################# + +# Number of intersection curves cannot be subject to anything (indeed, output result can be empty). +# The main reason of the bug #27310 was a HUGE TOLERANCE VALUE (TolReached > 10). +# See test "bugs moddata_2 bug496" in case of doubt. + +set ExpTol 9.9999999999999995e-08 + +restore [locate_data_file OCC496a.brep] a +restore [locate_data_file OCC496b.brep] b + +explode a f +explode b f + +set log [bopcurves a_10 b_4 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +checkreal TolReached $Toler $ExpTol 0.0 0.1 \ No newline at end of file diff --git a/tests/lowalgos/intss/bug27431 b/tests/lowalgos/intss/bug27431 new file mode 100644 index 0000000000..5d6cb90762 --- /dev/null +++ b/tests/lowalgos/intss/bug27431 @@ -0,0 +1,66 @@ +puts "============" +puts "OCC27431" +puts "============" +puts "" +############################### +## [Regression to 6.9.1] Huge tolerance obtained during intersection of cylinder and sphere +############################### + +pload ALL + +set GoodNbCurv 4 + +restore [locate_data_file OCC13116_sh1.brep] b1 +restore [locate_data_file OCC13116_sh2.brep] b2 + +explode b1 f +explode b2 f + +set log1 [bopcurves b1_3 b2_1 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Toler NbCurv + +if { ${Toler} > 0.0005} { + puts "Error: bad tolerance of result" +} + +smallview +don b1_3 b2_1 c_* +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d_1.png + +v2d +don c2d* +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d_1.png + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} + +# increasing tolerance values of the faces on Precision::Confusion() +# dramatically increased (before fixing) the tolerance of +# the produced section curves + +settolerance b1_3 2.34623727264857e-007 +settolerance b2_1 2.e-7 + +set log2 [bopcurves b1_3 b2_1 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Toler NbCurv + +if { ${Toler} > 0.0005} { + puts "Error: bad tolerance of result" +} + +smallview +don b1_3 b2_1 c_* +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d_2.png + +v2d +don c2d* +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d_2.png diff --git a/tests/lowalgos/intss/bug27623 b/tests/lowalgos/intss/bug27623 new file mode 100644 index 0000000000..8c9895daf9 --- /dev/null +++ b/tests/lowalgos/intss/bug27623 @@ -0,0 +1,21 @@ +puts "TODO OCC27623 ALL: ERROR: OCC27623 is reproduced." + +puts "========" +puts "OCC27623" +puts "========" +puts "" +##################################################################### +# Cannot find intersection line between two trimmed planar surfaces +##################################################################### + +plane s1 0 0 0 0 0 1 1 0 0 +trim s1 s1 -10 10 -10 10 +plane s2 0 0 10 1 0 0 0 0 1 +trim s2 s2 -10+1.0e-5 10 -10+1.0e-5 10 + +intersect ii s1 s2 4.0e-4 + +set bug_info [string trim [whatis ii]] +if {[string length $bug_info] == 7} { + puts "ERROR: OCC27623 is reproduced. Intersection of trimmed planar surface has not been detected." +} diff --git a/tests/lowalgos/intss/bug27664_1 b/tests/lowalgos/intss/bug27664_1 new file mode 100644 index 0000000000..3cddf671ed --- /dev/null +++ b/tests/lowalgos/intss/bug27664_1 @@ -0,0 +1,56 @@ +puts "========" +puts "OCC27664" +puts "========" +puts "" +################################################# +# Incomplete intersection curve from the attached shapes +################################################# + +set ExpTol 1.1e-7 +set GoodNbCurv 3 +set GoodLength 0.6288896355727489 + +restore [locate_data_file bug27664_pl0.brep] pl0 +restore [locate_data_file bug27664_nsh_8.brep] nsh_8 +explode nsh_8 f +explode pl0 f + +set log [bopcurves pl0_1 nsh_8_4 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} + +checkreal TolReached $Toler $ExpTol 0.0 0.1 + +set clen 0.0 + +for {set ic 1} { $ic <= ${NbCurv} } { incr ic} { + + set le [length c_$ic] + regexp "The length c_$ic is +(\[-0-9.+eE\]+)" ${le} full ll + + puts "ll = $ll" + + set clen [expr $clen+$ll] +} + +puts "Summary length = $clen" + +checkreal Length $clen $GoodLength 0.0 1.0e-5 + +smallview +don c_* +fit +display pl0_1 nsh_8_4 + +checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png + +top +don c_* +fit +display pl0_1 nsh_8_4 + +checkview -screenshot -2d -path ${imagedir}/${test_image}_2.png diff --git a/tests/lowalgos/intss/bug27747 b/tests/lowalgos/intss/bug27747 new file mode 100644 index 0000000000..300aabb449 --- /dev/null +++ b/tests/lowalgos/intss/bug27747 @@ -0,0 +1,60 @@ +puts "========" +puts "OCC27747" +puts "========" +puts "" +################################################# +# Incomplete section curves between faces +################################################# + +set GoodNbCurv 1 +set ToleranceReachedf1f3 6.0605798668789834e-08 +set ToleranceReachedf2f3 7.0639332021089653e-08 + +restore [locate_data_file bug27747_faces.brep] f +explode f + +# ---- + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f_1 f_3 -2d] full Toler NbCurv +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler $ToleranceReachedf1f3 0.0 0.1 + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f_2 f_3 -2d] full Toler NbCurv +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler $ToleranceReachedf2f3 0.0 0.1 + +# ---- + +settolerance f_1 1.e-7 +fixshape f1 f_1 +tolerance f1 + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f_3 -2d] full Toler NbCurv +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler $ToleranceReachedf1f3 0.0 0.1 + +# ---- + +settolerance f_2 1.e-7 +fixshape f2 f_2 +tolerance f2 + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f2 f_3 -2d] full Toler NbCurv +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler $ToleranceReachedf2f3 0.0 0.1 diff --git a/tests/lowalgos/intss/bug27766 b/tests/lowalgos/intss/bug27766 new file mode 100644 index 0000000000..c039cd8efc --- /dev/null +++ b/tests/lowalgos/intss/bug27766 @@ -0,0 +1,30 @@ +puts "========" +puts "OCC27766" +puts "========" +puts "" +################################################# +# Incorrect section curves between attached cylinders +################################################# + +set ExpTol 1.0e-7 +set GoodNbCurv 3 + +restore [locate_data_file bug27761_c1.brep] c1 +restore [locate_data_file bug27761_c2.brep] c2 + +set log [bopcurves c1 c2 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {${NbCurv} != ${GoodNbCurv}} { + puts "Error: Number of curves is bad!" +} + +checkreal TolReached $Toler $ExpTol 0.0 0.1 + +smallview +don c_* +fit +disp c1 c2 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug27780 b/tests/lowalgos/intss/bug27780 new file mode 100644 index 0000000000..4df90be0a9 --- /dev/null +++ b/tests/lowalgos/intss/bug27780 @@ -0,0 +1,33 @@ +puts "============" +puts "OCC27780" +puts "============" +puts "" +###################################################### +# Face-face intersection produces 2D curve that has reversed derivative at its end +###################################################### + +restore [locate_data_file buc60532a.brep] p +restore [locate_data_file buc60532b.brep] t1 +explode t1 f + +bopcurves p t1_2 -2d -p 6.2406621764215551 0.23999999463558200 0.00034444887595448459 -5.0019657458625186 + +pcurve p +trim c c2d1_1 0 1 +2dcvalue c 0 u0 v0 +2dcvalue c 1 u1 v1 du dv +dset u01 u1-u0 +dset v01 v1-v0 +dset dot u01*du+v01*dv + +if {[dval dot] < 0} { + puts "Error: p-curve has reversed direction at its end" +} else { + puts "OK: p-curve has correct direction at its end" +} + +view 1 -2D- 728 450 400 400 +don p_* c +2dfit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug27842 b/tests/lowalgos/intss/bug27842 new file mode 100644 index 0000000000..e55c77dcff --- /dev/null +++ b/tests/lowalgos/intss/bug27842 @@ -0,0 +1,29 @@ +puts "============" +puts "OCC27842" +puts "============" +puts "" +###################################################### +# Exception in intersection algorithm if FPE is switched on +###################################################### + +dsetsignal 1 + +restore [locate_data_file bug27842_shape1_fix.brep] b1 +restore [locate_data_file bug27842_shape2_fix.brep] b2 + +explode b2 f + +bopcurves b1 b2_33 -2d + +bcommon result b1 b2 + +checknbshapes result -wire 3 -face 1 + +checkshape result + +checkprops result -s 10.8848 + +smallview; +donly result +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug27856_2 b/tests/lowalgos/intss/bug27856_2 new file mode 100644 index 0000000000..aabc7a1671 --- /dev/null +++ b/tests/lowalgos/intss/bug27856_2 @@ -0,0 +1,118 @@ +puts "========" +puts "OCC27856" +puts "========" +puts "" +################################################# +# Regression vs 6.7.1: General Fuse operation fails to fuse the solids +################################################# + +# Before the fix, EMPTY result (no points, no curves) +# was returned in every considered case. + +restore [locate_data_file bug27856_int_solids.brep] b + +explode b so + +# first pair of solids +explode b_1 f +explode b_2 f + +# ---- + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_1_2 b_2_2 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 0.00026207823091004516 0.0 1.0e-3 + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_1_4 b_2_4 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 6.5053102894636701e-005 0.0 1.0e-2 + +# ---- + +# second pair of solids + +explode b_3 f +explode b_4 f + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_3_2 b_4_2 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 0.00029706239430643614 0.0 1.0e-3 + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_3_4 b_4_4 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 0.00029242389138280588 0.0 1.0e-3 + +# ---- + +# third pair of solids + +explode b_5 f +explode b_6 f + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_5_2 b_6_2 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 1.4980089259007279e-005 0.0 1.0e-2 + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_5_4 b_6_4 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 0.00023417493528435788 0.0 1.0e-3 + +# ---- + +# fourth pair of solids + +explode b_7 f +explode b_8 f + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_7_2 b_8_2 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 0.00027445924390073518 0.0 1.0e-3 + +# ---- + +set Toler 0.0 +set NbCurv 0 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b_7_4 b_8_4 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} +checkreal TolReached $Toler 1.867918118939262e-005 0.0 1.0e-2 + diff --git a/tests/lowalgos/intss/bug27896 b/tests/lowalgos/intss/bug27896 new file mode 100644 index 0000000000..427933f325 --- /dev/null +++ b/tests/lowalgos/intss/bug27896 @@ -0,0 +1,40 @@ +puts "============" +puts "OCC27896" +puts "============" +puts "" +############################### +## Prm-Prm intersection algo returns wrong result if it is called with start +## intersection point, which lies in the domain boundary +############################### + +set tol_abs_Tolerance_Reached 1.0e-7 +set tol_rel_Tolerance_Reached 0.1 +set GoodNbCurves 2 + +restore [locate_data_file bug25319_S1.brep] b1 +restore [locate_data_file bug25319_S2.brep] b2 +explode b1 f +explode b2 f + +# GOOD result before the fix +set log1 [bopcurves b1_8 b2_17 -2d -p +1.09444207768950010000 +29.00000000000000000000 +0.17740001678466785000 +2.79671571032639710000 -p +0.00000000000000000000 +26.87779254288926400000 +0.17767342824312710000 +2.80622040022304510000] + +# BAD result before the fix +set log2 [bopcurves b1_8 b2_17 -2d -p +1.09444207768949960000 +29.00000000000000000000 +0.17740001678466785000 +2.79671571032639750000 -p +0.00000000000000000000 +26.87779254288926400000 +0.17767342824312710000 +2.80622040022304510000] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Tolerance_Reached1 NbCurv1 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Tolerance_Reached2 NbCurv2 + +set expected_Tolerance_Reached1 2.2611960020325053e-007 +set expected_Tolerance_Reached2 5.0364838664362801e-006 + +checkreal "Tolerance Reached" ${Tolerance_Reached1} ${expected_Tolerance_Reached1} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} +checkreal "Tolerance Reached" ${Tolerance_Reached2} ${expected_Tolerance_Reached2} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached} + +if { $NbCurv1 != $GoodNbCurves } { + puts "Error in case 1: $GoodNbCurves curve(s) is expected but $NbCurv1 is found" +} + +if { $NbCurv2 != $GoodNbCurves } { + puts "Error in case 2: $GoodNbCurves curve(s) is expected but $NbCurv2 is found" +} diff --git a/tests/lowalgos/intss/bug27937_1 b/tests/lowalgos/intss/bug27937_1 new file mode 100644 index 0000000000..d4337ee9a9 --- /dev/null +++ b/tests/lowalgos/intss/bug27937_1 @@ -0,0 +1,76 @@ +puts "================" +puts "OCC27937" +puts "================" +puts "" +####################################################################### +# 0027937: Intersector loops infinitely while proceeding two simple surfaces +####################################################################### + +cpulimit 100 + +# Attention!!! +# The test on performance meter. +# See issue #27937 for detail. +set GoodNbCurv 4 + +restore [locate_data_file bug27937_int1.draw] s1 +restore [locate_data_file bug27937_int2.draw] s2 + +intersect result s1 s2 + +set che [whatis result] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "result" exists + renamevar result result_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis result_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + display result_$ic + + bounds result_$ic U1 U2 + + dump U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs result_$ic s1 U1 U2 10 3.0e-5 + xdistcs result_$ic s2 U1 U2 10 1.0e-5 + + for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { + mkedge e1 result_$ic + mkedge e2 result_$ip + + set coe [checkoverlapedges e1 e2 5.0e-5] + + puts "result_$ic <-> result_$ip: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: result_$ic and result_$ip are overlaped" + } + } + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" +} + +smallview +don result* +fit +clear +don s1 s2 result* +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug27937_2 b/tests/lowalgos/intss/bug27937_2 new file mode 100644 index 0000000000..00032ca121 --- /dev/null +++ b/tests/lowalgos/intss/bug27937_2 @@ -0,0 +1,77 @@ +puts "================" +puts "OCC27937" +puts "================" +puts "" +####################################################################### +# 0027937: Intersector loops infinitely while proceeding two simple surfaces +####################################################################### + +cpulimit 100 + +# Attention!!! +# The test on performance meter. +# See issue #27937 for detail. +set GoodNbCurv 4 + +ellipse c1 0 0 0 0 0 1 6.03031367203927 3.11993062568844 +extsurf s1 c1 0 0 1 +cylinder s2 0 0 0 1 0 0 0.249128788767645 + +intersect result s1 s2 + +set che [whatis result] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "result" exists + renamevar result result_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis result_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + display result_$ic + + bounds result_$ic U1 U2 + + dump U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs result_$ic s1 U1 U2 10 4.0e-5 + xdistcs result_$ic s2 U1 U2 10 1.0e-5 + + for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { + mkedge e1 result_$ic + mkedge e2 result_$ip + + set coe [checkoverlapedges e1 e2 5.0e-5] + + puts "result_$ic <-> result_$ip: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: result_$ic and result_$ip are overlaped" + } + } + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but [expr {$ic - 1}] is found!" +} + +smallview +don result* +fit +clear +don s1 s2 result* +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug27950 b/tests/lowalgos/intss/bug27950 new file mode 100644 index 0000000000..5c08e6c018 --- /dev/null +++ b/tests/lowalgos/intss/bug27950 @@ -0,0 +1,59 @@ +puts "TODO OCC27950 ALL: ERROR: OCC27950 is reproduced." + +puts "========" +puts "OCC27950" +puts "========" +puts "" +############################################################################ +# Result of intersection algorithm depends too much on surface trim bounds +############################################################################ + +restore [locate_data_file bug27950_s1.draw] s1 +restore [locate_data_file bug27950_s2.draw] s2 + +set bug_info [string trim [intersect i1 s1 s2]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #1. Result of intersection is [llength $bug_info]." +} + +trimv s2t s2 200 300 +set bug_info [string trim [intersect i2 s1 s2t]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #2. Result of intersection is [llength $bug_info]." +} + +trimv s2t s2 200 220 +set bug_info [string trim [intersect i3 s1 s2t]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #3. Result of intersection is [llength $bug_info]." +} + +trimv s2t s2 205.38050051360744 210.55652011282123 +set bug_info [string trim [intersect i4 s1 s2t]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #4. Result of intersection is [llength $bug_info]." +} + +trimv s2t s2 205 211 +set bug_info [string trim [intersect i5 s1 s2t]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #5. Result of intersection is [llength $bug_info]." +} + +trimv s2t s2 206 210 +set bug_info [string trim [intersect i6 s1 s2t]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #6. Result of intersection is [llength $bug_info]." +} + +trimv s2t s2 205.4 210.575 +set bug_info [string trim [intersect i7 s1 s2t]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #7. Result of intersection is [llength $bug_info]." +} + +trimv s2t s2 205.353 210.529 +set bug_info [string trim [intersect i8 s1 s2t]] +if {[llength $bug_info] != 4} { + puts "ERROR: OCC27950 is reproduced. Step #8. Result of intersection is [llength $bug_info]." +} diff --git a/tests/lowalgos/intss/bug28009_2 b/tests/lowalgos/intss/bug28009_2 new file mode 100644 index 0000000000..ae76e71855 --- /dev/null +++ b/tests/lowalgos/intss/bug28009_2 @@ -0,0 +1,31 @@ +puts "================" +puts "OCC28009" +puts "================" +puts "" +####################################################################### +# [Regression vs OCCT7.0.0] Cut produces not valid shape +####################################################################### + +set NbCurvGood 1 +set ExpToler 5.441959818453312e-008 + +restore [locate_data_file bug28009_shape.brep] a + +explode a + +explode a_1 f +explode a_2 f + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves a_1_6 a_2_1 -2d] full Toler NbCurv +if {${NbCurv} != 1} { + puts "Error: Number of curves is bad!" +} + +checkreal TolReached $Toler $ExpToler 0.0 0.1 + +smallview +don c_* +fit +display a_1_6 a_2_1 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28012 b/tests/lowalgos/intss/bug28012 new file mode 100644 index 0000000000..6b92339a5a --- /dev/null +++ b/tests/lowalgos/intss/bug28012 @@ -0,0 +1,17 @@ +puts "========" +puts "OCC28012" +puts "========" +puts "" +################################################# +# Exception while intersecting two surfaces +################################################# + +restore [locate_data_file bug28012_s1.draw] s1 +restore [locate_data_file bug28012_s2.draw] s2 + +intersect result s1 s2 0.00012162815337817315 0.0010404164685680738 0.99999999999999989 0.22068942273845651 + +smallview +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28085_2 b/tests/lowalgos/intss/bug28085_2 new file mode 100644 index 0000000000..a4ef28b2db --- /dev/null +++ b/tests/lowalgos/intss/bug28085_2 @@ -0,0 +1,33 @@ +puts "============" +puts "OCC28085: Incorrect result of CUT operation" +puts "============" +puts "" + +foreach a [directory c_*] {unset $a} + +# enable FPE signals +dsetsignal 1 + +restore [locate_data_file bug28883_Prism.brep] b1 +restore [locate_data_file bug28883_LES_2d_shell.brep] b2 + +explode b1 f +explode b2 f + + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_74 b2_13 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.0 1.0e-7 0.0 + +if {$NbCurv != 1} { + puts "Error: Please check NbCurves for intersector" +} else { + puts "OK: good number of curves!" + checklength c_1 -l 0.036019405388914391 -eps 1.0e-3 +} + +don c_* +smallview; fit; +disp b1_74 b2_13 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28222_1 b/tests/lowalgos/intss/bug28222_1 new file mode 100644 index 0000000000..d6bf565cb7 --- /dev/null +++ b/tests/lowalgos/intss/bug28222_1 @@ -0,0 +1,45 @@ +puts "================" +puts "OCC28222" +puts "================" +puts "" +####################################################################### +# Intersection of two cylinders fails +####################################################################### + +dsetsignal 1 + +set GoodNbCurv 4 + +foreach c [directory result*] { + unset $c +} + +restore [locate_data_file bug28222_s1_cyl_read_d2.draw] s1 +restore [locate_data_file bug28222_s2_cyl_read_d2.draw] s2 + +intersect result s1 s2 + +foreach c [directory result*] { + bounds $c U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs $c s1 U1 U2 10 2.0e-7 + xdistcs $c s2 U1 U2 10 2.0e-7 +} + +set NbCurv [llength [directory result*]] + +if { $NbCurv == $GoodNbCurv } { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but $NbCurv is found!" +} + +smallview +don result* +fit +disp s1 s2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28222_2 b/tests/lowalgos/intss/bug28222_2 new file mode 100644 index 0000000000..3fd838d958 --- /dev/null +++ b/tests/lowalgos/intss/bug28222_2 @@ -0,0 +1,45 @@ +puts "================" +puts "OCC28222" +puts "================" +puts "" +####################################################################### +# Intersection of two cylinders fails +####################################################################### + +dsetsignal 1 + +set GoodNbCurv 4 + +foreach c [directory result*] { + unset $c +} + +cylinder s1 -35 13.3706576198285 30.5814570420266 0 -0.258819045102521 -0.965925826289068 0 0.965925826289068 -0.258819045102521 11 +cylinder s2 0 0 0 1 0 0 0 0 -1 16.5 + +intersect result s1 s2 + +foreach c [directory result*] { + bounds $c U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs $c s1 U1 U2 10 2.0e-7 + xdistcs $c s2 U1 U2 10 2.0e-7 +} + +set NbCurv [llength [directory result*]] + +if { $NbCurv == $GoodNbCurv } { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but $NbCurv is found!" +} + +smallview +don result* +fit +disp s1 s2 +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28222_3 b/tests/lowalgos/intss/bug28222_3 new file mode 100644 index 0000000000..3e1f0ac0f4 --- /dev/null +++ b/tests/lowalgos/intss/bug28222_3 @@ -0,0 +1,46 @@ +puts "================" +puts "OCC28222" +puts "================" +puts "" +####################################################################### +# Intersection of two cylinders fails +####################################################################### + +dsetsignal 1 + +set GoodNbCurv 2 + +foreach c [directory result*] { + unset $c +} + +cylinder s1 -9 -5 -2.2058 0 -1 0 0.001 +cylinder s2 0 0 -2.2058 0 0 -1 9 + +intersect result s1 s2 + +foreach c [directory result*] { + bounds $c U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs $c s1 U1 U2 10 2.0e-7 + xdistcs $c s2 U1 U2 10 2.0e-7 +} + +set NbCurv [llength [directory result*]] + +if { $NbCurv == $GoodNbCurv } { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv is expected but $NbCurv is found!" +} + +smallview +don result* +fit +don s1 s2 +disp result* +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28406 b/tests/lowalgos/intss/bug28406 new file mode 100644 index 0000000000..db15b367f6 --- /dev/null +++ b/tests/lowalgos/intss/bug28406 @@ -0,0 +1,31 @@ +puts "TODO 0028406 ALL: Error: MaxTolerance" + +puts "=======" +puts "0028406" +puts "=======" +puts "" +####################################################### +# High tolerances after boolean operation on OCCT 6.9.1 +####################################################### + +restore [locate_data_file bug28406_ar_shape_to_cuts.brep] b1 +restore [locate_data_file bug28406_ar_cutting_shapes.brep] b2 + +explode b2 f + +set log_1 [bopcurves b1 b2_1 -2d] +regexp {Tolerance Reached=([-0-9.+eE]+)} $log_1 full tol_reached_1 + +set log_2 [bopcurves b1 b2_7 -2d] +regexp {Tolerance Reached=([-0-9.+eE]+)} $log_2 full tol_reached_2 + +set log_3 [maxtolerance b2] +regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $log_3 full MaxFaceTolerance + + +set ToleranceReached-6-9-1_1 0.044936986074371126 +set ToleranceReached-6-9-1_2 0.024455156919182791 +set tol_rel_MaxTol 0.0001 + +checkreal "MaxTolerance 2_1 " ${tol_reached_1} ${ToleranceReached-6-9-1_1} ${MaxFaceTolerance} ${tol_rel_MaxTol} +checkreal "MaxTolerance 2_7 " ${tol_reached_2} ${ToleranceReached-6-9-1_2} ${MaxFaceTolerance} ${tol_rel_MaxTol} diff --git a/tests/lowalgos/intss/bug28493 b/tests/lowalgos/intss/bug28493 new file mode 100644 index 0000000000..f05c911fdb --- /dev/null +++ b/tests/lowalgos/intss/bug28493 @@ -0,0 +1,36 @@ +puts "========" +puts "0028493: Intersection algorithm produces curve with loop" +puts "========" +puts "" + +foreach a [directory c*] {unset $a} + +restore [locate_data_file bug28491_H0.brep] h0 +restore [locate_data_file bug28491_Prism.brep] s1 +explode h0 f + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves h0_57 s1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 1.2073645369286468e-08 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +#check whether the curves have a loop +for { set ic 1 } { $ic <= $NbCurv } {incr ic} { + bounds c_$ic U1 U2 + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + continue + } + + CheckLoops c_$ic 0.86602540378443864676372317075294 +} + +smallview +don c_* +fit +disp h0_57 s1 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug28544_2 b/tests/lowalgos/intss/bug28544_2 new file mode 100644 index 0000000000..2a6c66aabf --- /dev/null +++ b/tests/lowalgos/intss/bug28544_2 @@ -0,0 +1,22 @@ +puts "TODO OCC28544 ALL: Error: Big tolerance value is returned by Implicit-parametric algorithm" + +puts "========" +puts "OCC28544" +puts "========" +puts "" +################################################################## +# Big tolerance value is returned by Implicit-parametric algorithm +################################################################## + +restore [locate_data_file heal-Face1.rle] b1 +restore [locate_data_file Plan.rle] b2 + +set log_1 [bopcurves b1 b2 -2d] +regexp {Tolerance Reached=([-0-9.+eE]+)} $log_1 full tol_reached + +set log_2 [maxtolerance b1] +regexp { +Face +: +Min +([-0-9.+eE]+) +Max +([-0-9.+eE]+)} $log_2 full MinFaceTolerance MaxFaceTolerance + +if { ${tol_reached} > ${MaxFaceTolerance} } { + puts "Error: Big tolerance value is returned by Implicit-parametric algorithm" +} diff --git a/tests/lowalgos/intss/bug28557 b/tests/lowalgos/intss/bug28557 new file mode 100644 index 0000000000..b878a85fd0 --- /dev/null +++ b/tests/lowalgos/intss/bug28557 @@ -0,0 +1,33 @@ +puts "========" +puts "OCC28557" +puts "========" +puts "" +################################################# +# Test case bugs modalg_6 bug27615 works differently on VC10 and VC12 +################################################# + +set MaxTolReached 5.0e-6 +set GoodNbCurv 1 + +brestore [locate_data_file bug27615.brep] b +explode b f +copy b_1 f1; copy b_19 f2; +don f1 f2 +set log [bopcurves f1 f2 -2d -p 2.2023968513463648 29.150590232723459 2. 0.085664915040461045 -p 2.2023968513457164 31.082210390953925 2.9507808705284453 0.085823752287563393] + +smallview +donly c_1 +fit +disp f1 f2 + +checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {$Toler > $MaxTolReached} { + puts "Error: Big tolerance is returned by intersector" +} + +if {$NbCurv != $GoodNbCurv} { + puts "Error: Please check NbCurves for intersector" +} diff --git a/tests/lowalgos/intss/bug286 b/tests/lowalgos/intss/bug286 new file mode 100644 index 0000000000..1f95128aa9 --- /dev/null +++ b/tests/lowalgos/intss/bug286 @@ -0,0 +1,28 @@ +puts "TODO OCC12345 ALL: Faulty OCC286: Attempt to project the point on surface gives wrong result." +puts "========================" +puts " OCC286 " +puts "========================" +puts "" + +restore [locate_data_file OCC286a.draw] a +restore [locate_data_file OCC286b.draw] b + +intersect i a b +cvalue i 0.31 x y z +point p x y z +proj b x y z + +set err1 "" +set err2 "" +set err3 "" +regexp {Point +: +([-0-9.+eE]+, +[-0-9.+eE]+, +[-0-9.+eE]+)} [dump ext_1] full err1 +regexp {Point +: +([-0-9.+eE]+, +[-0-9.+eE]+, +[-0-9.+eE]+)} [dump ext_2] full err2 +regexp {Point +: +([-0-9.+eE]+, +[-0-9.+eE]+, +[-0-9.+eE]+)} [dump ext_3] full err3 + +if { $err1 == $err2 || $err1 == $err3 || $err2 == $err3 } { + puts "Faulty OCC286: Attempt to project the point on surface gives wrong result." +} else { + puts "OCC286 OK : Attempt to project the point on surface gives correct result" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28718 b/tests/lowalgos/intss/bug28718 new file mode 100644 index 0000000000..ee83596057 --- /dev/null +++ b/tests/lowalgos/intss/bug28718 @@ -0,0 +1,34 @@ +puts "========" +puts "OCC28718" +puts "========" +puts "" +################################################# +# Section result has a break +################################################# + +restore [locate_data_file bug28718_bulk_1.brep] b1 +restore [locate_data_file bug28718_hull.brep] b2 + +#### + +explode b1 f +explode b2 f +axo +don b2_61 +fit + +set log [bopcurves b1_1 b2_61 -2d] + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv +checkreal TolReached $Toler 3.589120933029448e-08 0.0 0.1 + +nurbsconvert ff b2_61 +set log [bopcurves b1_1 ff -2d] +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv +checkreal TolReached $Toler 3.9019558966741645e-08 0.0 0.1 + +bsection result b1 b2 + +checkprops result -l 19.1199 + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28764 b/tests/lowalgos/intss/bug28764 new file mode 100644 index 0000000000..25c5de6a8d --- /dev/null +++ b/tests/lowalgos/intss/bug28764 @@ -0,0 +1,27 @@ +puts "========" +puts "OCC28764" +puts "========" +puts "" +################################################# +# [Regression to 7.0] Intersection of faces gives exception in debug mode +################################################# + +restore [locate_data_file bug28764_ff.brep] f +explode f + +#### + +axo +don f +fit + +# Before the fix: Exception in Debug-mode only +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f_1 f_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 4.601149532364662e-008 1.0e-7 0.0 + +if {$NbCurv != 1} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug28984 b/tests/lowalgos/intss/bug28984 new file mode 100644 index 0000000000..b8f120fd66 --- /dev/null +++ b/tests/lowalgos/intss/bug28984 @@ -0,0 +1,23 @@ +puts "=======" +puts "0028984" +puts "=======" +puts "" +################################################## +# Huge intersection tolerance obtained by Face/Face intersection algorithm +################################################## + +binrestore [locate_data_file bug28984_faces.bin] f + +explode f + +set log [bopcurves f_1 f_2 -2d] +regexp {Tolerance Reached=([-0-9.+eE]+)} $log full tol_reached +regexp {([1-9]) curve} $log full nb_curves + +if {$nb_curves != 2} { + puts "Error: Invalid number of curves" +} + +if {$tol_reached > 0.01} { + puts "Error: Too big intersection tolerance" +} \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29103 b/tests/lowalgos/intss/bug29103 new file mode 100644 index 0000000000..33bc06ccc7 --- /dev/null +++ b/tests/lowalgos/intss/bug29103 @@ -0,0 +1,56 @@ +puts "========" +puts "OCC29103" +puts "========" +puts "" +################################################# +# No intersection curve between faces if starting points are given +################################################# + +set MaxTolReached 2.0e-7 +set GoodNbCurv 1 +set ExpLength 0.074141742883251954 + +restore [locate_data_file bug29073_M6.brep] a +restore [locate_data_file bug29073_Shell.brep] b +explode a f +explode b f + +don b_2 +axo +fit +disp a_6 + +set log1 [bopcurves a_6 b_2 -2d] + +checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png +checklength c_1 -l $ExpLength + +don b_2 +axo +fit +disp a_6 + +set log2 [bopcurves a_6 b_2 -2d -p -0.55478319275098653 1.2919191091235780 0.80333089657224976 0.67079577554162440 -p -0.62451407353846222 1.2667484772947102 0.82894736842100003 0.70523311453721027] + +checkview -screenshot -2d -path ${imagedir}/${test_image}_2.png +checklength c_1 -l $ExpLength + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Toler1 NbCurv1 +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Toler2 NbCurv2 + +if {$Toler1 > $MaxTolReached} { + puts "Error: Big tolerance is returned by intersector w/o start points" +} + +if {$Toler2 > $MaxTolReached} { + puts "Error: Big tolerance is returned by intersector with start points" +} + +if {$NbCurv1 != $GoodNbCurv} { + puts "Error: Please check NbCurves for intersector w/o start points" +} + +if {$NbCurv2 != $GoodNbCurv} { + puts "Error: Please check NbCurves for intersector with start points" +} + diff --git a/tests/lowalgos/intss/bug29323 b/tests/lowalgos/intss/bug29323 new file mode 100644 index 0000000000..ca94e94891 --- /dev/null +++ b/tests/lowalgos/intss/bug29323 @@ -0,0 +1,35 @@ +puts "========" +puts "OCC29323" +puts "========" +puts "" +################################################# +# Intersection algorithm produces the curve with oscillation +################################################# + +set MaxTolReached 0.15 +set GoodNbCurv 1 +set ExpLength 96.268040111795571 + +restore [locate_data_file bug29323_hb.brep] h +plane p 0 0 4 0 0 1 +mkface f p -200 200 -200 200 +explode h f + +set log [bopcurves h_4 f -2d] + +smallview +donly c_1 +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png +checklength c_1 -l $ExpLength + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv + +if {$Toler > $MaxTolReached} { + puts "Error: Big tolerance is returned by intersector" +} + +if {$NbCurv != $GoodNbCurv} { + puts "Error: Please check NbCurves for intersector" +} \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29494 b/tests/lowalgos/intss/bug29494 new file mode 100644 index 0000000000..65c7b79ce6 --- /dev/null +++ b/tests/lowalgos/intss/bug29494 @@ -0,0 +1,35 @@ +puts "========" +puts "OCC29494" +puts "========" +puts "" +################################################# +# Intersection line between two parametric surfaces is restricted incorrectly if it matches +# the surface boundary +################################################# + +restore [locate_data_file bug29488_shapes.brep] s +explode s + +explode s_4 f; copy s_4_13 f1 +explode s_6 f; copy s_6_18 f2 + +smallview +clear +bopcurves f1 f2 -2d + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv + +if {$Toler > 1.0e-7} { + puts "Error: Big tolerance is returned by intersector" +} + +if {$NbCurv != 1} { + puts "Error: Please check NbCurves for intersector" +} else { + checklength c_1 -l 19.2 +} + +fit +disp f1 f2 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug29807_i1001 b/tests/lowalgos/intss/bug29807_i1001 new file mode 100644 index 0000000000..cc3136e67c --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i1001 @@ -0,0 +1,26 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +explode b1 f +explode b2 f +smallview +don b1_5 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.00015253053837904724 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i1002 b/tests/lowalgos/intss/bug29807_i1002 new file mode 100644 index 0000000000..544cbab320 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i1002 @@ -0,0 +1,29 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +removeloc b2 b2 + +explode b1 f +explode b2 f +smallview +don b1_5 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.00039718358540697849 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i1003 b/tests/lowalgos/intss/bug29807_i1003 new file mode 100644 index 0000000000..10e841e39a --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i1003 @@ -0,0 +1,29 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +removeloc b2 b2 + +explode b1 f +explode b2 f +smallview +don b1_5 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 5.0314111870170835e-005 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i1004 b/tests/lowalgos/intss/bug29807_i1004 new file mode 100644 index 0000000000..2704a41f7f --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i1004 @@ -0,0 +1,30 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 +ttranslate b2 0 0 0.3 + +explode b1 f +explode b2 f +smallview +don b1_5 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.00011289757099748416 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i1005 b/tests/lowalgos/intss/bug29807_i1005 new file mode 100644 index 0000000000..dea1d945d0 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i1005 @@ -0,0 +1,30 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 +ttranslate b2 0 0 2 + +explode b1 f +explode b2 f +smallview +don b1_5 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 7.7125880147734232e-007 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i1006 b/tests/lowalgos/intss/bug29807_i1006 new file mode 100644 index 0000000000..037bd51620 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i1006 @@ -0,0 +1,27 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug25542_cylinder.brep] b1 +restore [locate_data_file bug25542_cone.brep] b2 + +explode b1 f +explode b2 f + +smallview +don b1_1 b2_1 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_1 b2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.0016015772839744358 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i2001 b/tests/lowalgos/intss/bug29807_i2001 new file mode 100644 index 0000000000..c1772569c3 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i2001 @@ -0,0 +1,27 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +explode b1 f +explode b2 f +nurbsconvert f1 b1_5 +smallview +don f1 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.693336906196208e-008 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i2002 b/tests/lowalgos/intss/bug29807_i2002 new file mode 100644 index 0000000000..d8edea201e --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i2002 @@ -0,0 +1,30 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +removeloc b2 b2 + +explode b1 f +explode b2 f +nurbsconvert f1 b1_5 +smallview +don f1 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.9119212307774807e-007 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i2003 b/tests/lowalgos/intss/bug29807_i2003 new file mode 100644 index 0000000000..fe3a0bc2df --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i2003 @@ -0,0 +1,30 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +removeloc b2 b2 + +explode b1 f +explode b2 f +nurbsconvert f1 b1_5 +smallview +don f1 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.412545178522274e-008 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i2004 b/tests/lowalgos/intss/bug29807_i2004 new file mode 100644 index 0000000000..00801667c4 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i2004 @@ -0,0 +1,31 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 +ttranslate b2 0 0 0.3 + +explode b1 f +explode b2 f +nurbsconvert f1 b1_5 +smallview +don f1 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.6039506888710934e-007 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i2005 b/tests/lowalgos/intss/bug29807_i2005 new file mode 100644 index 0000000000..f47081885e --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i2005 @@ -0,0 +1,31 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-tool.brep] b2 + +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 +ttranslate b2 0 0 2 + +explode b1 f +explode b2 f +nurbsconvert f1 b1_5 +smallview +don f1 b2_2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 6.4774617011651419e-006 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i2006 b/tests/lowalgos/intss/bug29807_i2006 new file mode 100644 index 0000000000..a49ca810ce --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i2006 @@ -0,0 +1,27 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug25542_cylinder.brep] b1 +restore [locate_data_file bug25542_cone.brep] b2 + +explode b1 f +explode b2 f +nurbsconvert f1 b1_1 +smallview +don f1 b2_1 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 b2_1 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 6.4791886898294872e-006 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i3001 b/tests/lowalgos/intss/bug29807_i3001 new file mode 100644 index 0000000000..a1a96b6cb8 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i3001 @@ -0,0 +1,25 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +explode b1 f +smallview +don b1_5 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.00015253053837762444 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i3002 b/tests/lowalgos/intss/bug29807_i3002 new file mode 100644 index 0000000000..627752d213 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i3002 @@ -0,0 +1,28 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +removeloc f2 f2 + +explode b1 f +smallview +don b1_5 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.00039718358530349535 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i3003 b/tests/lowalgos/intss/bug29807_i3003 new file mode 100644 index 0000000000..92f158dacf --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i3003 @@ -0,0 +1,28 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +removeloc f2 f2 + +explode b1 f +smallview +don b1_5 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 5.4742962483090032e-005 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i3004 b/tests/lowalgos/intss/bug29807_i3004 new file mode 100644 index 0000000000..67c2287e47 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i3004 @@ -0,0 +1,29 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 +ttranslate f2 0 0 0.3 + +explode b1 f +smallview +don b1_5 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 0.00011289757087827709 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i3005 b/tests/lowalgos/intss/bug29807_i3005 new file mode 100644 index 0000000000..c774db5095 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i3005 @@ -0,0 +1,29 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 +ttranslate f2 0 0 2 + +explode b1 f +smallview +don b1_5 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_5 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 7.7124681583892622e-007 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i4001 b/tests/lowalgos/intss/bug29807_i4001 new file mode 100644 index 0000000000..7348b9b28d --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i4001 @@ -0,0 +1,26 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +explode b1 f +nurbsconvert f1 b1_5 +smallview +don f1 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.6933365231971514e-008 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i4002 b/tests/lowalgos/intss/bug29807_i4002 new file mode 100644 index 0000000000..93dc8fd960 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i4002 @@ -0,0 +1,29 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +removeloc f2 f2 + +explode b1 f +nurbsconvert f1 b1_5 +smallview +don f1 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.9119209602049977e-007 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i4003 b/tests/lowalgos/intss/bug29807_i4003 new file mode 100644 index 0000000000..07f0885cb4 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i4003 @@ -0,0 +1,29 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +removeloc f2 f2 + +explode b1 f +nurbsconvert f1 b1_5 +smallview +don f1 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.4125458576041928e-008 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i4004 b/tests/lowalgos/intss/bug29807_i4004 new file mode 100644 index 0000000000..b4489f006d --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i4004 @@ -0,0 +1,30 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5 +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20 +ttranslate f2 0 0 0.3 + +explode b1 f +nurbsconvert f1 b1_5 +smallview +don f1 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 2.6068687218615023e-007 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i4005 b/tests/lowalgos/intss/bug29807_i4005 new file mode 100644 index 0000000000..3113cc5d4f --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i4005 @@ -0,0 +1,30 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +restore [locate_data_file bug29807-obj.brep] b1 +restore [locate_data_file bug29807-cone.brep] f2 + +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5 +trotate f2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38 +ttranslate f2 0 0 2 + +explode b1 f +nurbsconvert f1 b1_5 +smallview +don f1 f2 +fit + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 6.4774618953705733e-006 0.0 0.01 + +if {$NbCurv != 2} { + puts "Error: Please check NbCurves for intersector" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}_3d.png +smallview -2D- +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}_2d.png diff --git a/tests/lowalgos/intss/bug29807_i5001 b/tests/lowalgos/intss/bug29807_i5001 new file mode 100644 index 0000000000..fe0b13e0a5 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i5001 @@ -0,0 +1,70 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +puts "TODO OCC29883 ALL: Error in res_2: T=0" +puts "TODO OCC29883 ALL: Error: 0 vertices are expected but 2 are found" +puts "TODO OCC29883 ALL: Error : is WRONG because number of VERTEX entities in shape \"result\" is 3" + +foreach a [directory res*] {unset $a} + +binrestore [locate_data_file bug29807_f1.bin] f1 +binrestore [locate_data_file bug29807_f2.bin] f2 + +mksurface s1 f1 +mksurface s2 f2 + +trim s1 s1 +trim s2 s2 + +intersect res s1 s2 1.0e-4 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-7 + xdistcs res_$ic s2 U1 U2 100 2.0e-7 + + mkedge ee res_$ic + baddobjects ee + incr ic + } +} + +bfillds +bbuild result + +smallview +don result* +fit + +# Check gaps between edges in ce +checksection result -r 0 +checkmaxtol result -min_tol 2.0e-7 + +checknbshapes result -edge 2 -vertex 2 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug29807_i5002 b/tests/lowalgos/intss/bug29807_i5002 new file mode 100644 index 0000000000..e55dec57c8 --- /dev/null +++ b/tests/lowalgos/intss/bug29807_i5002 @@ -0,0 +1,60 @@ +puts "========" +puts "0029807: Impossible to cut cone from prism" +puts "========" +puts "" + +foreach a [directory res*] {unset $a} + +cone s1 11.4307383137554 3.49999999999979 -89.7537975119388 0 0 1 1 0 0 80.000725670142287835190342147806 9.45659107381736 +cone s2 -3.6479413426839 -11.578679656441 -89.9782110643133 0 0 1 0 1 0 5 0.250951325477062 + +intersect res s1 s2 1.0e-4 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-20} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-7 + xdistcs res_$ic s2 U1 U2 100 2.0e-7 + + mkedge ee res_$ic + baddobjects ee + incr ic + } +} + +bfillds +bbuild result + +smallview +don result* +fit + +# Check gaps between edges in ce +checksection result -r 0 +checkmaxtol result -min_tol 2.0e-7 + +checknbshapes result -edge 3 -vertex 3 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug29866 b/tests/lowalgos/intss/bug29866 new file mode 100644 index 0000000000..53ad0a9535 --- /dev/null +++ b/tests/lowalgos/intss/bug29866 @@ -0,0 +1,73 @@ +puts "================" +puts "OCC29866: Intersector returns two overlapped curves as a result" +puts "================" +puts "" + +set GoodNbCurv 1 + +binrestore [locate_data_file bug29866_sur1.bin] f1 +binrestore [locate_data_file bug29866_sur2.bin] f2 + +mksurface s1 f1 +mksurface s2 f2 +trim s2 s2 + +intersect result s1 s2 + +set che [whatis result] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "result" exists + renamevar result result_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis result_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + display result_$ic + + bounds result_$ic U1 U2 + + dump U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs result_$ic s1 U1 U2 10 4.0e-5 + xdistcs result_$ic s2 U1 U2 10 1.0e-5 + + for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { + mkedge e1 result_$ic + mkedge e2 result_$ip + + set coe [checkoverlapedges e1 e2 5.0e-5] + + puts "result_$ic <-> result_$ip: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: result_$ic and result_$ip are overlaped" + } + } + + incr ic + } +} + +if {[expr {$ic - 1}] == $GoodNbCurv} { + puts "OK: Number of curves is good!" + checklength result_1 -l 2.6307272714501035 +} else { + puts "Error: $GoodNbCurv curves are expected but [expr {$ic - 1}] are found!" +} + +smallview +don result* +fit +clear +don s1 s2 result* +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29910_2 b/tests/lowalgos/intss/bug29910_2 new file mode 100644 index 0000000000..178efaaada --- /dev/null +++ b/tests/lowalgos/intss/bug29910_2 @@ -0,0 +1,37 @@ +puts "========" +puts "OCC29910: Porting to Debian80-64 : Regressions in Modeling Algorithms" +puts "========" +puts "" + +# Different result between Debian 7 and Debian 8 and between MSVC 2010 and 2017. +puts "TODO ?OCC29910 Windows: Error: Tolerance = 4.0169383828521568e-006 is not equal to expected" +puts "TODO ?OCC29910 Linux: Error: Tolerance = 6.0392296447644325e-07 is not equal to expected" +puts "TODO ?OCC29910 ALL: Error : is WRONG because number of VERTEX entities in shape \"result\" is 7" +puts "TODO ?OCC29910 ALL: Error : is WRONG because number of EDGE entities in shape \"result\" is 5" + +restore [locate_data_file bug29910_f1.brep] f1 +restore [locate_data_file bug29910_f2.brep] f2 + +regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves f1 f2 -2d] full Toler NbCurv + +checkreal Tolerance $Toler 1.0e-7 1.0e-7 0.0 + +if {$NbCurv != 4} { + puts "Error: Please check NbCurves for intersector" +} + +bsection result f1 f2 +checksection result -r 4 +checkshape result +checknbshapes result -edge 4 -vertex 6 +checkprops result -l 97.2011 + +if {[regexp "Faulties" [bopargcheck result]]} { + puts "Error: bopargcheck has found some faulties in result" +} + +smallview +don result +fit + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug29972_1 b/tests/lowalgos/intss/bug29972_1 new file mode 100644 index 0000000000..3e14357e2b --- /dev/null +++ b/tests/lowalgos/intss/bug29972_1 @@ -0,0 +1,65 @@ +puts "========" +puts "OCC29972: Intersection curve has a weird gap in the middle of it" +puts "========" +puts "" + +set GoodNbCurves 2 + +foreach a [directory res*] {unset $a} + +restore [locate_data_file bug29972_s1.draw] s1 +cylinder s2 -120 54.2955104312028 -116 1 0 0 0 0 -1 28 + +intersect res s1 s2 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-6 + xdistcs res_$ic s2 U1 U2 100 2.0e-6 + + mkedge ee res_$ic + baddobjects ee + + incr ic + } +} + +# Check of gaps between intersection curves +bfillds +bbuild rs + +checknbshapes rs -edge $GoodNbCurves +checksection rs -r 0 + +smallview +don res_* + +fit +don s1 s2 +clpoles s1 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29972_2 b/tests/lowalgos/intss/bug29972_2 new file mode 100644 index 0000000000..ecf70f15d0 --- /dev/null +++ b/tests/lowalgos/intss/bug29972_2 @@ -0,0 +1,65 @@ +puts "========" +puts "OCC29972: Intersection curve has a weird gap in the middle of it" +puts "========" +puts "" + +set GoodNbCurves 2 + +foreach a [directory res*] {unset $a} + +restore [locate_data_file bug29972_s1.draw] s1 +cylinder s2 -120 54.2955104312028 -116 1 0 0 0 0 -1 28 + +intersect res s1 s2 1.e-4 + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-5 + xdistcs res_$ic s2 U1 U2 100 2.0e-5 + + mkedge ee res_$ic + baddobjects ee + + incr ic + } +} + +# Check of gaps between intersection curves +bfillds +bbuild rs + +checknbshapes rs -edge $GoodNbCurves +checksection rs -r 0 + +smallview +don res_* + +fit +don s1 s2 +clpoles s1 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29972_3 b/tests/lowalgos/intss/bug29972_3 new file mode 100644 index 0000000000..7e465591f2 --- /dev/null +++ b/tests/lowalgos/intss/bug29972_3 @@ -0,0 +1,73 @@ +puts "========" +puts "OCC29972: Intersection curve has a weird gap in the middle of it" +puts "========" +puts "" + +set GoodNbCurves 6 + +foreach a [directory res*] {unset $a} + +torus s1 -127 84 100 0 0 -1 1 0 0 23 10 +cylinder s2 -132 61.5500556793564 131 0 0 -1 1 0 0 10 + +intersect res s1 s2 1.0e-4 + +if { [info exists res] } { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + if { ![info exists res_$ic] } { + set AllowRepeat 0 + } else { + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-7 + xdistcs res_$ic s2 U1 U2 100 2.0e-7 + + mkedge ee res_$ic + baddobjects ee + + incr ic + } +} + +# Check of gaps between intersection curves +bfillds +bbuild rs + +checknbshapes rs -edge $GoodNbCurves + +regexp {nb alone Vertices : ([-0-9.+eE]+)} [ checksection rs -r 4 ] full nbv +if { $nbv < 2 } { + puts "Error : The section is closed. The result is possible to better than on MASTER version. Please check carefully." +} else { + for {set i 1} {$i < $nbv} {incr i} { + for {set j [expr $i +1] } {$j <= $nbv} {incr j} { + distmini dd alone_$i alone_$j; + + if { [dval dd_val] > 3.0e-6 } { + puts "Error: The distance between alone_$i and alone_$j is too big" + } + } + } +} + +smallview +don res_* + +fit +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29972_4 b/tests/lowalgos/intss/bug29972_4 new file mode 100644 index 0000000000..da92bd43a0 --- /dev/null +++ b/tests/lowalgos/intss/bug29972_4 @@ -0,0 +1,80 @@ +puts "========" +puts "OCC29972: Intersection curve has a weird gap in the middle of it" +puts "========" +puts "" + +set GoodNbCurves 1 + +foreach a [directory res*] {unset $a} + +restore [locate_data_file bug29972_s3.draw] s1 +plane s2 41.3489013503538 536.047793220744 -145.944893918698 0.999990480720734 0 0.00436330928474653 0.00436330928474653 0 -0.999990480720734 + +intersect res s1 s2 1.0e-4 + +if { [info exists res] } { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + if { ![info exists res_$ic] } { + set AllowRepeat 0 + } else { + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 0.01 + xdistcs res_$ic s2 U1 U2 100 0.01 + + #check whether the curve has a loop + set delta [dval (U2-U1)/1000.0] + cvalue res_$ic [dval U1] xp yp zp dx1 dy1 dz1 + for {set p [dval U1]} {$p <= [dval U2]} {set p [expr $p + $delta]} { + cvalue res_$ic $p xp yp zp dx2 dy2 dz2 + + #Check if the angle between the vectors {dx1 dy1 dz1} and {dx2 dy2 dz2} is less than 75deg. + set nv1 [ dval dx1*dx1+dy1*dy1+dz1*dz1 ] + set nv2 [ dval dx2*dx2+dy2*dy2+dz2*dz2 ] + + set nv1 [ expr sqrt($nv1) ] + set nv2 [ expr sqrt($nv2) ] + + set dp [ dval dx1*dx2+dy2*dy2+dz1*dz2 ] + + if {$dp < [ expr 0.25881904510252076234889883762405 * $nv1 * $nv2 ] } { + puts "Error: The curve res_$ic is possible to have a bend at parameter $p. Please check carefully" + } + + dset dx1 dx2 + dset dy1 dy2 + dset dz1 dz2 + } + + incr ic + } +} + +incr ic -1 + +if { $ic != $GoodNbCurves } { + puts "Error: $GoodNbCurves are expected but $ic ones are found" +} + +smallview +don res_* + +fit +clpoles s1 +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29972_5 b/tests/lowalgos/intss/bug29972_5 new file mode 100644 index 0000000000..b014c19b41 --- /dev/null +++ b/tests/lowalgos/intss/bug29972_5 @@ -0,0 +1,89 @@ +puts "========" +puts "OCC29972: Intersection curve has a weird gap in the middle of it" +puts "========" +puts "" + +puts "TODO OCC27243 ALL: Error: The curve res_1 possibly has a bend" + +set GoodNbCurves 2 + +foreach a [directory res*] {unset $a} + +binrestore [locate_data_file bug29972_f1.bin] f1 + +mksurface s1 f1 +plane s2 -145.136225014162, -136.038366, -73.563687 0 0 1 -1 0 0 + +intersect res s1 s2 + +if { [info exists res] } { + #Only variable "res" exists + renamevar res res_1 +} + +dset aLambda1 1.0e-5 +dset aLambda2 [dval 1-aLambda1] + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + if { ![info exists res_$ic] } { + set AllowRepeat 0 + } else { + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 1.0e-7 + xdistcs res_$ic s2 U1 U2 100 1.0e-7 + + #check whether the curve has a loop + set aFpar [dval U1*aLambda1+aLambda2*U2] + set aLpar [dval U2] + + set delta [expr ($aLpar-$aFpar)/10.0] + cvalue res_$ic $aFpar xp yp zp dx1 dy1 dz1 + for {set p $aFpar} {$p <= $aLpar} {set p [expr $p + $delta]} { + cvalue res_$ic $p xp yp zp dx2 dy2 dz2 + + #Check if the angle between the vectors {dx1 dy1 dz1} and {dx2 dy2 dz2} is less than 40deg. + set nv1 [ dval dx1*dx1+dy1*dy1+dz1*dz1 ] + set nv2 [ dval dx2*dx2+dy2*dy2+dz2*dz2 ] + + set nv1 [ expr sqrt($nv1) ] + set nv2 [ expr sqrt($nv2) ] + + set dp [ dval dx1*dx2+dy2*dy2+dz1*dz2 ] + + if {$dp < [ expr 0.76604444311897803520239265055542 * $nv1 * $nv2 ] } { + puts "Error: The curve res_$ic possibly has a bend at parameter $p. Please check carefully" + } + + dset dx1 dx2 + dset dy1 dy2 + dset dz1 dz2 + } + + incr ic + } +} + +incr ic -1 + +if { $ic != $GoodNbCurves } { + puts "Error: $GoodNbCurves are expected but $ic ones are found" +} + +smallview +clear +point p1 57.478209319525746 -120.6955841545726 -125.98789759526636 +point p2 57.478010564066473 -120.69677875685414 -125.98860176530741 +fit + +clpoles s1 +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29972_6 b/tests/lowalgos/intss/bug29972_6 new file mode 100644 index 0000000000..c4005f6011 --- /dev/null +++ b/tests/lowalgos/intss/bug29972_6 @@ -0,0 +1,89 @@ +puts "========" +puts "OCC29972: Intersection curve has a weird gap in the middle of it" +puts "========" +puts "" + +puts "TODO OCC27243 ALL: Error: The curve res_1 possibly has a bend" + +set GoodNbCurves 2 + +foreach a [directory res*] {unset $a} + +binrestore [locate_data_file bug29972_f1.bin] f1 + +mksurface s1 f1 +plane s2 -145.136225014162, -136.038366, -73.563687 0 0 1 -1 0 0 + +intersect res s1 s2 1.0e-4 + +if { [info exists res] } { + #Only variable "res" exists + renamevar res res_1 +} + +dset aLambda1 1.0e-5 +dset aLambda2 [dval 1-aLambda1] + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + if { ![info exists res_$ic] } { + set AllowRepeat 0 + } else { + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 1.0e-7 + xdistcs res_$ic s2 U1 U2 100 1.0e-7 + + #check whether the curve has a loop + set aFpar [dval U1*aLambda1+aLambda2*U2] + set aLpar [dval U2] + + set delta [expr ($aLpar-$aFpar)/10.0] + cvalue res_$ic $aFpar xp yp zp dx1 dy1 dz1 + for {set p $aFpar} {$p <= $aLpar} {set p [expr $p + $delta]} { + cvalue res_$ic $p xp yp zp dx2 dy2 dz2 + + #Check if the angle between the vectors {dx1 dy1 dz1} and {dx2 dy2 dz2} is less than 40deg. + set nv1 [ dval dx1*dx1+dy1*dy1+dz1*dz1 ] + set nv2 [ dval dx2*dx2+dy2*dy2+dz2*dz2 ] + + set nv1 [ expr sqrt($nv1) ] + set nv2 [ expr sqrt($nv2) ] + + set dp [ dval dx1*dx2+dy2*dy2+dz1*dz2 ] + + if {$dp < [ expr 0.76604444311897803520239265055542 * $nv1 * $nv2 ] } { + puts "Error: The curve res_$ic possibly has a bend at parameter $p. Please check carefully" + } + + dset dx1 dx2 + dset dy1 dy2 + dset dz1 dz2 + } + + incr ic + } +} + +incr ic -1 + +if { $ic != $GoodNbCurves } { + puts "Error: $GoodNbCurves are expected but $ic ones are found" +} + +smallview +clear +point p1 57.478209319525746 -120.6955841545726 -125.98789759526636 +point p2 57.478010564066473 -120.69677875685414 -125.98860176530741 +fit + +clpoles s1 +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/lowalgos/intss/bug29994 b/tests/lowalgos/intss/bug29994 new file mode 100644 index 0000000000..cdd673118c --- /dev/null +++ b/tests/lowalgos/intss/bug29994 @@ -0,0 +1,63 @@ +puts "========" +puts "0029994: Misprint in IntWalk_PWalking::Perform(...) method" +puts "========" +puts "" + +foreach a [directory res*] {unset $a} + +torus s1 185.793144150183 -13 70.9931441501827 0 -1 0 0 0 -1 27.0094480547676 0.25 +restore [locate_data_file bug29994_s2.draw] s2 + +intersect res s1 s2 1.0e-4 + +if { [info exists res] } { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + if { ![info exists res_$ic] } { + set AllowRepeat 0 + } else { + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-7 + xdistcs res_$ic s2 U1 U2 100 2.0e-7 + + mkedge ee res_$ic + baddobjects ee + incr ic + } +} + +incr ic -1 + +if { $ic == 1 } { + puts "OK: good number of curves!" + checklength res_1 -l 0.70541045554962345 -eps 1.0e-3 +} else { + puts "Error: Incorrect number of curves in intersection result!" + bfillds + bbuild result + + # Check gaps between edges in result + checksection result -r 2 + checkmaxtol result -min_tol 2.0e-7 + checknbshapes result -edge 1 -vertex 2 +} + +smallview +don res_* +fit +disp s1 s2 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug30082_1 b/tests/lowalgos/intss/bug30082_1 new file mode 100644 index 0000000000..59f6890343 --- /dev/null +++ b/tests/lowalgos/intss/bug30082_1 @@ -0,0 +1,27 @@ +puts "========" +puts "0030082: Intersection algorithm returns curve with big tolerance value" +puts "========" +puts "" + +foreach a [directory c_*] { unset $a } + +brestore [locate_data_file bug27928_b1.brep] b1 +brestore [locate_data_file bug27928_b2.brep] b2 +explode b1 f +explode b2 f + +if { [regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} [bopcurves b1_1 b2_2 -2d] full Toler NbCurv ] } { + # Before the fix, the tolerance was 0.0010828835451753697 + checkreal Tolerance $Toler 6.5e-7 0.0 0.1 + + if {$NbCurv != 1} { + puts "Error: 1 curve is expected but $NbCurv curves are found." + } +} else { + puts "Error: Intersection result is empty" +} + +smallview +don c_* +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug30082_2 b/tests/lowalgos/intss/bug30082_2 new file mode 100644 index 0000000000..ddfc67c5ed --- /dev/null +++ b/tests/lowalgos/intss/bug30082_2 @@ -0,0 +1,67 @@ +puts "========" +puts "0030082: Intersection algorithm returns curve with big tolerance value" +puts "========" +puts "" + +foreach a [directory res*] {unset $a} + +set aTol 1.0e-4 +set GoodNbCurves 4 + +cylinder s1 -106.471129473161 -64.3442185874231 -19.25 1 0 0 0 0 -1 0.25 +cylinder s2 -124.971129473161 -67.0942185874231 -20.5 0 0 1 1 0 -0 3 +intersect res s1 s2 $aTol + +set che [whatis res] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 +} + +bclearobjects +bcleartools + +set ic 1 +set AllowRepeat 1 +while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 $aTol + xdistcs res_$ic s2 U1 U2 100 $aTol + + mkedge ee res_$ic + baddobjects ee + incr ic + } +} + +incr ic -1 + +if { $ic != $GoodNbCurves } { + puts "Error: $GoodNbCurves curves are expected but $ic ones are found" +} + +bfillds +bbuild result + +smallview +don result +fit + +# Check gaps between edges in ce +checksection result -r 0 +checkmaxtol result -min_tol 2.0e-7 + +checknbshapes result -edge 4 -vertex 3 + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug30100_2 b/tests/lowalgos/intss/bug30100_2 new file mode 100644 index 0000000000..831cc1e8c5 --- /dev/null +++ b/tests/lowalgos/intss/bug30100_2 @@ -0,0 +1,11 @@ +puts "========" +puts "0030100: Modeling Algorithms - ShapeUpgrade_UnifySameDomain is unable to unify faces based on the same toroidal surface" +puts "========" +puts "" + +restore [locate_data_file bug30100_faces.brep] f +explode f + +if {![regexp "no 3d curves" [bopcurves f_1 f_2]]} { + puts "Error: Tangent faces are not detected" +} diff --git a/tests/lowalgos/intss/bug30202_2 b/tests/lowalgos/intss/bug30202_2 new file mode 100644 index 0000000000..533de34750 --- /dev/null +++ b/tests/lowalgos/intss/bug30202_2 @@ -0,0 +1,14 @@ +puts "========" +puts "0030202: IntPatch_WLineTool::JoinWLines array out of bounds" +puts "========" +puts "" + +restore [locate_data_file bug30202_src.brep] b1 +restore [locate_data_file bug30202_tool.brep] b2 + +explode b1 f +explode b2 f + +if {![regexp "no 3d curves\n has no 3d points" [bopcurves b1_5 b2_7 -2d]]} { + puts "Error: Expected intersection result is empty" +} diff --git a/tests/lowalgos/intss/bug324 b/tests/lowalgos/intss/bug324 new file mode 100644 index 0000000000..0593ea210d --- /dev/null +++ b/tests/lowalgos/intss/bug324 @@ -0,0 +1,21 @@ +puts "========================" +puts " OCC324 " +puts "========================" +puts "" +################################################################# +## The command "intersect" applied to the given arguments "s1" (plane) and "s2" (cylinder) leads +## to the program hang-up. +################################################################# + +restore [locate_data_file OCC324a.draw] s1 +restore [locate_data_file OCC324b.draw] s2 + +if [catch {intersect result s1 s2} catch_result] { + puts "Faulty OCC324: function INTERSECT works wrongly" +} else { + puts "OCC324 OK: function INTERSECT works properly" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + + diff --git a/tests/lowalgos/intss/bug333 b/tests/lowalgos/intss/bug333 new file mode 100644 index 0000000000..d80400f170 --- /dev/null +++ b/tests/lowalgos/intss/bug333 @@ -0,0 +1,72 @@ +puts "================" +puts "OCC333: Superimposed curves during intersection two surfaces " +puts "================" +puts "" + +set GoodNbCurv 14 + +restore [locate_data_file OCC333a.draw] s1 +restore [locate_data_file OCC333b.draw] s2 + +intersect result s1 s2 + +set che [whatis result] +set ind [string first "3d curve" $che] +if {${ind} >= 0} { + #Only variable "result" exists + renamevar result result_1 +} + +set ic 1 +set AllowRepeate 1 +while { $AllowRepeate != 0 } { + set che [whatis result_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeate 0 + } else { + display result_$ic + + bounds result_$ic U1 U2 + + dump U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs result_$ic s1 U1 U2 10 2.0e-7 + xdistcs result_$ic s2 U1 U2 10 2.0e-7 + + for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { + mkedge e1 result_$ic + mkedge e2 result_$ip + + set coe [checkoverlapedges e1 e2 5.0e-5] + + puts "result_$ic <-> result_$ip: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: result_$ic and result_$ip are overlaped" + } + } + + incr ic + } +} + +incr ic -1 + +if {$ic == $GoodNbCurv} { + puts "OK: Number of curves is good!" +} else { + puts "Error: $GoodNbCurv curves are expected but $ic ones are found!" +} + +smallview +don result* +fit +clear +don s1 s2 result* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug370 b/tests/lowalgos/intss/bug370 new file mode 100644 index 0000000000..9dbc8e5e6f --- /dev/null +++ b/tests/lowalgos/intss/bug370 @@ -0,0 +1,24 @@ +puts "========================" +puts "BUC61033" +puts " OCC370 " +puts "========================" +puts "" +################################################################# +##Intersection between a sphere and trimmed plane, using IntPatch_Intersection, lead to infinite cycle. +################################################################# + +sphere gs1 1 +plane gs2 0 0 0 1 0 0 +trim trgs2 gs2 0 1.000001 -1 0.000001 + +intersect result gs1 trgs2 + +cpulimit 300 + +puts "OCC370 OK: function INTERSECT works properly" + +erase gs2 + +checkview -display result -2d -path ${imagedir}/${test_image}.png + + diff --git a/tests/lowalgos/intss/bug371 b/tests/lowalgos/intss/bug371 new file mode 100644 index 0000000000..0d424b7818 --- /dev/null +++ b/tests/lowalgos/intss/bug371 @@ -0,0 +1,24 @@ + +puts "========================" +puts "BUC61034" +puts " OCC371 " +puts "========================" +puts "" +################################################################# +##Intersection between two BSplineSurfaces, using IntPatch_Intersection, lead to infinite cycle. +################################################################# + +restore [locate_data_file OCC371a.brep] a +restore [locate_data_file OCC371b.brep] b + +mksurface gs1 a +mksurface gs2 b +trim trgs1 gs1 0.0 1.0 0.9698725179864 1.0 +trim trgs2 gs2 0.0 1.0 0.24333094700742 0.92374551772989 + +#cpulimit 300 +intersect result trgs1 trgs2 + +checkview -display result -2d -path ${imagedir}/${test_image}.png + + diff --git a/tests/lowalgos/intss/bug429 b/tests/lowalgos/intss/bug429 new file mode 100644 index 0000000000..e1a320dab7 --- /dev/null +++ b/tests/lowalgos/intss/bug429 @@ -0,0 +1,32 @@ +puts "========================" +puts " OCC429 " +puts "========================" +puts "" +####################################### +## Projection for a point on a surface works wrong +####################################### + +restore [locate_data_file OCC429a.draw] a +restore [locate_data_file OCC429b.draw] b + +intersect i a b + +cvalue i_2 0.43213918 x y z +point p x y z +proj b x y z + +set err1 [string range [dump ext_1] 55 64] +set err2 [string range [dump ext_2] 55 64] +set err3 [string range [dump ext_3] 55 64] +set err4 [string range [dump ext_4] 55 64] +set err5 [string range [dump ext_5] 55 64] +set err6 [string range [dump ext_6] 55 64] + +if { $err1 != "Parameters" || $err2 != "Parameters" || $err3 != "Parameters" || $err4 != "Parameters" || $err5 != "Parameters" || $err6 != "Parameters" } { + puts " OCC286 OK : Projection for a point on a surface works properly" +} else { + puts "Faulty OCC429 : Attempt to project the point on surface gives incorrect result" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug431 b/tests/lowalgos/intss/bug431 new file mode 100644 index 0000000000..4b5f75d009 --- /dev/null +++ b/tests/lowalgos/intss/bug431 @@ -0,0 +1,23 @@ +puts "========================" +puts " OCC431 " +puts "========================" +puts "" +##################################### +## Intersection of two surfaces is not compleate curve. +##################################### + +restore [locate_data_file OCC431a.draw] su1 +restore [locate_data_file OCC431b.draw] su2 + +intersect result su1 su2 + +set che [whatis result] + +if { ![regexp {curve} $che] || ![regexp {3d} $che]} { + puts "Faulty OCC431 : Command INTERSECT works WRONGLY" +} else { + puts "OCC431 OK : Command INTERSECT works properly" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug504 b/tests/lowalgos/intss/bug504 new file mode 100644 index 0000000000..2287b920fb --- /dev/null +++ b/tests/lowalgos/intss/bug504 @@ -0,0 +1,28 @@ +puts "=========" +puts " OCC504 " +puts "=========" +puts "" +############################### +## AllocMemory while intersection command +############################### + +restore [locate_data_file OCC504a.draw] su1 +# checkshape su1 + +restore [locate_data_file OCC504b.draw] su2 +# checkshape su2 + +if [catch {intersect result su1 su2} catch_result] { + puts "Faulty OCC504 : A solution takes all memory and crach with AllocMemory" +} else { + puts "OCC504 OK: function intersection works ok" +} + +if { [regexp {curve} [whatis result_1]] && [regexp {curve} [whatis result_2]] } { + puts "OCC504 OK : Result shape is CORRECT !!! " +} else { + puts " Faulty OCC504: Result shape is INcorrect !!! " +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug513 b/tests/lowalgos/intss/bug513 new file mode 100644 index 0000000000..ce2c849f36 --- /dev/null +++ b/tests/lowalgos/intss/bug513 @@ -0,0 +1,23 @@ +puts "========" +puts "OCC513" +puts "========" +puts "" + +###################################### +## Can not intersect plane and conical surfaces +## The ">intersect" command hangs up the computer. +###################################### + +# cpulimit 9000 + +restore [locate_data_file OCC513a.draw] sa23 +restore [locate_data_file OCC513b.draw] sb8 + +if { [catch {intersect result sa23 sb8} catch_result] } { + puts "Faulty OCC513: function INTERSECTION works wrongly" +} else { + puts "OCC513 OK: function INTERSECTION works properly" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug531 b/tests/lowalgos/intss/bug531 new file mode 100644 index 0000000000..59a55f1f69 --- /dev/null +++ b/tests/lowalgos/intss/bug531 @@ -0,0 +1,16 @@ + +puts "=======" +puts "OCC531" +puts "=======" +puts "" +########################################################## +## Can not intersect plane and cone.The ">intersect" command hangs up the computer +########################################################## + +restore [locate_data_file OCC531_1.draw] a +restore [locate_data_file OCC531_2.draw] b + +intersect result a b + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug537 b/tests/lowalgos/intss/bug537 new file mode 100644 index 0000000000..3d192fc53c --- /dev/null +++ b/tests/lowalgos/intss/bug537 @@ -0,0 +1,27 @@ +puts "TODO OCC12345 ALL: Error : OCC537" + +puts "=======" +puts "OCC537" +puts "=======" +puts "" +####################################################################### +##Application do something in intersection operation for long time and eat much memory (This may be the +## reason of BUS ERROR that happens in application). Intersection operation invokes for conical and plane +## surfaces. +####################################################################### + +restore [locate_data_file OCC537_CONE.draw] c +restore [locate_data_file OCC537_PLANE.draw] p + +intersect result c p + +set wt_is [whatis result] + +if { [regexp {WIRE} ${wt_is}] } { + puts " OCC537 OK" +} else { + puts "Error : OCC537" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png + diff --git a/tests/lowalgos/intss/bug565 b/tests/lowalgos/intss/bug565 new file mode 100644 index 0000000000..67a147a67d --- /dev/null +++ b/tests/lowalgos/intss/bug565 @@ -0,0 +1,71 @@ +puts "========" +puts "OCC565: Can not intersect two trimmed conical surfaces" +puts "========" +puts "" + +set GoodNbCurv 1 + +foreach c [directory result*] { + unset $c +} + +foreach c [directory inf*] { + unset $c +} + +restore [locate_data_file OCC565a.draw] s1 +restore [locate_data_file OCC565b.draw] s2 + +puts "Preliminary check: intersection work with infinite cones:" +if { [catch {intersect inf s1 s2 } catch_result] } { + puts "Faulty OCC565: function intersection works wrongly with infinite cones" +} else { + set isFound 0 + foreach c [directory inf*] { + set ind [string first "3d curve" [whatis $c]] + if {${ind} < 0} { + dump $c + puts "Error: Intersection result (with infinite cones) is not 3D-curve" + } else { + set isFound 1 + } + } + + if { !$isFound } { + puts "Error: Empty intersection result (with infinite cones)" + } +} + +trim s1x s1 0 2*pi 0 2.8 +trim s2x s2 0 2*pi 0 2.8 + +if { [catch {intersect result s1x s2x } catch_result] } { + puts "Faulty OCC565 exception: function intersection works wrongly with trimmed cones" +} else { + foreach c [directory result*] { + bounds $c U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs $c s1 U1 U2 10 1.0e-7 + xdistcs $c s2 U1 U2 10 1.0e-7 + } + + set NbCurv [llength [directory result*]] + + if { $NbCurv == $GoodNbCurv } { + puts "OK: Number of curves is good!" + } else { + puts "Error: $GoodNbCurv is expected but $NbCurv is found!" + } + + smallview + don result* + fit + disp s1x s2x + checkview -screenshot -2d -path ${imagedir}/${test_image}.png +} + + diff --git a/tests/lowalgos/intss/bug567_1 b/tests/lowalgos/intss/bug567_1 new file mode 100644 index 0000000000..223b72581c --- /dev/null +++ b/tests/lowalgos/intss/bug567_1 @@ -0,0 +1,94 @@ +puts "========" +puts "OCC567: Can not intersect two Rectangular Trimmed Surfaces ." +puts "========" +puts "" + +# Different result between Debian 7 and Debian 8 and between MSVC 2010 and 2017. +puts "TODO ?OCC30012 Linux: Error: 10 curves are expected but 9 ones are found." +puts "TODO ?OCC30012 Linux: Error: 10 curves are expected but 8 ones are found." +puts "TODO ?OCC29910 Windows: Error: 10 curves are expected but 11 ones are found." +puts "TODO ?OCC29910 Windows: Error : is WRONG because number of EDGE entities in shape \"rs\" is 15" +puts "TODO ?OCC29910 Linux: Error : is WRONG because number of EDGE entities in shape \"rs\" is 8" +puts "TODO ?OCC29910 Windows: Error: 0 vertices are expected but 2 are found" + +set GoodNbCurves 10 + +foreach a [directory res*] {unset $a} + +restore [locate_data_file OCC567a.draw] s1 +restore [locate_data_file OCC567b.draw] s2 + +if { [catch {intersect res s1 s2 } catch_result] } { + puts "Faulty OCC567: function intersection works wrongly with infinite Surfaces" +} else { + set che [whatis res] + set ind [string first "3d curve" $che] + if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 + } + + bclearobjects + bcleartools + + set ic 1 + set AllowRepeat 1 + while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-7 + xdistcs res_$ic s2 U1 U2 100 2.0e-7 + + for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { + mkedge e1 res_$ic + mkedge e2 res_$ip + + set coe [checkoverlapedges e1 e2 5.0e-5] + + puts "res_$ic <-> res_$ip: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: res_$ic and res_$ip are overlaped" + } + } + + mkedge ee res_$ic + baddobjects ee + + incr ic + } + } + + incr ic -1 + + if {$ic != $GoodNbCurves} { + puts "Error: $GoodNbCurves curves are expected but $ic ones are found." + } + + if {$ic != 1} { + # Check of gaps between intersection curves + bfillds + bbuild rs + + checknbshapes rs -edge 14 + checksection rs -r 0 + } +} + +smallview +don res_* + +fit +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug567_2 b/tests/lowalgos/intss/bug567_2 new file mode 100644 index 0000000000..21286d553b --- /dev/null +++ b/tests/lowalgos/intss/bug567_2 @@ -0,0 +1,89 @@ +puts "========" +puts "OCC567: Can not intersect two Rectangular Trimmed Surfaces ." +puts "========" +puts "" + +set GoodNbCurves 1 + +restore [locate_data_file OCC567a.draw] s1 +restore [locate_data_file OCC567b.draw] s2 + +foreach a [directory res*] {unset $a} + +trim s1x s1 0 2*pi 0 2*pi/13 +trim s2x s2 0 2*pi 0 2*pi/13 + +if { [catch {intersect res s1x s2x } catch_result] } { + puts "Faulty OCC565 exception: function intersection works wrongly with trimmed Surfaces" +} else { + set che [whatis res] + set ind [string first "3d curve" $che] + if {${ind} >= 0} { + #Only variable "res" exists + renamevar res res_1 + } + + bclearobjects + bcleartools + + set ic 1 + set AllowRepeat 1 + while { $AllowRepeat != 0 } { + set che [whatis res_$ic] + set ind [string first "3d curve" $che] + if {${ind} < 0} { + set AllowRepeat 0 + } else { + + bounds res_$ic U1 U2 + + if {[dval U2-U1] < 1.0e-9} { + puts "Error: Wrong curve's range!" + } + + xdistcs res_$ic s1 U1 U2 100 2.0e-7 + xdistcs res_$ic s2 U1 U2 100 2.0e-7 + + for { set ip [expr $ic-1] } { $ip > 0 } { incr ip -1 } { + mkedge e1 res_$ic + mkedge e2 res_$ip + + set coe [checkoverlapedges e1 e2 5.0e-5] + + puts "res_$ic <-> res_$ip: $coe" + if { [regexp "Edges is not overlaped" $coe] != 1 } { + puts "Error: res_$ic and res_$ip are overlaped" + } + } + + mkedge ee res_$ic + baddobjects ee + + incr ic + } + } + + incr ic -1 + + if {$ic != $GoodNbCurves} { + puts "Error: $GoodNbCurves curves are expected but $ic ones are found." + } + + if {$ic != 1} { + # Check of gaps between intersection curves + bfillds + bbuild rs + + checknbshapes rs -edge 1 + checksection rs -r 2 + } +} + +smallview +don res_* + +fit +don s1 s2 +disp res_* + +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug604 b/tests/lowalgos/intss/bug604 new file mode 100644 index 0000000000..276b6324d1 --- /dev/null +++ b/tests/lowalgos/intss/bug604 @@ -0,0 +1,35 @@ +puts "TODO OCC12345 ALL: Faulty OCC604: Result of intersection operation is INcorrect !!!" + +puts "========================" +puts " OCC604" +puts "========================" +puts "" +############################ +## Wrong intersection between two tores. +############################ + +restore [locate_data_file OCC604a.draw] a +restore [locate_data_file OCC604b.draw] b + +if { [catch { intersect result a b } catch_result] } { + puts "Faulty OCC604: function INTERSECTION works with exception" +} else { + set nom 0 + set j 1 + repeat 10 { + set err [lindex [whatis res_$j] 5] + if { $err != "curve"} { + break + } else { + set nom [expr $nom + 1] + } + incr j + } + if { $nom != 1 } { + puts "Faulty OCC604: Result of intersection operation is INcorrect !!!" + } else { + puts "OCC604 OK : Result of intersection operation is CORRECT !!! " + } +} + +checkview -display result -3d -path ${imagedir}/${test_image}.png diff --git a/tests/lowalgos/intss/bug6474 b/tests/lowalgos/intss/bug6474 new file mode 100644 index 0000000000..321dfe0f57 --- /dev/null +++ b/tests/lowalgos/intss/bug6474 @@ -0,0 +1,20 @@ +puts "============" +puts "OCC6474" +puts "============" +puts "" +###################################################### +# Incorrect result of intersection of a plane and an extrusion surface +###################################################### + +set BugNumber OCC6474 + +restore [locate_data_file OCC6474-s1.draw] s1 +restore [locate_data_file OCC6474-s2.draw] s2 + +intersect res s1 s2 + +if {[llength [directory res*]] != 1} { + puts "Faulty ${BugNumber}: more than 1 intersection line is got" +} else { + puts "OK ${BugNumber}" +} diff --git a/tests/lowalgos/intss/ger61235 b/tests/lowalgos/intss/ger61235 new file mode 100644 index 0000000000..cf56c2aa30 --- /dev/null +++ b/tests/lowalgos/intss/ger61235 @@ -0,0 +1,24 @@ +puts "===========" +puts "GER61235" +puts "===========" + +restore [locate_data_file ger61235a.brep] tool +checkshape tool +restore [locate_data_file ger61235b.brep] object +checkshape object + +bsection result object tool + +puts "Result of section :" +checkshape result +#To check geometry part +mksurface s1 tool +mksurface s2 object + +puts "Result of intersect :" +intersect result s1 s2 +puts [checksection result] + +checkview -display result -2d -path ${imagedir}/${test_image}.png + +