File: bug88

package info (click to toggle)
oce 0.17.2-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 297,992 kB
  • ctags: 203,291
  • sloc: cpp: 1,176,369; ansic: 67,206; sh: 11,647; tcl: 6,890; cs: 5,221; python: 2,867; java: 1,522; makefile: 338; xml: 292; perl: 37
file content (109 lines) | stat: -rw-r--r-- 2,416 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
puts "========"
puts "BUC60963"
puts "OCC88"
puts "========"
puts ""
######################################################
# BUC60963. can not project vertex to face
######################################################

restore [locate_data_file OCC88.brep] sh 

set che [checkshape sh]

explode sh f
checkshape sh_1
checkshape sh_2

mksurface surf1 sh_1
mksurface surf2 sh_2
puts "Make line from pos(135; 11; 0) with dir (0;0;1) "
line l 135 11 0 0 0 1

intersect res1 l surf1
intersect res2 l surf2
#set first1 [whatis res1]
#set second1 [whatis res2]

puts "Try to intersect with (135;10.9995;0) (0;0;1)"
line ll 135 10.9995 0 0 0 1
intersect res_1 ll surf1
intersect res_2 ll surf2
#set first2 [whatis res_1]
#set second2 [whatis res_2]

proc CalculatePercent {value good_value} {
    if {${good_value} == 0. && ${value} == 0.} {
        set percent 0.
    } else {
        set percent [expr abs(${value} - ${good_value}) / double(${good_value}) * 100.]
    }
    return ${percent}
}

set IsGood 1
set percent_max 0.1
if {[info exists res1] == 0} {
   puts "Faulty OCC88 (case 2)"
   set IsGood 0
}
if {[info exists res2] == 1} {
   puts "Faulty OCC88 (case 3)"
   set IsGood 0
}

if {[info exists res_1] == 0} {
   puts "Faulty OCC88 (case 4)"
   set IsGood 0
}
if {[info exists res_2] == 1} {
   puts "Faulty OCC88 (case 5)"
   set IsGood 0
}

if {${IsGood} == 1} {
   set dump_list1 [split [dump res1] " :,\n"]
   set x1 [lindex ${dump_list1} 10]
   set y1 [lindex ${dump_list1} 12]
   set z1 [lindex ${dump_list1} 14]

   set dump_list2 [split [dump res_1] " :,\n"]
   set x2 [lindex ${dump_list2} 10]
   set y2 [lindex ${dump_list2} 12]
   set z2 [lindex ${dump_list2} 14]

   set x_percent [CalculatePercent ${x1} ${x2}]
   set y_percent [CalculatePercent ${y1} ${y2}]
   set z_percent [CalculatePercent ${z1} ${z2}]

   puts "x1 = ${x1}"
   puts "x2 = ${x2}"
   puts "x_percent = ${x_percent}\n"

   puts "y1 = ${y1}"
   puts "y2 = ${y2}"
   puts "y_percent = ${y_percent}\n"

   puts "z1 = ${z1}"
   puts "z2 = ${z2}"
   puts "z_percent = ${z_percent}\n"

   if {${x_percent} > ${percent_max}} {
      puts "OCC88 Faulty (case 6)"
      set IsGood 0
   }
   if {${y_percent} > ${percent_max}} {
      puts "OCC88 Faulty (case 7)"
      set IsGood 0
   }
   if {${z_percent} > ${percent_max}} {
      puts "OCC88 Faulty (case 8)"
      set IsGood 0
   }
}

if {${IsGood} == 1} {
   puts "OCC88 OK"
}