0030396: Infinite recursion during ShapeFix after BRepAlgoAPI_Cut
[occt.git] / tests / bugs / modalg_7 / bug30396_1
1 puts "========"
2 puts "0030396: Infinite recursion during ShapeFix after BRepAlgoAPI_Cut"
3 puts "========"
4 puts ""
5
6 # With this order of tools the operation produced bad result
7 set list(1) {a_2 a_3 a_4 a_5 a_6 a_7}
8 # With this order of tools the operation produced good result
9 set list(2) {a_6 a_2 a_7 a_3 a_4 a_5}
10
11 set nbw {33 23 29 0}
12 set nbf {33 17 23 0}
13 set nbsh {6 1 1 0}
14 set nbso {6 1 1 0}
15 set vol {3.24433 11.1953 7.95093 empty}
16 set area {25.9962 58.8635 53.1541 empty}
17 set nameop {common fuse cut cut21}
18
19 bfuzzyvalue 1e-2
20 bnondestructive 1
21
22 for {set i 1} { $i <= 2} {incr i} {
23
24   restore [locate_data_file bug30396.brep] a
25   explode a
26
27   bclearobjects
28   bcleartools
29   baddobjects a_1
30   eval baddtools $list($i)
31   bfillds
32
33   for {set iop 0} {$iop < 4} {incr iop} {
34     set oper [lindex $nameop $iop]
35     bbop r_${i}_$oper $iop
36     checknbshapes r_${i}_$oper -wire [lindex $nbw $iop] -face [lindex $nbf $iop]\
37       -solid [lindex $nbso $iop] -shell [lindex $nbsh $iop]
38     checkprops r_${i}_$oper -v [lindex $vol $iop] -s [lindex $area $iop]
39     checkshape r_${i}_$oper
40     if {![regexp "OK" [bopcheck r_${i}_$oper]]} {
41       puts "Error: result $i of $oper is self-interfered shape"
42     }
43   }
44 }
45
46 boptions -default
47 checkview -display r_1_cut -2d -path ${imagedir}/${test_image}.png