mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-05 18:16:23 +03:00
Warning was fixed. Remarks were applied. - class VMap in Draw was removed - NCollection_DataMap is used to store objects - name of object is used to associate Tcl variable with the object - creation and changing of objects are correclty handled Redundant casts were removed. Initial value is restored if variable is protected. Tests for bug #24863 were added. Some test cases and tcl command "save" were improved. Useless using of upvar was removed.
157 lines
4.1 KiB
Plaintext
Executable File
157 lines
4.1 KiB
Plaintext
Executable File
puts "================"
|
|
puts "OCC23165"
|
|
puts "================"
|
|
puts ""
|
|
###################################################################################################################
|
|
# BndLib_Add3dCurve::Add incorrectly segmented original B-Spline what resulting in wrong bounding box or exception.
|
|
###################################################################################################################
|
|
|
|
catch { pload XDE }
|
|
|
|
set BugNumber OCC23165
|
|
|
|
smallview
|
|
|
|
# 1 step
|
|
set exception_status 0
|
|
set e1_status 0
|
|
set status 0
|
|
|
|
set percent_max 0.1
|
|
|
|
proc GetPercent {Value GoodValue} {
|
|
set Percent 0.
|
|
if {${GoodValue} != 0.} {
|
|
set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
|
|
} elseif {${Value} != 0.} {
|
|
set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
|
|
} else {
|
|
set Percent 0.
|
|
}
|
|
return ${Percent}
|
|
}
|
|
|
|
restore [locate_data_file OCC23165-edge1.brep] e1
|
|
|
|
donly e1
|
|
catch { bounding e1 } msg
|
|
fit
|
|
|
|
set index [lsearch $msg exception]
|
|
if {$index > -1} {
|
|
set exception_status 1
|
|
} else {
|
|
set e1_result [bounding e1]
|
|
|
|
set e1_x1 [lindex ${e1_result} 0]
|
|
set e1_y1 [lindex ${e1_result} 1]
|
|
set e1_z1 [lindex ${e1_result} 2]
|
|
set e1_x2 [lindex ${e1_result} 3]
|
|
set e1_y2 [lindex ${e1_result} 4]
|
|
set e1_z2 [lindex ${e1_result} 5]
|
|
|
|
set e1_good_x1 -17.610622244944413
|
|
set e1_good_y1 -0.010622244944394899
|
|
set e1_good_z1 -3.0106222449443973
|
|
set e1_good_x2 -17.589377755055537
|
|
set e1_good_y2 5.7106222251726582
|
|
set e1_good_z2 -1.6146050638816589
|
|
|
|
set e1_x1_percent [GetPercent ${e1_x1} ${e1_good_x1}]
|
|
set e1_y1_percent [GetPercent ${e1_y1} ${e1_good_y1}]
|
|
set e1_z1_percent [GetPercent ${e1_z1} ${e1_good_z1}]
|
|
set e1_x2_percent [GetPercent ${e1_x2} ${e1_good_x2}]
|
|
set e1_y2_percent [GetPercent ${e1_y2} ${e1_good_y2}]
|
|
set e1_z2_percent [GetPercent ${e1_z2} ${e1_good_z2}]
|
|
|
|
if {${e1_x1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x1 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_y1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y1 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_z1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z1 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_x2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x2 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_y2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y2 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_z2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z2 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
|
|
}
|
|
|
|
# 2 step
|
|
restore [locate_data_file OCC23165-curve.rle] c
|
|
mkedge result c 20 36
|
|
|
|
donly result
|
|
set res [bounding result]
|
|
fit
|
|
|
|
set x1 [lindex ${res} 0]
|
|
set y1 [lindex ${res} 1]
|
|
set z1 [lindex ${res} 2]
|
|
set x2 [lindex ${res} 3]
|
|
set y2 [lindex ${res} 4]
|
|
set z2 [lindex ${res} 5]
|
|
|
|
set good_x1 -17.6105835090592
|
|
set good_y1 -4.7133570660117909
|
|
set good_z1 -4.3679100133425806
|
|
set good_x2 -17.589416490940806
|
|
set good_y2 5.7105834892874094
|
|
set good_z2 -1.6146437997669054
|
|
|
|
set x1_percent [GetPercent ${x1} ${good_x1}]
|
|
set y1_percent [GetPercent ${y1} ${good_y1}]
|
|
set z1_percent [GetPercent ${z1} ${good_z1}]
|
|
set x2_percent [GetPercent ${x2} ${good_x2}]
|
|
set y2_percent [GetPercent ${y2} ${good_y2}]
|
|
set z2_percent [GetPercent ${z2} ${good_z2}]
|
|
|
|
if {${x1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x1 is wrong"
|
|
set status 1
|
|
}
|
|
if {${y1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y1 is wrong"
|
|
set status 1
|
|
}
|
|
if {${z1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z1 is wrong"
|
|
set status 1
|
|
}
|
|
if {${x2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x2 is wrong"
|
|
set status 1
|
|
}
|
|
if {${y2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y2 is wrong"
|
|
set status 1
|
|
}
|
|
if {${z2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z2 is wrong"
|
|
set status 1
|
|
}
|
|
|
|
if { ${status} == 0 && ${exception_status} == 0&& ${e1_status} == 0 } {
|
|
puts "${BugNumber}: OK"
|
|
} else {
|
|
puts "${BugNumber}: Faulty"
|
|
}
|
|
|
|
set 2dviewer 1
|
|
set length 15.8888
|
|
|