0024105: ShapeFix algorithm produces not correct result.
[occt.git] / tests / bugs / moddata_2 / bug343
1 puts "================"
2 puts "BUC61039"
3 puts "OCC343"
4 puts "================"
5 puts ""
6
7 cpulimit 9000
8 pload XDE
9
10 set filepath [locate_data_file lh3d_px1.igs]
11 if [catch {igesbrep $filepath a *} catch_result] { 
12     puts "Faulty OCC343: here is reading problem"
13 } else {
14     puts "Reading OCC343  OK"
15     tpcompound a
16     #
17     # First sewing
18     #
19     sewing result1 100. a
20
21     set FaceList [explode result1 f]
22     set FaceListLength [llength ${FaceList}]
23     if { ${FaceListLength} < 1 } {
24         puts "OCC343 - Error : FaceListLength= ${FaceListLength}"
25     }
26     
27     set X_List1 [list]
28     set Y_List1 [list]
29     set Z_List1 [list]
30     for {set i 1} {${i} <= ${FaceListLength}} {incr i} {
31         set props [sprops result1_${i}]
32         set list [split ${props} "\n\t"]
33         set listLength [llength ${list}]
34         if { ${listLength} < 20 } {
35             puts "OCC343 - Error : listLength= ${listLength}"
36         }
37         set Center_Gravity_X [lindex ${list} 5]
38         set Center_Gravity_Y [lindex ${list} 6]
39         set Center_Gravity_Z [lindex ${list} 7]
40     
41         set Center_Gravity_X [lindex [split ${Center_Gravity_X}] [expr [llength [split ${Center_Gravity_X}] ] - 1] ]
42         set Center_Gravity_Y [lindex [split ${Center_Gravity_Y}] [expr [llength [split ${Center_Gravity_Y}] ] - 1] ]
43         set Center_Gravity_Z [lindex [split ${Center_Gravity_Z}] [expr [llength [split ${Center_Gravity_Z}] ] - 1] ]
44     
45         lappend X_List1 ${Center_Gravity_X}
46         lappend Y_List1 ${Center_Gravity_Y}
47         lappend Z_List1 ${Center_Gravity_Z}
48     }
49
50     vinit
51     vdisplay result1
52     vfit
53     
54     set CycleNumber 10
55     for {set j 1} {${j} <= ${CycleNumber}} {incr j} {
56         veraseall
57         #
58         # Second sewing
59         #
60
61         if [catch {igesbrep $filepath a *} catch_result] {
62             puts "Faulty OCC343: here is reading problem"
63         } else {
64             puts "Reading OCC343  OK"
65         }
66
67         tpcompound a
68         sewing result2 100. a
69
70         set FaceList [explode result2 f]
71         set FaceListLength [llength ${FaceList}]
72         if { ${FaceListLength} < 1 } then {puts "OCC343 - Error : FaceListLength= ${FaceListLength}"}
73
74         set X_List2 [list]
75         set Y_List2 [list]
76         set Z_List2 [list]
77         for {set i 1} {${i} <= ${FaceListLength}} {incr i} {
78             set props [sprops result2_${i}]
79             set list [split ${props} "\n\t"]
80             set listLength [llength ${list}]
81             if { ${listLength} < 20 } {
82                 puts "OCC343 - Error : listLength= ${listLength}"
83             }
84
85             set Center_Gravity_X [lindex ${list} 5]
86             set Center_Gravity_Y [lindex ${list} 6]
87             set Center_Gravity_Z [lindex ${list} 7]
88
89             set Center_Gravity_X [lindex [split ${Center_Gravity_X}] [expr [llength [split ${Center_Gravity_X}] ] - 1] ]
90             set Center_Gravity_Y [lindex [split ${Center_Gravity_Y}] [expr [llength [split ${Center_Gravity_Y}] ] - 1] ]
91             set Center_Gravity_Z [lindex [split ${Center_Gravity_Z}] [expr [llength [split ${Center_Gravity_Z}] ] - 1] ]
92
93             lappend X_List2 ${Center_Gravity_X}
94             lappend Y_List2 ${Center_Gravity_Y}
95             lappend Z_List2 ${Center_Gravity_Z}
96         }
97
98         set ListLength [llength ${X_List1}]
99         if { ${ListLength} != [llength ${Y_List1}] } then {puts "OCC343 - Error : ListLength= ${ListLength}"}
100         if { ${ListLength} != [llength ${Z_List1}] } then {puts "OCC343 - Error : ListLength= ${ListLength}"}
101         if { ${ListLength} != [llength ${X_List2}] } then {puts "OCC343 - Error : ListLength= ${ListLength}"}
102         if { ${ListLength} != [llength ${Y_List2}] } then {puts "OCC343 - Error : ListLength= ${ListLength}"}
103         if { ${ListLength} != [llength ${Z_List2}] } then {puts "OCC343 - Error : ListLength= ${ListLength}"}
104
105         for {set i 0} {${i} < ${ListLength}} {incr i} {
106             set X1 [lindex ${X_List1} ${i}]
107             set X2 [lindex ${X_List2} ${i}]
108             if { ${X1} != ${X2} } {
109                 puts "OCC343 - Error : X1= ${X1}    X2= ${X2}"
110             }
111             set Y1 [lindex ${Y_List1} ${i}]
112             set Y2 [lindex ${Y_List2} ${i}]
113             if { ${Y1} != ${Y2} } {
114                 puts "OCC343 - Error : Y1= ${Y1}    Y2= ${Y2}"
115             }
116             set Z1 [lindex ${Z_List1} ${i}]
117             set Z2 [lindex ${Z_List2} ${i}]
118             if { ${Z1} != ${Z2} } {
119                 puts "OCC343 - Error : Z1= ${Z1}    Z2= ${Z2}"
120             }
121         }
122
123         tclean result1
124         vdisplay result1
125         vfit
126     }
127 }
128
129 set only_screen 1
130
131
132
133