Adding procedures checkcolor and checkpoint.
Modified test cases which are used QAGetPixelColor or QAAISGetPixelColor2d
Allow using command QAAISGetPixelColor2d on WNT
Rename test case tests/bugs/vis/bug19619 to pro19619
Added test cases to modalg and moddata
return 0;
}
-#ifndef WNT
+//#ifndef WNT
//==============================================================================
//function : QAAISGetPixelColor2d
//purpose : QAAISGetPixelColor2d coord_X coord_Y Red Green Blue
}
return 0;
}
-#endif // !WNT
+//#endif // !WNT
//==============================================================================
//function : QAMoveTo2d
theCommands.Add("QAGetViewCharac", "QAGetViewCharac", __FILE__,QAAISGetViewCharac, group);
theCommands.Add("QASetViewCharac", "QASetViewCharac scale center_X center_Y proj_X proj_Y proj_Z up_X up_Y up_Z at_X at_Y at_Z", __FILE__,QAAISSetViewCharac, group);
theCommands.Add("QAGetColorCoord", "QAGetColorCoord [3d|2d]", __FILE__,QAAISGetColorCoord, group);
-#ifndef WNT
+//#ifndef WNT
theCommands.Add("QAAISGetPixelColor2d",
"QAAISGetPixelColor2d coord_X coord_Y [Red Green Blue] : Check a color of pixel",
__FILE__, QAAISGetPixelColor2d, group);
-#endif
+//#endif
theCommands.Add("v2dgetgrid",
"v2dgetgrid coord_X coord_Y [grid_X grid_Y] : Get/print coordinates of a grid point near to (coord_X, coord_Y)",
return
}
+
+
+# Procedure to check color in the point near default coordinate
+
+proc checkpoint {coord_x coord_y rd_ch gr_ch bl_ch} {
+ set x_start [expr ${coord_x} - 2]
+ set y_start [expr ${coord_y} - 2]
+ set mistake 0
+ set i 0
+ while { $mistake != 1 && $i <= 5 } {
+ set j 0
+ while { $mistake != 1 && $j <= 5 } {
+ set position_x [expr ${x_start} + $j]
+ set position_y [expr ${y_start} + $i]
+ puts $position_x
+ puts $position_y
+ global color2d
+ if { [info exists color2d] } {
+ set color [ QAAISGetPixelColor2d ${position_x} ${position_y} ]
+ } else {
+ set color [ QAGetPixelColor ${position_x} ${position_y} ]
+ }
+ regexp {RED +: +([-0-9.+eE]+)} $color full rd
+ regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
+ regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+ set rd_int [expr int($rd * 1.e+05)]
+ set gr_int [expr int($gr * 1.e+05)]
+ set bl_int [expr int($bl * 1.e+05)]
+
+ if { $rd_ch != 0 } {
+ set tol_rd [expr abs($rd_ch - $rd_int)/$rd_ch]
+ } else {
+ set tol_rd $rd_int
+ }
+ if { $gr_ch != 0 } {
+ set tol_gr [expr abs($gr_ch - $gr_int)/$gr_ch]
+ } else {
+ set tol_gr $gr_int
+ }
+ if { $bl_ch != 0 } {
+ set tol_bl [expr abs($bl_ch - $bl_int)/$bl_ch]
+ } else {
+ set tol_bl $bl_int
+ }
+
+ if { $tol_rd > 0.2 || $tol_gr > 0.2 || $tol_bl > 0.2 } {
+ puts "Warning : Point with true color was not found near default coordinates"
+ set mistake 0
+ } else {
+ set mistake 1
+ }
+ incr j
+ }
+ incr i
+ }
+ return $mistake
+}
+
+# Procedure to check color using command QAgetPixelColor with tolerance
+proc checkcolor { coord_x coord_y rd_get gr_get bl_get } {
+ puts "Coordinate x = $coord_x"
+ puts "Coordinate y = $coord_y"
+ puts "RED color of RGB is $rd_get"
+ puts "GREEN color of RGB is $gr_get"
+ puts "BLUE color of RGB is $bl_get"
+
+ if { $coord_x <= 1 || $coord_y <= 1 } {
+ puts "Error : minimal coordinate is x = 2, y = 2. But we have x = $coord_x y = $coord_y"
+ return -1
+ }
+ global color2d
+ if { [info exists color2d] } {
+ set color [ QAAISGetPixelColor2d ${coord_x} ${coord_y} ]
+ } else {
+ set color [ QAGetPixelColor ${coord_x} ${coord_y} ]
+ }
+
+ regexp {RED +: +([-0-9.+eE]+)} $color full rd
+ regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
+ regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+ set rd_int [expr int($rd * 1.e+05)]
+ set gr_int [expr int($gr * 1.e+05)]
+ set bl_int [expr int($bl * 1.e+05)]
+ set rd_ch [expr int($rd_get * 1.e+05)]
+ set gr_ch [expr int($gr_get * 1.e+05)]
+ set bl_ch [expr int($bl_get * 1.e+05)]
+
+ if { $rd_ch != 0 } {
+ set tol_rd [expr abs($rd_ch - $rd_int)/$rd_ch]
+ } else {
+ set tol_rd $rd_int
+ }
+ if { $gr_ch != 0 } {
+ set tol_gr [expr abs($gr_ch - $gr_int)/$gr_ch]
+ } else {
+ set tol_gr $gr_int
+ }
+ if { $bl_ch != 0 } {
+ set tol_bl [expr abs($bl_ch - $bl_int)/$bl_ch]
+ } else {
+ set tol_bl $bl_int
+ }
+ set status 0
+ if { $tol_rd > 0.2 } {
+ puts "Warning : RED light of additive color model RGB is invalid"
+ set status 1
+ }
+ if { $tol_gr > 0.2 } {
+ puts "Warning : GREEN light of additive color model RGB is invalid"
+ set status 1
+ }
+ if { $tol_bl > 0.2 } {
+ puts "Warning : BLUE light of additive color model RGB is invalid"
+ set status 1
+ }
+
+ if { $status != 0 } {
+ puts "Warning : Colors of default coordinate are not equal"
+ }
+
+ global stat
+ if { $tol_rd > 0.2 || $tol_gr > 0.2 || $tol_bl > 0.2 } {
+ set info [checkpoint $coord_x $coord_y $rd_ch $gr_ch $bl_ch]
+ set stat [lindex $info end]
+ if { ${stat} != 1 } {
+ puts "Error : Colors are not equal in default coordinate and in the near coordinates too"
+ return $stat
+ } else {
+ puts "Point with valid color was found"
+ return $stat
+ }
+ } else {
+ set stat 1
+ }
+}
+
+
# Procedure to check if sequence of values in listval follows linear trend
# adding the same delta on each step.
#
#######################################################################
pload QAcommands
-set r_1 0.4
-set r_2 0.5
-set g_1 0.9
-set g_2 1
-set b_1 0
-set b_2 0.1
-set x1 128
-set y1 235
+set x_coord 128
+set y_coord 235
+
box result 100 100 100
vdisplay result
vsetdispmode 1
vfit
vsetcolor result GREEN
-set color [ QAGetPixelColor ${x1} ${y1} ]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-
-set red_status 0
-if { $rd < $r_1 || $rd > $r_2 } {
- set red_status 1
-} else {
- set red_status 0
-}
-
-set green_status 0
-if { $gr < $g_1 || $gr > $g_2 } {
- set green_status 1
-} else {
- set green_status 0
-}
-
-set blue_status 0
-if { $bl < $b_1 || $bl > $b_2 } {
- set blue_status 1
-} else {
- set blue_status 0
-}
-
-if { $red_status != 0 || $green_status != 0 || $blue_status != 0 } {
- puts "Error : color are not equal"
- puts "Error : QA command QAGetPixelColor doesn't work properly"
-}
+
+checkcolor $x_coord $y_coord 0.45 0.95 0.05
+
set 3dviewer 1
+
explode b_4 v
distmini d $ver b_5
-regexp {([-0-9.+eE]+)} [dump d_val] full dist
+regexp {([-0-9.+eE]+)$} [dump d_val] full dist
regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance $ver] full toler
if {$dist > $toler} {
distmini d1 result_1 b
distmini d2 [lindex $le [expr [llength $le] - 1]] b
- regexp {([-0-9.+eE]+)} [dump d1_val] full du1
+ regexp {([-0-9.+eE]+)$} [dump d1_val] full du1
if { [expr $du1 > 1e-7] } {
puts "Faulty : The distance between first vertex and shellB is $du1. It is more then 1e-7."
}
- regexp {([-0-9.+eE]+)} [dump d2_val] full du2
+ regexp {([-0-9.+eE]+)$} [dump d2_val] full du2
if { [expr $du2 > 1e-7] } {
puts "Faulty : The distance between last vertex and shellB is $du2. It is more then 1e-7."
}
puts "Faulty :The result of section is an empty compound."
} else {
distmini d1 res_1 a_1
- regexp {([-0-9.+eE]+)} [dump d1_val] full len1
+ regexp {([-0-9.+eE]+)$} [dump d1_val] full len1
if ([expr $len1 > 1e-7]) {
puts "Faulty :The section is incomplite."
} else {
distmini d2 res_2 a_2
- regexp {([-0-9.+eE]+)} [dump d2_val] full len2
+ regexp {([-0-9.+eE]+)$} [dump d2_val] full len2
if ([expr $len2 > 1e-7]) {
puts "Faulty :The section is incomplite."
}
--- /dev/null
+puts "================"
+puts "OCC1013"
+puts "OCC906"
+puts "================"
+puts ""
+
+restore [locate_data_file DXF906.rle] wire
+puts [checkshape wire]
+
+mkplane result wire
+
+set square 92131.6
+set 2dviewer 0
explode b_4 v
distmini d $ver b_5
-regexp {([-0-9.+eE]+)} [dump d_val] full dist
+regexp {([-0-9.+eE]+)$} [dump d_val] full dist
regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [ maxtolerance $ver ] full toler
if { [expr $dist > $toler] } {
explode result v
explode a e
distmini di result_1 a_3
-regexp {([-0-9.+eE]+)} [dump $di_val] full dis
+regexp {([-0-9.+eE]+)$} [dump $di_val] full dis
if { [expr $dis > 1.e-5] } {
puts "Faulty : Result shape is WRONG !!!"
} else {
explode result v
explode a e
distmini di result_2 a_3
-regexp {([-0-9.+eE]+)} [dump $di_val] full dis
+regexp {([-0-9.+eE]+)$} [dump $di_val] full dis
if { [expr $dis > 1.e-5] } {
puts "Faulty : Result shape is WRONG !!!"
} else {
vdisplay result
vfit
-set Yellow_R 1
-set Yellow_G 1
-set Yellow_B 0
+set x_coord 204
+set y_coord 297
-set x1 204
-set y1 297
+checkcolor $x_coord $y_coord 1 1 0
-set x2 251
-set y2 232
+set x_coord 251
+set y_coord 232
-QAGetPixelColor $x1 $y1 $Yellow_R $Yellow_G $Yellow_B
-QAGetPixelColor $x2 $y2 $Yellow_R $Yellow_G $Yellow_B
+checkcolor $x_coord $y_coord 1 1 0
set square 20000
set only_screen 1
pload QAcommands
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 50196
- set gr_ch 34901
- set bl_ch 5098
-} else {
- set rd_ch 50588
- set gr_ch 34901
- set bl_ch 5098
-}
-
restore [locate_data_file OCC397.brep] a
puts [checkshape a]
vfit
vsetdispmode result 1
-set color [QAGetPixelColor 235 180]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 235
+set y_coord 180
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.5 0.35 0.05
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { ${stat} != 1 } {
puts "Error : Shading is missing in 3D Viewer"
}
--- /dev/null
+#INTERFACE IGES
+puts "========"
+puts "OCC398"
+puts "========"
+puts ""
+#############################################################
+## ShapeHealing modification 1:1 increases number of unique shapes in compound structure.
+#############################################################
+
+pload XDE
+catch { source $env(CSF_DrawPluginQADefaults)/QARebuildCommands }
+
+restore [locate_data_file OCC398.brep] a
+#statsh a
+#nbshapes a
+#Statshape should give 3 solids
+#Nbshape should return 1 solid
+
+scaleshape result a 10
+
+#statsh res
+
+
+set nb_info [nbshapes result]
+set nb_sol_good 1
+
+#if { $sol == 1 } {
+# puts " OCC398 : scaleshape operation was made properly"
+#} else {
+# puts "Faulty OCC398: scaleshape operation was made wrongly"
+#}
+
+#Statshape should give 3 solids
+#Nbshape should return 1 solid (3 solids is returned if bug not fixed)
+
+set square 180000.
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC418 "
+puts "CTS20370"
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO904_cts20370-part.rle] part
+puts [checkshape part]
+
+restore [locate_data_file cts20370-tool.rle] tool
+puts [checkshape tool]
+
+bsection sec part tool
+puts [checkshape -top sec]
+
+bcut result part tool
+puts [checkshape -top result]
+
+set square 273365.
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC418 "
+puts "CTS20370"
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO904_cts20370-part.rle] a
+puts [checkshape a]
+
+restore [locate_data_file cts20370-tool.rle] b
+puts [checkshape b]
+
+bsection sec a b
+
+bfuse result a b
+puts [checkshape -top result]
+
+set square 261265.
+set 2dviewer 0
+
--- /dev/null
+# Original bug :
+
+puts "========================"
+puts " OCC419 "
+puts "FRA50047"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO904_fra50047a.rle] a
+puts [checkshape a]
+
+restore [locate_data_file fra50047b.rle] b
+puts [checkshape b]
+
+bsection sec a b
+puts [checkshape -top sec]
+
+bfuse result a b
+puts [checkshape -top result]
+
+set square 508496.
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========================"
+puts " OCC420 "
+puts "PRO12473"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO909_objects.brep] a
+puts [checkshape a]
+
+restore [locate_data_file CTO909_tool_4.brep] b
+puts [checkshape b]
+
+bsection sec a b
+puts [checksection sec]
+puts [checkshape sec]
+explode a so
+renamevar a_1 a
+
+bcut result a b
+
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC421 "
+puts "========================"
+puts ""
+
+profile p c 5 180 l 5 t 0 5 d -1 0 c 5 180 l 5
+polyline w 0 0 0 0 0 10
+pipe p w p
+nexplode p f
+
+depouille result p 0 0 1 p_1 5 0 0 0 0 0 1 \
+p_7 1 0 0 0 0 0 1 \
+p_8 5 0 0 0 0 0 1 \
+p_2 1 0 0 0 0 0 1
+
+set square 659.647
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC422 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+plane p 0 0 0 0 0 1 -1 0 0
+psphere p p 20 0 90
+#profile pf o -4 -4 1 l 8 d 0 1 l 8 d -1 0 l 8
+profile pf o -4 -4 1 l 8 c 2 90 l 8 d -1 0 l 8
+prism p2 pf 0 0 40
+bfuse f p p2
+nexplode f f
+
+depouille result f 0 0 1 f_7 5 0 0 40 0 0 1
+
+set square 4630.78
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC422 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+plane ps 10 -3 0 1 0 0 0 .2 1
+psphere ps ps 20
+profile pf o 5 1 5 l 10 c 2 90 l 5 d -1 0 \
+l 14 d 0 -1 l 5 c 2 90
+prism pr pf 0 0 30
+bfuse f ps pr
+nexplode f f
+
+depouille result f 0 0 1 f_4 4 0 0 30 0 0 1
+
+set square 5719.09
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC423 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file cylindre.rle] cyl
+puts [checkshape cyl]
+
+restore [locate_data_file contour.rle] cont
+puts [checkshape cont]
+
+mkplane cont cont
+nexplode cyl F
+
+ttranslate cont 0 200 0
+featdprism cyl cont cont 10 1 1
+
+if [catch {featperformval dprism result 55 cyl_3 } catch_result] {
+ puts "Faulty OCC423 (case 1): function FEATPERFORMVAL works wrongly"
+} else {
+ puts "OCC423 OK (case 1): function FEATPERFORMVAL works properly"
+}
+
+set square 94944.4
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC423 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file pro15515_base.rle] base
+puts [checkshape base]
+
+restore [locate_data_file pro15515_face.rle] cont
+puts [checkshape cont]
+
+explode base face
+copy base_4 ffrom
+copy base_3 funtil
+
+### From Until
+featrevol base cont cont 54.06494140625 70.2841796875 0 0 0 1 1 1
+featperform revol result funtil ffrom
+
+set square 560028.
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC424 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CFE_e_lonfzx.rle] E
+nexplode E f
+
+profile cont S E_10 F 50 -100 X 50 Y -100 X -50
+featdprism E cont E_10 10 1 1
+
+if [catch {featperform dprism result E_5 E_6 } catch_result] {
+ puts "Faulty OCC424 (case 1): function FEATPERFORM works wrongly"
+} else {
+ puts "OCC424 OK (case 1): function FEATPERFORM works properly"
+}
+
+set square 978236.
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC424 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CFE_e_lonfzx.rle] E
+nexplode E f
+
+profile cont S E_10 F 50 -100 X 50 Y -100 X -50
+featdprism E cont E_10 10 1 1
+
+if [catch {featperform dprism result } catch_result] {
+ puts "Faulty OCC424 (case 2): function FEATPERFORM works wrongly"
+} else {
+ puts "OCC424 OK (case 2): function FEATPERFORM works properly"
+}
+
+set square 978236.
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC427 "
+puts "(case 1)"
+puts "========="
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces calcul type} {
+ uplevel #0 explode s f
+ uplevel #0 offsetparameter 1e-7 $calcul $type
+ uplevel #0 offsetload s $distance $faces
+ uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+pcone s 9 4 15 90
+trotate s 0 0 0 0 0 1 90
+
+OFFSETSHAPE 1 {} $calcul $type
+
+set square 671.382
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC427 "
+puts "(case 2)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces calcul type} {
+ uplevel #0 explode s f
+ uplevel #0 offsetparameter 1e-7 $calcul $type
+ uplevel #0 offsetload s $distance $faces
+ uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+pcone s 9 4 15 90
+trotate s 0 0 0 0 0 1 90
+
+OFFSETSHAPE 1 {s_5} $calcul $type
+
+set square 858.167
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC427 "
+puts "(case 3)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces calcul type} {
+ uplevel #0 explode s f
+ uplevel #0 offsetparameter 1e-7 $calcul $type
+ uplevel #0 offsetload s $distance $faces
+ uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+pcone s 9 4 15 90
+trotate s 0 0 0 0 0 1 90
+
+OFFSETSHAPE 1 {s_2 s_3} $calcul $type
+
+set square 885.688
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC427 "
+puts "(case 4)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces calcul type} {
+ uplevel #0 explode s f
+ uplevel #0 offsetparameter 1e-7 $calcul $type
+ uplevel #0 offsetload s $distance $faces
+ uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+circle w -20 0 0 20
+mkedge w w 0 pi*2/5
+wire w w
+polyline profile 0 0 0 10 0 0 5 0 5 0 0 0
+mkplane profile profile
+pipe s w profile
+
+OFFSETSHAPE 1 {} $calcul $type
+
+set square 1306.3
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC427 "
+puts "(case 5)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces calcul type} {
+ uplevel #0 explode s f
+ uplevel #0 offsetparameter 1e-7 $calcul $type
+ uplevel #0 offsetload s $distance $faces
+ uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+circle w -20 0 0 20
+mkedge w w 0 pi*2/5
+wire w w
+polyline profile 0 0 0 10 0 0 5 0 5 0 0 0
+mkplane profile profile
+pipe s w profile
+
+OFFSETSHAPE 1 {s_2} $calcul $type
+
+set square 1297.39
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC427 "
+puts "(case 6)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces calcul type} {
+ uplevel #0 explode s f
+ uplevel #0 offsetparameter 1e-7 $calcul $type
+ uplevel #0 offsetload s $distance $faces
+ uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+circle w -20 0 0 20
+mkedge w w 0 pi*2/5
+wire w w
+polyline profile 0 0 0 10 0 0 5 0 5 0 0 0
+mkplane profile profile
+pipe s w profile
+
+OFFSETSHAPE 1 {s_4 s_5} $calcul $type
+
+set square 808.448
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC516"
+puts "========"
+puts ""
+#########################################
+## Wrong classification of the 3D-point with the Solid .
+#########################################
+
+point p 14.99999878745701 5.52319672860377e-07 7.78393041
+vertex v 14.99999878745701 5.52319672860377e-07 7.78393041
+restore [locate_data_file OCC516.brep] result
+
+set cls [bclassify result p]
+
+if { [regexp {OUT} $cls] } {
+ puts "Faulty : Wrong classification of the 3D-point with the Solid"
+} else {
+ puts "CORRECT classification of the 3D-point with the Solid"
+}
+
+set square 7752.98
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC539 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+ puts "==========================================="
+ puts " BOPCOMMON case_4_shell.brep and case_4_wire3.brep"
+ puts "==========================================="
+ puts " "
+ puts [restore [locate_data_file case_4_shell.brep] a]
+ puts [restore [locate_data_file case_4_wire3.brep] b]
+ puts [bop a b]
+ puts [bopcommon result]
+set nb_info [nbshapes result]
+set nb_v_good 15
+set nb_e_good 10
+
+set length 1150.78
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC539 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+ puts "============================================"
+ puts " BOPTUC case_4_shell.brep and case_4_wire3.brep"
+ puts "============================================"
+ puts " "
+ puts [restore [locate_data_file case_4_shell.brep] a]
+ puts [restore [locate_data_file case_4_wire3.brep] b]
+ puts [bop a b]
+ puts [boptuc result]
+
+set nb_info [nbshapes result]
+set nb_v_good 16
+set nb_e_good 11
+
+set length 929.278
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC571"
+puts "========"
+puts ""
+##########################
+## Fillet operation fails on given shape
+##########################
+## LIMITATION: Builds fillet with 0.03<=r<=1.2
+##########################
+
+restore [locate_data_file OCC571.brep] a
+puts [checkshape a]
+explode a
+
+if [catch {fillet result a_1 1.2 a_2 } catch_result] {
+ puts "Faulty OCC571 exception (case 1): Fillet operation fails on given shape "
+} else {
+ puts " OCC571 (case 1) OK: Fillet operation was made"
+}
+
+set square 21118.1
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC571"
+puts "========"
+puts ""
+##########################
+## Fillet operation fails on given shape
+##########################
+## LIMITATION: Builds fillet with 0.03<=r<=1.2
+##########################
+
+restore [locate_data_file OCC571.brep] a
+puts [checkshape a]
+explode a
+
+if [catch {fillet result a_1 0.03 a_2 } catch_result] {
+ puts "Faulty OCC571 exception (case 2): Fillet operation fails on given shape "
+} else {
+ puts " OCC571 (case 2) OK: Fillet operation was made"
+}
+
+set square 21209.9
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " SAL594 "
+puts "========================"
+puts ""
+###################################
+## It is impossible to put correct fillets on the shape
+###################################
+
+restore [locate_data_file SAL594.brep] a
+explode a e
+
+if [catch {blend result1 a 20 a_23 20 a_25 20 a_26 20 a_28} catch_result] {
+ puts "Faulty SAL594 (case 1): function BLEND works wrongly"
+} else {
+ puts "SAL594 OK (case 1): function BLEND works OK"
+}
+
+if [catch {blend result result1 2.5 a_15 2.5 a_12 2.5 a_4} catch_result] {
+ puts "Faulty SAL594 (case 2): function BLEND works wrongly."
+} else {
+ puts "SAL594 OK (case 2): function BLEND works OK"
+}
+
+set square 60513.1
+set 2dviewer 0
--- /dev/null
+puts "TODO ?OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?OCC12345 ALL: Error : The square of result shape is"
+
+puts "========================"
+puts " OCC600"
+puts "========================"
+## Result of BOPCOMMON operation is unclosed shape inspite of source solids are valid
+############################################################
+cpulimit 5000
+restore [locate_data_file OCC600_1.brep] a
+puts [checkshape a]
+restore [locate_data_file OCC600_2.brep] b
+puts [checkshape b]
+bop b a
+
+bopcommon result
+
+set square 41970.8
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========================"
+puts " OCC602 "
+puts "========================"
+puts ""
+###########################################
+## Exception during filet creation if it cross samedge of cylinder.
+###########################################
+
+restore [locate_data_file OCC602.brep] a
+puts [checkshape a]
+
+explode a e
+
+if [catch {blend result a 20 a_9 } catch_result] {
+ puts "Faulty OCC602: function BLEND works wrongly"
+} else {
+ puts "OCC602 OK: function BLEND works OK"
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC605"
+puts "========================"
+puts ""
+##############################
+## No any faces in result of pipe command.
+##############################
+
+restore [locate_data_file OCC605a.brep] w1
+puts [checkshape w1]
+restore [locate_data_file OCC605b.brep] w2
+puts [checkshape w2]
+
+if { [catch {pipe result w2 w1 } catch_result] } {
+ puts "Faulty OCC605: function PIPE works with exception."
+} else {
+ explode result f
+ set nom 0
+ set j 1
+ repeat 20 {
+ if { [regexp {FACE} [whatis result_$j]] != 1 } {
+ break
+ } else {
+ set nom [expr $nom + 1]
+ }
+ incr j
+ }
+ if { $nom == 0 } {
+ puts " Faulty OCC605: Result of PIPE operation is incorrect !!! "
+ } else {
+ puts "OCC605 OK : Result of PIPE operation is NOT empty shell!!! "
+ }
+}
+
+set square 20.6253
+set 2dviewer 0
--- /dev/null
+puts "TODO ?OCC12345 ALL: Error : The square of result shape is"
+
+puts "========================"
+puts " OCC615"
+puts "========================"
+puts ""
+#############################
+## Wrong resultat of BLEND operation
+#############################
+
+restore [locate_data_file OCC615.brep] a
+puts [checkshape a]
+explode a e
+
+if [catch {blend result a 9 a_15 } catch_result] {
+ puts "Faulty OCC615: function BLEND works with exception"
+} else {
+ puts "OCC615 OK: function CHAMF works OK"
+}
+
+set square 197055.
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC616"
+puts "========================"
+puts ""
+########################################
+## Function MKOFFSET gives exception for attached face
+########################################
+
+restore [locate_data_file OCC616.brep] a
+puts [checkshape a]
+
+if { [catch {mkoffset result a 5 -2} catch_result] } {
+ puts "Faulty OCC616: function MKOFFSET works with exception"
+} else {
+ renamevar result_1 result
+ puts [checkshape result]
+ puts "OCC616 OK: function MKOFFSET works OK"
+}
+
+set length 1062.78
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "OCC620"
+puts "========================"
+puts ""
+############################
+## No possibility to cut the shapes.
+############################
+
+restore [locate_data_file OCC620a.brep] a
+puts [checkshape a]
+restore [locate_data_file OCC620b.brep] b
+puts [checkshape b]
+
+bop a b
+
+if [catch { bopcut result } catch_result] {
+ puts "Faulty OCC620 : BOPCUT operation was made wrongly"
+} else {
+ puts "OCC620 OK: BOPCUT operation works OK"
+}
+
+set square 314742.
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "OCC620"
+puts "========================"
+puts ""
+############################
+## No possibility to cut the shapes.
+############################
+
+restore [locate_data_file OCC620a.brep] a
+puts [checkshape a]
+restore [locate_data_file OCC620b.brep] b
+puts [checkshape b]
+
+bop a b
+
+if [catch { boptuc result } catch_result] {
+ puts "Faulty OCC620 : BOPTUC operation was made wrongly"
+} else {
+ puts "OCC620 OK: BOPTUC operation works OK"
+}
+
+set square 1.15562e+06
+set 2dviewer 0
--- /dev/null
+puts "========================"
+puts "OCC625"
+puts "========================"
+puts ""
+###############################################################################
+## Created filler looks strange (see attached picture) inspite of checkshapes told about correct source and result shapes.
+###############################################################################
+
+pload QAcommands
+
+restore [locate_data_file OCC625.brep] a
+puts [checkshape a]
+
+vinit
+tclean a
+explode a e
+
+blend res1 a 10 a_22 10 a_14
+blend result res1 10 a_17 10 a_4
+puts [checkshape result]
+
+vinit
+vdisplay result
+vfit
+vsetdispmode result 1
+
+QAUpdateLights
+
+set x_coord 116
+set y_coord 252
+
+checkcolor $x_coord $y_coord 0.82 0.58 0.09
+
+set square 19977
+set 3dviewer 1
\ No newline at end of file
--- /dev/null
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "================"
+puts "OCC629"
+puts "================"
+puts ""
+##########################################
+## Exception during attempt to create solid by command PIPE
+##########################################
+
+restore [locate_data_file OCC629a.brep] a
+puts [checkshape a]
+
+restore [locate_data_file OCC629b.brep] b
+puts [checkshape b]
+
+if [catch {pipe result a b } catch_result] {
+ puts "Faulty OCC629: function PIPE works wrongly"
+} else {
+ puts "OCC629 OK: function PIPE works properly"
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC636"
+puts "================"
+puts ""
+#####################################
+## BRepOffsetAPI_MakePipeShell builds twisted pipe
+#####################################
+
+restore [locate_data_file OCC636a.brep] s
+puts [checkshape s]
+
+restore [locate_data_file OCC636b.brep] s1
+puts [checkshape s1]
+
+restore [locate_data_file OCC636c.brep] s2
+puts [checkshape s2]
+
+mksweep s
+addsweep s1
+addsweep s2
+
+if [catch { buildsweep result } catch_result] {
+ puts "Faulty OCC636: function buildsweep works wrongly"
+} else {
+ puts "OCC636 OK: function buildsweep works properly"
+}
+
+set square 3836.92
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC637"
+puts "(case 1)"
+puts "================"
+puts ""
+##########################################
+## BRepOffsetAPI_MakePipeShell crashes with fatal exception
+##########################################
+
+restore [locate_data_file OCC637a.brep] s
+puts [checkshape s]
+
+restore [locate_data_file OCC636c.brep] s1
+puts [checkshape s1]
+
+restore [locate_data_file OCC637c.brep] s2
+puts [checkshape s2]
+
+mksweep s
+addsweep s1
+addsweep s2
+
+if [catch { buildsweep result } catch_result] {
+ puts "Faulty OCC637 (case 1): function buildsweep works wrongly"
+}
+
+set square 1675.58
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC637"
+puts "(case 2)"
+puts "================"
+puts ""
+##########################################
+## BRepOffsetAPI_MakePipeShell crashes with fatal exception
+##########################################
+
+restore [locate_data_file OCC637d.brep] s
+puts [checkshape s]
+
+restore [locate_data_file OCC637c.brep] s1
+puts [checkshape s1]
+
+restore [locate_data_file OCC637f.brep] s2
+puts [checkshape s2]
+
+mksweep s
+addsweep s1
+addsweep s2
+
+if [catch {buildsweep result } catch_result] {
+ puts "Faulty OCC637 (case 2): function buildsweep works wrongly"
+}
+
+set square 1090.91
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error : The command can not be build"
+puts "TODO OCC12345 ALL: Faulty OCC673: function SPLITSHAPE works wrongly"
+
+puts "================"
+puts "OCC673"
+puts "================"
+puts ""
+#######################################################
+## Exception is raised during splitting face by a wire laying on the face boundary.
+#######################################################
+
+restore [locate_data_file OCC673a.brep] a
+puts [checkshape a]
+
+restore [locate_data_file OCC673b.brep] b
+puts [checkshape b]
+
+if [catch {spliteshape result a a b} catch_result] {
+ puts "Faulty OCC673: function SPLITSHAPE works wrongly"
+} else {
+ puts "OCC673 OK : function SPLITSHAPE works OK"
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is "
+
+puts "================"
+puts "OCC693"
+puts "================"
+puts ""
+###################################################
+## The boolean operations give incorrect result if one of shapes is compound
+## consisting of several adjoint solids
+####################################################
+
+box h1 234 52 0 41 98 40
+box v1 241 136 20 31 31 15
+box h3 215 120 20 78 15 15
+
+#mu4
+#fit
+
+compound h1 c1
+compound v1 c2
+
+tcopy c1 cc1
+tcopy c2 cc2
+bcommon int1 cc1 cc2
+##########checkshape -top int1
+puts [checkshape -top int1]
+
+tcopy c1 cc1
+tcopy c2 cc2
+bcut cut1 cc1 cc2
+puts [checkshape -top cut1]
+
+tcopy c1 cc1
+tcopy c2 cc2
+bcut cut2 cc2 cc1
+##########checkshape -top cut2
+puts [checkshape -top cut2]
+
+compound int1 cut1 cut2 comp3
+##########checkshape -top comp3
+puts [checkshape -top comp3]
+#donly comp3
+
+tcopy comp3 ccomp3
+tcopy h3 ch3
+bcommon int2 ccomp3 ch3
+##########checkshape -top int2
+puts [checkshape -top int2]
+#donly int2
+
+tcopy comp3 ccomp3
+tcopy h3 ch3
+bcut cut3 ccomp3 ch3
+##########checkshape -top cut3
+puts [checkshape -top cut3]
+#donly cut3
+
+tcopy comp3 ccomp3
+tcopy h3 ch3
+bcut cut4 ch3 ccomp3
+##########checkshape -top cut4
+puts [checkshape -top cut4]
+
+compound int2 cut3 cut4 result
+##########checkshape -top res
+puts [checkshape -top result]
+
+##########set che [checkshape -top res]
+##########
+##########set err [lindex $che [expr [llength $che] - 7]]
+##########if { $err == "Faulty"} {
+########## puts "Faulty OCC693"
+##########} else {
+########## puts "OCC693 OK "
+##########}
+
+set square 33196
+set 2dviewer 0
--- /dev/null
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+restore [locate_data_file OCC697_1.brep] b1
+restore [locate_data_file OCC697_2.brep] b2
+
+puts [checkshape b1]
+puts [checkshape b2]
+##############################################
+if { [catch {bfuse result b1 b2} catch_result] } {
+##############################################
+ puts "Faulty : an exception was caught"
+}
+
+set square 8879.41
+set 2dviewer 0
+
--- /dev/null
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+puts "#"
+puts "Non stable test case on Linux. MKV. 28.04.2010"
+puts "#"
+
+restore [locate_data_file OCC697_2.brep] b2
+restore [locate_data_file OCC697_3.brep] b3
+
+puts [checkshape b2]
+puts [checkshape b3]
+##############################################
+if { [catch {bfuse result b2 b3} catch_result] } {
+##############################################
+ puts "Faulty : an exception was caught"
+}
+
+set square 25357.5
+set 2dviewer 0
+
--- /dev/null
+
+puts "======= OCC698 ======="
+######################################
+## Cut operation produces bad result on attached shapes
+######################################
+cpulimit 10000
+restore [locate_data_file OCC698_1.brep] b4
+puts [checkshape b4]
+restore [locate_data_file OCC698_2.brep] b5
+puts [checkshape b5]
+
+bcut result b5 b4
+
+set square 19048.2
+set 2dviewer 0
+
--- /dev/null
+
+puts "======="
+puts "OCC702"
+puts "SAM1541"
+puts "======="
+puts ""
+########################
+## No possibility to make a prism.
+########################
+
+restore [locate_data_file OCC702.brep] a
+
+if [ catch { prism result a 100 100 100 } catch_result ] {
+ puts "Faulty OCC702 (case 1)"
+} else {
+ regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full sq
+ if { $sq <= 0. } {
+ puts "Faulty OCC702 (case 2)"
+ } else {
+ puts "OCC702 OK"
+ }
+}
+
+set square 308957.
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC712"
+puts "========"
+puts ""
+#########################################################
+## Exeption is raised in DRAW during building draft with help command "depouille"
+## on face in the attached shape.
+#########################################################
+
+restore [locate_data_file OCC712.brep] a
+puts [checkshape a]
+
+explode a f
+
+if [catch {depouille result a 0 0 1 a_2 10 0 39.6875 0 0. 0. -1 } catch_result] {
+ puts "Faulty OCC712"
+} else {
+ puts "OCC712 OK"
+}
+
+set square 41956.4
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "========"
+puts "OCC714"
+puts "========"
+puts ""
+####################################################
+## After command sew in DRAW on attached shape free wires are disappeared.
+####################################################
+
+restore [locate_data_file OCC714.brep] a
+puts [checkshape a]
+
+set nb_info1 [nbshapes a]
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info1 full ve1
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info1 full ed1
+regexp {WIRE +: +([-0-9.+eE]+)} $nb_info1 full we1
+
+sewing result 0.1 a
+
+set nb_info2 [nbshapes a]
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info2 full ve2
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info2 full ed2
+regexp {WIRE +: +([-0-9.+eE]+)} $nb_info2 full we2
+
+if { $ve1 != $ve2 || $ed1 != $ed2 || $we1 != $we2} {
+ puts [format "Faulty OCC714 : SEWING operation was made WRONGLY: vertexes before %s, edges before %s, wires before %s" $ve1 $ed1 $we1]
+ puts [format " vertexes after %s, edges after %s, wires after %s" $ve1 $ed1 $we1]
+} else {
+ puts "OK OCC714: SEWING operation was made PROPERLY"
+}
+
+set square 12917.1
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC715"
+puts "SAM1582"
+puts "========"
+puts ""
+##########################################
+## section of two faces produces wrong number of section edges
+##########################################
+
+restore [locate_data_file OCC715_2.brep] f2
+restore [locate_data_file OCC715_3.brep] f3
+
+bsection result f2 f3
+
+set expl [explode result]
+
+set length [llength $expl]
+puts "Result is $length section edge"
+
+if {$length != 3} {
+ puts "Faulty OCC715"
+} else {
+ puts "OCC715 OK"
+}
+
+set length 100.
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC726"
+puts "SAM1594"
+puts "========"
+puts ""
+######################################
+## Boolean operations are impossible on the attachment.
+######################################
+
+restore [locate_data_file OCC726.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+
+set square 0
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC726"
+puts "SAM1594"
+puts "========"
+puts ""
+######################################
+## Boolean operations are impossible on the attachment.
+######################################
+
+restore [locate_data_file OCC726.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC743"
+puts "========"
+puts ""
+#######################################
+## The result of offset operation on a planar wire is wrong
+#######################################
+
+restore [locate_data_file OCC743_corr2.brep] a
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -15 } status] } {
+ puts "Faulty OCC743"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 3533.52
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#######################################################
+## There are several cases where the offset algo works wrong for various reasons
+## for wires containing only linear segments and arcs of circle.
+#######################################################
+
+restore [locate_data_file OCC745_1.brep] a
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -10 } status] } {
+ puts "Faulty : an exception was caught"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 932.825
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC745"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#############################################
+# Negative offset parameter leads to positive offset and vise
+# versa. Result of the offset represent an edge instead of wire.
+#############################################
+
+restore [locate_data_file OCC745_nb1.brep] w
+mkoffset result w 1 -1
+
+set list [whatis result_1]
+
+if { [regexp {WIRE} $list] == 0 } {
+ puts "Faulty OCC745"
+} else {
+ puts "OCC745 OK"
+}
+
+renamevar result_1 result
+
+set length 0
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#########################
+# Not correct creation of bisector loci.
+#########################
+
+restore [locate_data_file OCC745_nb2.brep] w
+mkplane f w
+topoload f
+drawcont
+
+mat
+result
+
+##################################################
+#Exception thrown: Standard_ConstructionError: Offset wire is not closed.
+##################################################
+
+if { [catch { mkoffset result w 10 -7 } status] } {
+ puts "Faulty OCC745"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 1930.99
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: Exception "
+puts "TODO OCC12345 ALL: Faulty OCC745"
+puts "TODO OCC12345 ALL: Error : The command can not be build."
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+##################################################
+# Exception thrown: Standard_ConstructionError: Offset wire is not closed.
+##################################################
+
+restore [locate_data_file OCC745_nb3.brep] w
+puts [checkshape w]
+
+if { [catch { mkoffset result w 1 10 } status] } {
+ puts "Faulty OCC745"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 0
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+##################################################
+## This test does not terminate due to infinite loop in bissector calculation
+##################################################
+
+restore [locate_data_file OCC745_2.brep] a
+puts [checkshape a]
+mkplane pl a
+topoload pl
+drawcont
+smallview -2D-
+2dfit
+
+set min 30
+cpulimit [expr 60 * $min]
+
+mat
+puts "OCC745 OK"
+
+renamevar pl result
+set square 5844.55
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+puts "TODO OCC12345 ALL: Exception: result is not a topological shape!!!"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+pload QAcommands
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+###########################################
+# Exception Standard_NullValue while performing the offset:
+###########################################
+
+restore [locate_data_file OCC745_pocket1.brep] a
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -10 } status] } {
+ puts "Faulty OCC745"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ set ve 0
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 0
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+puts "TODO OCC12345 ALL: Error : The command is not valid. The length is"
+
+puts "========"
+puts "OCC745"
+puts "BUC60878"
+puts "========"
+puts ""
+################################
+# There are discontinuities in offset contours:
+################################
+
+restore [locate_data_file BUC60878-wire3.brep] a
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -10 } status] } {
+ puts "Faulty OCC745"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 0
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+puts "TODO OCC12345 ALL: Error : The command is not valid. The length is"
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+######################################################
+## Exception thrown: Standard_ConstructionError: Offset wire is not closed:
+######################################################
+
+source [locate_data_file OCC745_cont1.dat]
+puts [checkshape pp]
+
+if { [catch { mkoffset result pp 1 -10 } status] } {
+ puts "Faulty OCC745"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 0
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+###################################################
+## Exception thrown: Standard_ConstructionError: Offset wire is not closed:
+###################################################
+
+restore [locate_data_file BUC60830-face2.brep] f
+puts [checkshape f]
+
+if { [catch { mkoffset result f 45 -0.042225 } status] } {
+ puts "Faulty OCC745"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 72.1851
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error : The command is not valid. The length is"
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#####################################################
+# The latter command enters an endless loop: it was not completed in 30 min:
+#####################################################
+
+source [locate_data_file OCC745_cont2.dat]
+puts [checkshape pq]
+
+if { [catch { mkoffset result pq 1 -10 } status] } {
+ puts "Faulty OCC745"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 0
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC748"
+puts "========"
+puts ""
+##################################
+## Incorrect work of DRAW-command "common"
+##################################
+
+restore [locate_data_file OCC748_1.brep] s1
+puts [checkshape s1]
+restore [locate_data_file OCC748_2.brep] s2
+puts [checkshape s2]
+
+bcommon result s1 s2
+
+set square 628.319
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC755"
+puts "SAM1607"
+puts "(case 1)"
+puts "========"
+puts ""
+####################################################################
+##Result of cut of capteur2 from capteur1 is a solid. It must be a compound, as it consists of 2 bodies.
+####################################################################
+
+restore [locate_data_file OCC755_1.brep] a1
+puts [checkshape a1]
+restore [locate_data_file OCC755_2.brep] a2
+puts [checkshape a2]
+
+bcut result a1 a2
+
+set wt_is [whatis result]
+
+set lth [llength $wt_is]
+
+if {$lth < 5} {
+ puts "Faulty OCC755 (case 1)"
+} else {
+ if {[regexp {COMPOUND} $wt_is] == 1} {
+ puts "OCC755 OK (case 2)"
+ } else {
+ puts "Faulty OCC755 (case 2)"
+ }
+}
+
+set square 1.57358e+06
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC758"
+puts "SAM1613"
+puts "========"
+puts ""
+###################################################
+##It's impossible to cut two little shapes from the big one in the attached file.
+###################################################
+
+restore [locate_data_file OCC758.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+puts [checkshape a_3]
+
+bcut res1 a_1 a_2
+
+puts [checkshape res1]
+
+bcut result res1 a_3
+
+set square 49473.6
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========"
+puts "OCC763"
+puts "========"
+puts ""
+####################################
+## Bad result of fuse operation between two cylinders
+####################################
+
+restore [locate_data_file OCC763_c1.brep] c1
+puts [checkshape c1]
+restore [locate_data_file OCC763_c2.brep] c2
+puts [checkshape c2]
+
+bop c1 c2
+bopfuse result
+
+set square 23189.4
+set 2dviewer 0
+
--- /dev/null
+
+puts "======="
+puts "OCC767"
+puts "======="
+puts ""
+############################################
+## Command sameparametr in DRAW hangs on attached edge.
+############################################
+
+restore [locate_data_file OCC767.brep] result
+
+sameparameter result
+
+set length 7.6901
+set 2dviewer 0
--- /dev/null
+puts "TODO ?OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC770"
+puts "SAM1636"
+puts "========"
+puts ""
+############################
+## Impossible fusing 3 attached shapes
+############################
+
+restore [locate_data_file OCC770.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+puts [checkshape a_3]
+
+bfuse res1 a_1 a_2
+
+puts [checkshape res1]
+
+bfuse result res1 a_3
+
+set square 962546.
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC771"
+puts "SAM1639"
+puts "========"
+puts ""
+###########################
+## Impossible fusung 3 shapes attached
+###########################
+
+restore [locate_data_file OCC771.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+puts [checkshape a_3]
+
+bfuse res1 a_1 a_2
+
+puts [checkshape res1]
+
+bfuse result res1 a_3
+
+set square 1306.68
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC772"
+puts "SAM1643"
+puts "========"
+puts ""
+######################################
+## Impossible to make a common of the shapes attached.
+######################################
+
+restore [locate_data_file OCC772.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC774"
+puts "SAM1647"
+puts "(case 1)"
+puts "========"
+puts ""
+#################################
+## It's impossible to cut one shape from another.
+#################################
+
+restore [locate_data_file OCC774.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [catch { bcut result a_1 a_2 } status] } {
+ puts "Faulty OCC774 (case 1)"
+}
+
+set square 50704.6
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC774"
+puts "SAM1647"
+puts "(case 2)"
+puts "========"
+puts ""
+#################################
+##
+restore [locate_data_file OCC774.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [catch { bcut result a_2 a_1 } status] } {
+ puts "Faulty OCC774 (case 2)"
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC775"
+puts "SAM1650"
+puts "========"
+puts ""
+#############################
+## Impossible to fuse two attached shapes.
+#############################
+
+restore [locate_data_file OCC775.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_1 a_2
+
+set square 61146.4
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC776"
+puts "SAM1654"
+puts "(case 1)"
+puts "========"
+puts ""
+##########################################
+## Impossible to cut one shape from another in the attachment
+##########################################
+
+restore [locate_data_file OCC776.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+
+set square 112637.
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC776"
+puts "SAM1654"
+puts "(case 2)"
+puts "========"
+puts ""
+##########################################
+## Impossible to cut one shape from another in the attachment
+##########################################
+
+restore [locate_data_file OCC776.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_2 a_1
+
+set square 40403.2
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC778"
+puts "SAM1656"
+puts "(case 1)"
+puts "========"
+puts ""
+######################################
+## Incorrect result of cut of the cylinder from the shape.
+######################################
+
+restore [locate_data_file OCC778.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+
+set square 13633.6
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC778"
+puts "SAM1656"
+puts "(case 2)"
+puts "========"
+puts ""
+#####################################
+## Incorrect result of cut of the cylinder from the shape
+#####################################
+
+restore [locate_data_file OCC778.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_2 a_1
+
+set square 678.584
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC779"
+puts "========"
+puts ""
+################################
+## Common operation produces invalid shape
+################################
+
+restore [locate_data_file OCC779_s1.brep] s1
+puts [checkshape s1]
+restore [locate_data_file OCC779_s2.brep] s2
+puts [checkshape s2]
+
+ttranslate s1 0 0 -30
+prism s1p s1 0 0 70
+puts [checkshape s1p]
+
+bcommon result s1p s2
+
+set square 64191.2
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC780"
+puts "SAM1239"
+puts "(case 1)"
+puts "========"
+puts ""
+#########################################
+## Fuse and common between two faces are wrong (SAM1239)
+#########################################
+
+restore [locate_data_file OCC780.brep] f
+explode f f
+puts [checkshape f_1]
+puts [checkshape f_2]
+
+bcommon result f_1 f_2
+
+set square 6283.19
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC780"
+puts "SAM1239"
+puts "(case 2)"
+puts "========"
+puts ""
+#########################################
+## Fuse and common between two faces are wrong (SAM1239)
+#########################################
+
+restore [locate_data_file OCC780.brep] f
+explode f f
+puts [checkshape f_1]
+puts [checkshape f_2]
+
+bfuse result f_1 f_2
+
+set square 12566.4
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC788 "
+puts "========="
+puts ""
+#################################################
+## ThruSection cannot determine correctly correspondence between wires
+#################################################
+restore [locate_data_file OCC788_s1w.brep] w1
+explode w1
+wire ww1 w1_1
+
+restore [locate_data_file OCC788_s2w.brep] w2
+explode w2
+wire ww2 w2_1
+
+thrusections result 0 0 ww1 ww2
+
+set 2dviewer 0
+set square 148608.
--- /dev/null
+
+puts "========="
+puts " OCC788 "
+puts "========="
+puts ""
+##################################################
+## ThruSection cannot determine correctly correspondence between wires
+##################################################
+
+restore [locate_data_file OCC788_s1w.brep] w1
+explode w1
+wire ww1 w1_1
+
+restore [locate_data_file OCC788_s2w.brep] w2
+explode w2
+wire ww2 w2_1
+
+
+thrusections result 0 0 ww1 ww2
+
+puts "It necessary to analyse the photo"
+
+set 2dviewer 0
+set square 148608.
--- /dev/null
+
+puts "========="
+puts " OCC789 "
+puts "========="
+puts ""
+########################################################
+## When working on 2 closed wires (each of 1 edge), the thrusection algorithm creates
+## a surface with isolines which oscillate in longitudinal direction somewhere in the
+## middle between end sections.
+########################################################
+
+restore [locate_data_file OCC789_s3.brep] w1
+explode w1
+wire ww1 w1_1
+
+restore [locate_data_file OCC789_s4.brep] w2
+explode w2
+wire ww2 w2_1
+
+thrusections result 0 0 ww1 ww2
+
+puts "It necessary to analyse the photo"
+
+set square 142424.
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "========="
+puts " OCC794 "
+puts "========="
+puts ""
+#####################################################
+## The offset algorithm produced invalid result when offseting an attached face
+#####################################################
+
+pload QAcommands
+
+restore [locate_data_file OCC794.brep] a
+
+offsetshape result a 10
+
+set x_coord 120
+set y_coord 150
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+QAUpdateLights
+
+checkcolor $x_coord $y_coord 0.77 0.54 0.09
+
+set square 206399
+set 3dviewer 1
--- /dev/null
+pload QAcommands
+
+puts "========"
+puts "OCC822"
+puts "========"
+puts ""
+#####################################
+## BRepMesh_IncrementalMesh fails on some faces
+#####################################
+
+if { [ catch { set info_result [OCC822_1 a1 a2 result] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ if { [lsearch ${info_result} FAILED] > -1 } {
+ puts "Faulty : command was FAILED"
+ }
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 133931
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "======="
+puts "OCC822"
+puts "======="
+puts ""
+#####################################
+## BRepMesh_IncrementalMesh fails on some faces
+#####################################
+
+if { [ catch { set info_result [OCC822_2 a1 a2 result] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ if { [lsearch ${info_result} FAILED] > -1} {
+ puts "Faulty : commands was FAILED"
+ }
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 61963.5
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "======="
+puts "OCC823"
+puts "======="
+puts ""
+###############################
+## BRepAlgoAPI_Fuse fails on two cylinders
+###############################
+
+if { [ catch { set info_result [OCC823 a1 a2 result] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+
+ if { [lsearch ${info_result} FAILED] > -1} {
+ puts "Faulty : commands was FAILED"
+ }
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 23189.5
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "============"
+puts "OCC823"
+puts "============"
+puts ""
+################################
+## BRepAlgoAPI_Fuse fails on two cylinders
+################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC823 a1 a2 a3] } ] } {
+ puts "Faulty : exception was caught"
+} else {
+ puts [checkshape a1]
+ puts [checkshape a2]
+ bfuse result a1 a2
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 23189.5
+set 2dviewer 0
+
--- /dev/null
+pload QAcommands
+
+puts "============"
+puts "OCC824"
+puts "============"
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and sphere
+####################################
+
+if { [ catch { set info_result [OCC824 a1 a2 result] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ if { [lsearch ${result} FAILED] > -1} {
+ puts "Faulty : command was FAILED"
+ }
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 16336.3
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "======="
+puts "OCC824"
+puts "======="
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and sphere
+####################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC824 a1 a2 a3] } ] } {
+ puts "Faulty : exception was catch"
+} else {
+ puts [checkshape a1]
+ puts [checkshape a2]
+ bfuse result a1 a2
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 16336.3
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty : command was FAILED"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "============"
+puts "OCC825"
+puts "============"
+puts ""
+######################################
+## BRepAlgoAPI_Cut fails on sphere and b-spline face
+######################################
+
+if { [ catch { set info_result [OCC825 a1 a2 a3 result1 result2] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ if { [lsearch ${info_result} FAILED] > -1} {
+ puts "Faulty : command was FAILED"
+ }
+ puts [checkshape result1]
+ puts [checkshape result2]
+
+ set ExplodeList [explode result1]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+ set ExplodeList [explode result2]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+
+ renamevar result1 result
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "======="
+puts "OCC825"
+puts "======="
+puts ""
+######################################
+## BRepAlgoAPI_Cut fails on sphere and b-spline face
+######################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC825 a1 a2 a3 a4 a5] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ puts [checkshape a1]
+ puts [checkshape a2]
+ bcut result a2 a1
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC825"
+puts "========"
+puts ""
+######################################
+## BRepAlgoAPI_Cut fails on sphere and b-spline face
+######################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC825 a1 a2 a3 a4 a5] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ puts [checkshape a1]
+ puts [checkshape a3]
+
+ bcut result a3 a1
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "============"
+puts "OCC826"
+puts "============"
+puts ""
+###################################
+## BRepAlgoAPI_Fuse fails on revolved and sphere
+###################################
+
+if { [ catch { set info_result [OCC826 a1 a2 result] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ if { [lsearch ${info_result} FAILED] > -1} {
+ puts "Faulty : command was FAILED"
+ }
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 272939
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "============"
+puts "OCC826"
+puts "============"
+puts ""
+###################################
+## BRepAlgoAPI_Fuse fails on revolved and sphere
+###################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set result [OCC826 a1 a2 a3] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ puts [checkshape a1]
+ puts [checkshape a2]
+ bfuse result a1 a2
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 272939
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "========"
+puts "OCC827"
+puts "========"
+puts ""
+###################################
+## BRepAlgoAPI_Fuse fails on cylinder and torus
+###################################
+
+#
+# a1 - Cylinder
+# a2 - Torus1
+# a3 - Torus1
+# res1 - Fuse(Torus1 & Cylinder)
+# res2 - Fuse(Torus2 & res1)
+#
+
+if { [ catch { set info_result [OCC827 a1 a2 a3 result1 result2] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ if { [lsearch ${info_result} FAILED] > -1} {
+ puts "Faulty OCC827 (case 1)"
+ }
+ puts [checkshape a1]
+ puts [checkshape a2]
+ puts [checkshape a3]
+ puts [checkshape result1]
+ puts [checkshape result2]
+
+ set ExplodeList [explode result1]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+
+ set ExplodeList [explode result2]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+
+ renamevar result2 result
+}
+
+set square 11847.7
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "======="
+puts "OCC827"
+puts "======="
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and torus
+####################################
+##
+## Note: test for old topology
+##
+################################
+
+set status 1
+
+#
+# a1 - Cylinder
+# a2 - Torus1
+# a3 - Torus1
+# res1 - Fuse(Torus1 & Cylinder)
+# res2 - Fuse(Torus2 & res1)
+#
+
+if [ catch { set info_result [OCC827 a1 a2 a3 a4 a5] } ] {
+ puts "Faulty OCC827 (case 0)"
+} else {
+ puts [checkshape a1]
+ puts [checkshape a2]
+ puts [checkshape a3]
+ bfuse result1 a1 a2
+ puts [checkshape result1]
+
+ set ExplodeList [explode result1]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+
+ bfuse result2 result1 a3
+ puts [checkshape result2]
+
+ set ExplodeList [explode result2]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+ renamevar result2 result
+}
+
+set square 11847.7
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "======="
+puts "OCC827"
+puts "======="
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and torus
+####################################
+##
+## Note: test for old topology
+##
+################################
+
+#
+# a1 - Cylinder
+# a2 - Torus1
+# a3 - Torus1
+# res1 - Fuse(Torus1 & Cylinder)
+# res2 - Fuse(Torus2 & res1)
+#
+
+if { [ catch { set info_result [OCC827 a1 a2 a3 a4 a5] } ] } {
+ puts "Faulty an exception was caught"
+} else {
+ puts [checkshape a1]
+ puts [checkshape a2]
+ puts [checkshape a3]
+ bfuse result1 a2 a1
+ puts [checkshape result1]
+ set ExplodeList [explode result1]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+ bfuse result2 a3 result1
+ puts [checkshape result2]
+
+ set ExplodeList [explode result2]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+
+ renamevar result2 result
+}
+
+set square 11847.7
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "========"
+puts "OCC828"
+puts "========"
+puts ""
+###############################
+## BRepFilletAPI_MakeFillet fails on prism
+###############################
+
+if { [ catch { set info_result [OCC828 a1] } ] } {
+ puts "Faulty : an exception was caught"
+} else {
+ if { [lsearch ${info_result} FAILED] > -1} {
+ puts "Faulty : command was FAILED"
+ }
+ puts [checkshape a1]
+ explode a1 e
+ blend result a1 10 a1_7 10 a1_6
+
+ set ExplodeList [explode result]
+ if {[llength ${ExplodeList}] < 1} {
+ puts "Faulty : Resulting shape is empty COMPOUND"
+ }
+}
+
+set square 17816.2
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: Exception"
+puts "TODO OCC12345 ALL: Error : The command can not be build."
+
+puts "========"
+puts "OCC829"
+puts "========"
+puts ""
+###################################
+## BRepOffsetAPI_MakeOffset fails on given wires
+###################################
+puts " This part - LIMITATION for existed algorithms"
+###################################
+
+restore [locate_data_file OCC829_w1.brep] a
+puts [checkshape a]
+explode a w
+
+if { [catch { mkoffset result a_1 1 5 } status] } {
+ puts "Faulty : An exception was caught"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 0
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC829"
+puts "========"
+puts ""
+###################################
+## BRepOffsetAPI_MakeOffset fails on given wires
+###################################
+restore [locate_data_file OCC829_w2.brep] a
+puts [checkshape a]
+explode a w
+
+if { [catch { mkoffset result a_1 1 5 } status] } {
+ puts "Faulty OCC829 (case 1)"
+} else {
+ renamevar result_1 result
+ set nb_info [nbshapes result]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+ puts [format "Result shape result contains %s vertexes" $ve]
+ if { $ve == 0 } {
+ puts [format "Faulty : Result shape is NULL shape"]
+ } else {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+ if {$wi > 1 } {
+ set ll [explode result w]
+ set num [llength $ll]
+ puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+ foreach {k} $ll {
+ puts [checkshape $k]
+ regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+ if { $cs != 0 } {
+ puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+ } else {
+ puts [format "OK: Result shape is CLOSED wire !!! "]
+ }
+ }
+ }
+ }
+}
+
+set length 3690.75
+set 2dviewer 0
+
--- /dev/null
+
+puts "======="
+puts "OCC890"
+puts "SAM1681"
+puts "======="
+puts ""
+##############################
+## No possibility to fuse the attached prisms.
+##############################
+
+restore [locate_data_file OCC890.brep] a
+explode a
+
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [ catch { bfuse result a_1 a_2 } catch_result ] } {
+ puts "Faulty OCC890 (case 3)"
+}
+
+set square 1.8276e+06
+set 2dviewer 0
--- /dev/null
+puts "============"
+puts "OCC895"
+puts "============"
+puts ""
+#########################################################
+## In one case, twisted surface is created.
+## The problem is in incorrect computation of mutual orientations of wire segments.
+#########################################################
+
+pload QAcommands
+
+set scale 73.609
+set center_X 7.93702
+set center_Y 0.264503
+set proj_X 0.523995
+set proj_Y 0.359655
+set proj_Z 0.77206
+set up_X -0.739036
+set up_Y -0.258607
+set up_Z 0.622051
+set at_X 9.06773
+set at_Y -1.93771
+set at_Z 1.45124
+
+set x_coord 210
+set y_coord 210
+
+set status 0
+
+set angle 5
+set reverse 0
+set order 0
+
+if { [ catch { OCC895 result ${angle} ${reverse} ${order} } ] } {
+ puts "Faulty : an exception was caught"
+}
+
+if { ${status} == 0} {
+ vinit
+ vsetdispmode 1
+ vdisplay result
+
+ QASetViewCharac ${scale} ${center_X} ${center_Y} \
+ ${proj_X} ${proj_Y} ${proj_Z} \
+ ${up_X} ${up_Y} ${up_Z} \
+ ${at_X} ${at_Y} ${at_Z}
+
+ QAUpdateLights
+
+ checkcolor $x_coord $y_coord 0.98 0.72 0.13
+
+ if { ${stat} != 1 } {
+ puts "Faulty OCC895 (case 2)"
+ }
+}
+
+set square 18.1614
+set 3dviewer 1
--- /dev/null
+#INTERFACE DXF
+puts "============"
+puts "OCC910"
+puts "============"
+puts ""
+#####################################################
+## The problem with sat files depends on problem of BRepTools_WireExplorer
+#####################################################
+
+pload XDE
+catch { source $env(CSF_DrawPluginQADefaults)/QARebuildCommands }
+
+restore [locate_data_file OCC910.rle] a
+
+puts [checkshape a]
+explode a w
+puts [checkshape a_7]
+
+set list1 [expwire a_7]
+regexp {TopoDS_Iterator\(EDGE\) donne ([-0-9.+eE]+) Edges} $list1 full TopoDS_Iterator1
+regexp {TopExp_Explorer\(EDGE\) donne ([-0-9.+eE]+) Edges} $list1 full TopExp_Explorer1
+regexp {BRepTools_WireExplorer donne ([-0-9.+eE]+) Edges} $list1 full BRepTools_WireExplorer1
+
+
+set list2 [expwire a_7 a]
+regexp {TopoDS_Iterator\(EDGE\) donne ([-0-9.+eE]+) Edges} $list1 full TopoDS_Iterator2
+regexp {TopExp_Explorer\(EDGE\) donne ([-0-9.+eE]+) Edges} $list1 full TopExp_Explorer2
+regexp {BRepTools_WireExplorer donne ([-0-9.+eE]+) Edges} $list1 full BRepTools_WireExplorer2
+
+puts "TopoDS_Iterator1 = ${TopoDS_Iterator1}"
+puts "TopExp_Explorer1 = ${TopExp_Explorer1}"
+puts "BRepTools_WireExplorer1 = ${BRepTools_WireExplorer1}"
+
+puts "TopoDS_Iterator2 = ${TopoDS_Iterator2}"
+puts "TopExp_Explorer2 = ${TopExp_Explorer2}"
+puts "BRepTools_WireExplorer2 = ${BRepTools_WireExplorer2}"
+
+if { ${TopoDS_Iterator1} != ${TopoDS_Iterator2} || \
+ ${TopExp_Explorer1} != ${TopExp_Explorer2} || \
+ ${BRepTools_WireExplorer1} != ${BRepTools_WireExplorer2} } {
+ puts "Faulty OCC910"
+} else {
+ puts "OCC910 OK"
+}
+
+renamevar a_7 result
+
+set length 149.816
+set 2dviewer 0
+
--- /dev/null
+
+puts "======="
+puts "OCC919"
+puts "SAM1623"
+puts "======="
+puts ""
+#############################
+## Impossible to fuse the shapes.
+##############################
+
+restore [locate_data_file OCC919.brep] a
+
+explode a
+
+# See comment in CR23244:
+restore [locate_data_file OCC919-PROC.brep] a_1
+#
+
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [ catch { bfuse result a_1 a_2} catch_result ] } {
+ puts "Faulty OCC919 (case 1)"
+} else {
+ if { [ catch { checkshape result } catch_result ] } {
+ puts "Faulty OCC919 (case 2)"
+ } else {
+ puts "OCC919 OK"
+ }
+}
+
+set square 272591.
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
+
+puts "========"
+puts "OCC957"
+puts "========"
+puts ""
+##############################################################
+##Draw function PSPHERE creates incorrect shape (according to CHECKSHAPE function)
+##############################################################
+
+psphere result 10 10 10
+
+set length 0
+set 2dviewer 0
--- /dev/null
+
+puts "======="
+puts "DXF906"
+puts "OCC889"
+puts "OCC1013"
+puts "======="
+puts ""
+#########################################################
+## After fix OCC157 we have plane surface in face (instead bspline as in C40).
+## But now checkshape founds number of errors on new face. I think that face from
+## c40 is not better than in dev
+#########################################################
+
+restore [locate_data_file DXF906.rle] a
+
+mkplane result a
+
+set square 92131.6
+set 2dviewer 0
set tol [ maxtolerance a_8 ]
regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol full MaxEdgeTolerance
regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol full MaxVertexTolerance
-regexp {([-0-9.+eE]+)} [dump d_val] full d
+regexp {([-0-9.+eE]+)$} [dump d_val] full d
if { [expr $d > $MaxEdgeTolerance] || [expr $d > $MaxVertexTolerance] } {
puts "Faulty : Result is BAD. Distance is more than MaxTolerance"
--- /dev/null
+pload QAcommands
+
+puts "========"
+puts "OCC566"
+puts "========"
+puts ""
+###############################################
+##BRepBndLib::AddClose builds box larger than BRepBndLib::Add
+###############################################
+
+restore [locate_data_file OCC566.brep] a
+
+set err1 [bounding a]
+set err2 [OCC566 a]
+
+regexp { *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+)} $err1 full v1_x v1_y v1_z v2_x v2_y v2_z
+regexp { *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+)} $err2 full v3_x v3_y v3_z v4_x v4_y v4_z
+
+vertex v1 $v1_x $v1_y $v1_z
+vertex v2 $v2_x $v2_y $v2_z
+
+vertex v3 $v3_x $v3_y $v3_z
+vertex v4 $v4_x $v4_y $v4_z
+
+distmini d1 v1 v2
+distmini d2 v3 v4
+
+regexp {([-0-9.+eE]+)$} [dump d1_val] full dis1
+puts $dis1
+regexp {([-0-9.+eE]+)$} [dump d2_val] full dis2
+puts $dis2
+
+set err [expr 1.*abs((($dis1 - $dis2) / $dis2) * 100)]
+puts ""
+puts [format "Different is %s percents" $err]
+
+if {$err > 1.0} {
+ puts " Faulty OCC566: BRepBndLib::AddClose builds box larger than BRepBndLib::Add - this should not be so!"
+} else {
+ puts " OCC566 OK"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC592 : Checkshape BRepCheck_Analyzer does not detect faulty shape"
+
+puts "========================"
+puts " OCC592 "
+puts "========================"
+puts ""
+###################################
+##BRepCheck_Analyzer does not detect faulty shape
+#####################################
+
+restore [locate_data_file OCC592.brep] ff114
+
+explode ff114 e
+mkcurve cc ff114_8
+cvalue cc 0.95 x y z
+vertex vv x y z
+mksurface gs ff114
+mkface ff gs
+donl ff114 vv
+trim trcc cc
+set aa [distmini dd vv ff]
+
+puts "******* Result *******"
+regexp {([-0-9.+eE]+)$} [dump dd_val] full dis1
+puts "distance between the point on curve and the surface is $dis1"
+
+set tolerance [maxtolerance ff114_8]
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxEdgeTolerance
+puts "the tolerance of the edge is $MaxEdgeTolerance"
+puts "the tolerance is less than distance between point and surface"
+puts "BUT"
+
+decho off
+set che [checkshape ff114]
+decho on
+
+if { [regexp {Faulty} $che] != 1 } {
+ puts "Faulty OCC592 : Checkshape BRepCheck_Analyzer does not detect faulty shape"
+} else {
+ puts "OCC592 OK: Checkshape (BRepCheck_Analyzer) detects bad shape"
+}
+
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "OCC618"
+puts "========================"
+puts ""
+############################
+## Exception during bop
+############################
+
+restore [locate_data_file OCC618a.brep] a
+puts [checkshape a]
+restore [locate_data_file OCC618b.brep] b
+puts [checkshape b]
+
+if [catch {bop a b} catch_result] {
+ puts "Faulty OCC618 : BOP operation was made wrongly"
+} else {
+ puts "OCC618 OK: BOP operation works OK"
+}
+
+set 2dviewer 0
--- /dev/null
+
+puts "=========="
+puts "OCC705 "
+puts "=========="
+puts ""
+###########################################################
+## The matrix of inertia for sphere computed incorrectly.
+## In the secod case the not diagonal elements of the inertia matrix are not close to zero.
+###########################################################
+
+psphere result 10 10 10
+ttranslate result 10 10 10
+trotate result 0 0 0 0 1 1 34
+
+set list [vprops result]
+set inertia [regexp -all -inline { +[-0-9.+eE]+ +[-0-9.+eE]+ +[-0-9.+eE]+} $list]
+set matrix [regexp -all -inline {[-0-9.+eE]+} $inertia]
+
+set matrix12 [lindex $matrix 1]
+set matrix21 [lindex $matrix 3]
+set matrix23 [lindex $matrix 5]
+set matrix32 [lindex $matrix 7]
+
+if { ${matrix12} != 0. || ${matrix21} != 0. || ${matrix23} != 0. || ${matrix32} != 0. } {
+ puts "Faulty OCC705"
+} else {
+ puts "OCC705 OK"
+}
+
+set length 123.755
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+
+puts "========"
+puts "OCC712"
+puts "========"
+puts ""
+############################################################
+## Exeption is raised in DRAW during building draft with help command "depouille"
+## on face in the attached shape.
+## The source code of application is also attached and should be checked.
+############################################################
+
+set draftAngle 15
+set slabThick 30
+
+if [catch {OCC712 ${draftAngle} ${slabThick} } catch_result] {
+ puts "Faulty OCC712"
+} else {
+ puts "OCC712 OK"
+}
+
+set 2dviewer 0
## meshing is computed again when displaying it.
###############################################################
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 77647
- set gr_ch 54901
- set bl_ch 9019
-} else {
- set rd_ch 78039
- set gr_ch 55294
- set bl_ch 9411
-}
+set x_coord 140
+set y_coord 115
restore [locate_data_file OCC20.brep] result
tclean result
vsetdispmode result 1
QAUpdateLights
-set color [QAGetPixelColor 140 115]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.77 0.54 0.9
set only_screen 1
tclean res
######################################################################
-catch {exec rm ${imagedir}/vrem.brep}
+catch {file delete ${imagedir}/vrem.brep}
save res ${imagedir}/vrem.brep
vinit
## The shading is false: objects seem to be situated in front of the others while they are behind.
###############################################################
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 43137
- set gr_ch 48235
- set bl_ch 54117
-} else {
- set rd_ch 43137
- set gr_ch 48235
- set bl_ch 54509
-}
+set x_coord 171
+set y_coord 171
vinit
OCC128
QASetViewCharac 4.9487928 89.23589 4.1505 0.7329295 0.59461397 0.33052679 -0.536849 0.2071041 0.81786 71.971878 -17.250309 33.509651
QAUpdateLights
-set color [QAGetPixelColor 171 171]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : The shading is false. Colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.43 0.48 0.54
set only_screen 1
-puts "TODO OCC12345 ALL: Error : colors are not equal"
-puts "TODO OCC12345 ALL: Error : 3D Viewer is empty"
-
+puts "TODO OCC12345 ALL: Error : Colors are not equal in default coordinate and in the near coordinates too"
puts "================"
puts "OCC136"
puts "================"
+set x_coord 211
+set y_coord 215
+
vinit
OCC136
vfit
-set rd_ch 0.8
-set gr_ch 0.8
-set bl_ch 0.8
-
-set color [QAGetPixelColor 211 215]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-if { ${rd} != ${rd_ch} || ${gr} != ${gr_ch} || ${bl} != ${bl_ch} } {
- puts "Error : colors are not equal"
- puts "Error : 3D Viewer is empty"
-}
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
set only_screen 1
-
puts "========"
puts "OCC138"
puts "========"
-
puts "================"
puts "OCC146"
puts "================"
QASelect2d 155 180
QASelect2d 155 180
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set x1 155
- set y1 180
-} else {
- set x1 155
- set y1 177
-}
-
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
-
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set coord_x 155
+set coord_y 177
+set color2d 1
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $coord_x $coord_y 0.8 0.8 0.8
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : The second selection of selected object deselects it and the following clicks have no effect"
}
set only_screen2d 1
+
-
puts "========================"
puts "OCC153"
puts "========================"
if [catch { v2dsetbg [locate_data_file OCC153.gif] } res] {
puts [format "%s ) Faulty OCC153: here is problem with v2dsetbg command" $j]
} else {
- puts [format "%s ) : OCC153 OK" $j]
+ puts [format "%s ) : OCC153 OK" $j]
}
- incr j}
+ incr j
+ }
v2deraseall
-set color1 [QAAISGetPixelColor2d 370 37]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
+set x_coord 370
+set y_coord 37
+set color2d 1
-if { ${rd1} != 0 || ${gr1} != 0 || ${bl1} != 0 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 0 0 0
+
+if { $stat != 1 } {
puts "Error : Object was not erased"
}
v2ddisplayall
-set color2 [QAAISGetPixelColor2d 370 37]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
+checkcolor $x_coord $y_coord 1 1 0
-if { ${rd2} != 1 || ${gr2} != 1 || ${bl1} != 0 } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Object was not displayed"
}
set only_screen2d 1
+
+
v2derase b1
-set color [QAAISGetPixelColor2d 370 37]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 370
+set y_coord 37
+set color2d 1
-if { ${rd} != 0 || ${gr} != 0 || ${bl} != 0 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 0 0 0
+
+if { $stat != 1 } {
puts "Object was not erased"
}
set only_screen2d 1
+
v2ddisplay v_v1
v2dfit
-set color [QAAISGetPixelColor2d 405 7]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 405
+set y_coord 7
+set color2d 1
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
puts "Error : Vertexes 2D were NOT LOADED properly"
}
set only_screen2d 1
+
v2ddisplay c_o
v2dfit
-set color [QAAISGetPixelColor2d 338 77]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 338
+set y_coord 77
+set color2d 1
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
puts "Error : pCone 2D was NOT LOADED properly into viewer"
}
v2ddisplay c_y
v2dfit
-set color [QAAISGetPixelColor2d 338 75]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 338
+set y_coord 75
+set color2d 1
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
puts "Error : pCylinder 2D was NOT LOADED properly into viewer"
}
set only_screen2d 1
+
vfit
vsetdispmode result 1
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 100000
- set gr_ch 75294
- set bl_ch 15294
-} else {
- set rd_ch 100000
- set gr_ch 75686
- set bl_ch 15294
-}
+set x_coord 175
+set y_coord 195
+
QAUpdateLights
-set color1 [QAGetPixelColor 175 195]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-set rd_int [expr int($rd1 * 1.e+05)]
-set gr_int [expr int($gr1 * 1.e+05)]
-set bl_int [expr int($bl1 * 1.e+05)]
+checkcolor $x_coord $y_coord 1 0.75 0.15
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Shading is missing in 3D Viewer"
}
vsetmaterial result COPPER
QAUpdateLights
-set color2 [QAGetPixelColor 175 195]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
-if { ${rd2} == ${rd1} || ${gr2} == ${gr1} || ${bl2} == ${bl1} } {
- puts "Error : material of shape was NOT changed"
+checkcolor $x_coord $y_coord 0.77 0.32 0.23
+
+if { $stat != 1 } {
+ puts "Error : material of shape is not COPPER"
}
set only_screen 1
vdisplay result
vfit
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 77647
- set gr_ch 54901
- set bl_ch 9019
-} else {
- set rd_ch 78039
- set gr_ch 55294
- set bl_ch 9411
-}
+set x_coord 235
+set y_coord 214
vsetdispmode result 1
QAUpdateLights
-set color [QAGetPixelColor 235 214]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Shading is OFF, but should be ON"
}
vsetdispmode result 0
QAUpdateLights
-set color0 [QAGetPixelColor 235 214]
-regexp {RED +: +([-0-9.+eE]+)} $color0 full rd0
-regexp {GREEN +: +([-0-9.+eE]+)} $color0 full gr0
-regexp {BLUE +: +([-0-9.+eE]+)} $color0 full bl0
-if { ${rd0} != 0 || ${gr0} != 1 || ${bl0} != 0 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 0 1 0
+
+if { $stat != 1 } {
puts "Error : Shading is ON, but should be OFF"
}
set only_screen 1
+
-
puts "========"
puts "OCC193"
puts "========"
set Position_X -667.802
set Position_Y -441.402
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 49411
- set gr_ch 49411
- set bl_ch 49411
-} else {
- set rd_ch 49803
- set gr_ch 49803
- set bl_ch 49803
-}
+set x_coord 67
+set y_coord 295
+set color2d 1
-set color [QAAISGetPixelColor2d 67 295]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 0.49 0.49 0.49
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Objects was not displayed"
}
-v2dpickgrid 67 295 x_coord y_coord
+v2dpickgrid 67 295 x_ch y_ch
-if { ${x_coord} != ${Position_X} || ${y_coord} != ${Position_Y} } {
+if { ${x_ch} != ${Position_X} || ${y_ch} != ${Position_Y} } {
puts "Error : Function v2dpickgrid works wrongly"
}
set only_screen2d 1
+
v2dinit
v2dgrid Rect 500 500 200 200 45 Lines
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set x1 25
- set y1 360
- set rd_ch 49411
- set gr_ch 49411
- set bl_ch 49411
-} else {
- set x1 25
- set y1 361
- set rd_ch 49803
- set gr_ch 49803
- set bl_ch 49803
-}
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 25
+set y_coord 361
+set color2d 1
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.49 0.49 0.49
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : 2D Rectangular ROTATED Grid WITH Lines was NOT CREATED properly"
}
v2dinit
v2dgrid Rect 500 500 200 200 45 Points
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set x1 20
- set y1 20
- set rd_ch 100000
- set gr_ch 100000
- set bl_ch 100000
-## set rd_ch 49411
-## set gr_ch 49411
-## set bl_ch 49411
-} else {
- set x1 20
- set y1 21
- set rd_ch 70196
- set gr_ch 70196
- set bl_ch 70196
-}
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 20
+set y_coord 21
+set color2d 1
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.7 0.7 0.7
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : 2D Rectangular ROTATED Grid WITHOUT Lines was NOT CREATED properly"
}
set only_screen2d 1
+
incr i
}
-set color [QAAISGetPixelColor2d 190 105]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 190
+set y_coord 105
+set color2d 1
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 1 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 1
+
+if { $stat != 1 } {
puts "Error : Scaling of text font number 23 was NOT MADE properly"
}
-
puts "========"
puts "OCC196"
puts "========"
incr j
}
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set x1 336
- set y1 348
-} else {
- set x1 336
- set y1 347
-}
+set x_coord 336
+set y_coord 347
+set color2d 1
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 1 1 1
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 1 } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Rotation of text font number 23 was NOT MADE properly"
}
set only_screen2d 1
+
+++ /dev/null
-
-puts "========="
-puts "PRO19619"
-puts "=========="
-
-##################################################
-## Regression in C30. Can not display restored shape in axonometric view.
-##################################################
-
-#restore pro19619a.rle res (small/brep)
-restore [locate_data_file shading_116.brep] res
-checkshape res
-
-axo
-fit
-
-delete
\ No newline at end of file
box b_b 10 15 20
v2ddisplay b_b 0 0 0 1 1 1 1 0 0
v2dfit
+set color2d 1
QAv2dSetHighlightMode 1
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set Position_X1 184
- set Position_Y1 181
- set Position_X2 184
- set Position_Y2 181
-} else {
- set Position_X1 169
- set Position_Y1 148
- set Position_X2 184
- set Position_Y2 180
-}
-
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
QASelect2d 169 148
QAMoveTo2d 0 0
QAShiftSelect2d 184 180
-set j 1
-repeat 2 {
- set Position_X [set Position_X$j]
- set Position_Y [set Position_Y$j]
- puts " Position_X$j= $Position_X Position_Y$j= $Position_Y"
-
- set color [QAAISGetPixelColor2d ${Position_X} ${Position_Y} ]
- regexp {RED +: +([-0-9.+eE]+)} $color full rd
- regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
- regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 169
+set y_coord 148
- set rd_int [expr int($rd * 1.e+05)]
- set gr_int [expr int($gr * 1.e+05)]
- set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
+if { ${stat} != 1 } {
+ puts "Error : (PRIMITIVE number 1) Multiple Selection: Choosing of viewer MOD for selection of PRIMITIVE was NOT MADE properly"
+}
+
+set x_coord 184
+set y_coord 180
- if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
- puts "Error : (PRIMITIVE number $j) Multiple Selection: Choosing of viewer MOD for selection of PRIMITIVE was NOT MADE properly"
- }
-
- incr j
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
+if { ${stat} != 1 } {
+ puts "Error : (PRIMITIVE number 2) Multiple Selection: Choosing of viewer MOD for selection of PRIMITIVE was NOT MADE properly"
}
set only_screen2d 1
+
v2ddisplay b_b 0 0 0 1 1 1 1 0 0
v2dfit
QAv2dSetHighlightMode 2
+set color2d 1
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set Position_X1 296
- set Position_Y1 161
- set Position_X2 76
- set Position_Y2 290
-} else {
- set Position_X1 296
- set Position_Y1 160
- set Position_X2 76
- set Position_Y2 290
-}
+QASelect2d 296 160
+QAMoveTo2d 0 0
+QAShiftSelect2d 76 290
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
+set x_coord 296
+set y_coord 161
-QASelect2d $Position_X1 $Position_Y1
-QAMoveTo2d 0 0
-QAShiftSelect2d $Position_X2 $Position_Y2
-set j 1
-repeat 2 {
- set Position_X [set Position_X$j]
- set Position_Y [set Position_Y$j]
- puts " Position_X$j= $Position_X Position_Y$j= $Position_Y"
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
+
+if { ${stat} != 1 } {
+ puts "Error : (ELEMENT number 1) Multiple Selection: Choosing of viewer MOD for selection of ELEMENT was NOT MADE properly"
+}
- set color [QAAISGetPixelColor2d ${Position_X} ${Position_Y}]
- regexp {RED +: +([-0-9.+eE]+)} $color full rd
- regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
- regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 76
+set y_coord 290
- set rd_int [expr int($rd * 1.e+05)]
- set gr_int [expr int($gr * 1.e+05)]
- set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
- if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
- puts "Error : (ELEMENT number $j) Multiple Selection: Choosing of viewer MOD for selection of ELEMENT was NOT MADE properly"
- }
- incr j
+if { ${stat} != 1 } {
+ puts "Error : (ELEMENT number 2) Multiple Selection: Choosing of viewer MOD for selection of ELEMENT was NOT MADE properly"
}
set only_screen2d 1
-puts "TODO OCC12345 ALL: Error : colors are not equal"
puts "TODO OCC12345 ALL: Error : 3 boxes missing in the viewer!"
-
+puts "TODO OCC12345 ALL: Error : Colors are not equal in default coordinate and in the near coordinates too"
puts "========"
puts "OCC204"
puts "========"
OCC204 0
vfit
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
-
-set color [QAGetPixelColor 150 200]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 150
+set y_coord 200
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { ${stat} != 1 } {
puts "Error : 3 boxes missing in the viewer!"
}
OCC204 1
vfit
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
+set x_coord 150
+set y_coord 200
-set color [QAGetPixelColor 150 200]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 0 0 0
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} == ${rd_ch} || ${gr_int} == ${gr_ch} || ${bl_int} == ${bl_ch} } {
- puts "Error : colors are not equal"
- puts "Error : There are 3 boxes in the viewer!"
+if { ${stat} != 1 } {
+ puts "Error : There are 3 boxes in the viewer! (should be nothing)"
}
set only_screen 1
+
-
puts "========"
puts "OCC215"
puts "========"
QASetViewCharac ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
-QAGetPixelColor 229 94 1 1 0
+set x_coord 229
+set y_coord 94
+
+checkcolor $x_coord $y_coord 1 1 0
+
set only_screen 1
+
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-
puts "================"
puts "OCC218"
puts "================"
set at_Y 0.741619229316711
set at_Z -0.0881031528115273
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 90588
- set gr_ch 90588
- set bl_ch 0
-
- set BLACK_R 0
- set BLACK_G 0
- set BLACK_B 0
-
- set x1 376
- set y1 24
-} else {
- set rd_ch 65098
- set gr_ch 65098
- set bl_ch 0
-
- set BLACK_R 0
- set BLACK_G 0
- set BLACK_B 0
-
- set x1 388
- set y1 28
-}
+set x_coord 388
+set y_coord 28
QASetViewCharac ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
OCC218 trihedron1 b_1 X Y
QAUpdateLights
-QAGetPixelColor ${x1} ${y1} ${BLACK_R} ${BLACK_G} ${BLACK_B}
+
+checkcolor $x_coord $y_coord 0 0 0
OCC218 trihedron1 b_1 my___axis___1 my___axis2
QAUpdateLights
-set color [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.85 0.85 0
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "There is no messages near axes"
}
set only_screen 1
+
v2ddisplay s_p 0 0 0 1 1 1 1 0 0
v2dfit
v2dsetwidth s_p VERYTHICK
-set Color_R 1
-set Color_G 1
-set Color_B 0
-set color [QAAISGetPixelColor2d 393 210]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 393
+set y_coord 210
+set color2d 1
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
- puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
puts "Error : New widht was NOT assigned"
}
v2dunsetwidth s_p
-set color [QAAISGetPixelColor2d 393 210]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 0 0 0
-if { ${rd} != 0 || ${gr} != 0 || ${bl} != 0 } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Function V2DUNSETWIDTH for shapes does NOT WORK properly"
}
set only_screen2d 1
+
-
puts "========================"
puts " OCC225 "
puts "========================"
wait 5
v2dunsetcolor b_b
-set color [QAAISGetPixelColor2d 22 230]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 22
+set y_coord 230
+set color2d 1
+
+checkcolor $x_coord $y_coord 1 1 0
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : function V2DUNSETCOLOR for BOX 2D does NOT WORK properly"
}
set only_screen2d 1
+
vzoom 0.5
vpan 100 0
-set x1 300
-set y1 130
-if { [string compare $tcl_platform(os) "Windows NT"] == 0 } {
- puts "STATION IS WNT"
- set r_check 0.77646999999999999
- set g_check 0.54901900000000003
- set b_check 0.090195999999999998
-} else {
- set r_check 0.78039199999999997
- set g_check 0.55294100000000002
- set b_check 0.094117000000000006
-}
-
-set r_check [expr int($r_check * 1.e5)]
-set g_check [expr int($g_check * 1.e5)]
-set b_check [expr int($b_check * 1.e5)]
-
-puts "r_check=$r_check"
-puts "g_check=$g_check"
-puts "b_check=$b_check"
-
-set color1 [ QAGetPixelColor ${x1} ${y1} ]
+set x_coord 300
+set y_coord 130
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
-set rd1 [expr int($rd1 * 1.e5)]
-set gr1 [expr int($gr1 * 1.e5)]
-set bl1 [expr int($bl1 * 1.e5)]
-
-puts "rd1=$rd1"
-puts "gr1=$gr1"
-puts "bl1=$bl1"
-
-set status1 0
-if { $rd1 != $r_check || $gr1 != $g_check || $bl1 != $b_check } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Transform persistence is not restored"
-} else {
- puts "OK : colors are equal"
- puts "OK : Transform persistence is restored"
}
set only_screen 1
+
pload QAcommands
pload XDEDRAW
-set r_check 1
-set g_check 0
-set b_check 0
-set x1 178
-set y1 36
-set x2 224
-set y2 39
-set x3 244
-set y3 89
-
XNewDoc Doc1
ReadStep Doc1 [locate_data_file screw.step]
XShow Doc1 0:1:1:1
vfit
vsetdispmode 1
-set color1 [ QAGetPixelColor ${x1} ${y1} ]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-set status1 0
-if { $rd1 != $r_check || $gr1 != $g_check || $bl1 != $b_check } {
- set status1 1
-}
+set x_coord 178
+set y_coord 36
-set color2 [ QAGetPixelColor ${x2} ${y2} ]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
-set status2 0
-if { $rd2 != $r_check || $gr2 != $g_check || $bl2 != $b_check } {
- set status2 1
-}
+checkcolor $x_coord $y_coord 1 0 0
-set color3 [ QAGetPixelColor ${x3} ${y3} ]
-regexp {RED +: +([-0-9.+eE]+)} $color3 full rd3
-regexp {GREEN +: +([-0-9.+eE]+)} $color3 full gr3
-regexp {BLUE +: +([-0-9.+eE]+)} $color3 full bl3
-set status3 0
-if { $rd3 != $r_check || $gr3 != $g_check || $bl3 != $b_check } {
- set status3 1
+if { $stat != 1 } {
+ puts "Error : Boundary of face is not changed"
}
-if { $status1 != 0 && $status2 != 0 && $status3 != 0 } {
- puts "Error : color are not equal"
- puts "Error : Boundary of face is not changed"
+set x_coord 244
+set y_coord 89
+
+checkcolor $x_coord $y_coord 1 0 0
+
+if { $stat != 01} {
+ puts "Error : Boundary of face is not changed"
}
set only_screen 1
+
pload QAcommands
pload AISV MODELING
-set r_check 1
-set g_check 0
-set b_check 0
-set x1 183
-set y1 190
-set x2 292
-set y2 358
-set x3 26
-set y3 265
-
box b 10 10 10
vinit
vdisplay b
vshowfaceboundary b 1 255 0 0 10 1
vfit
-set color1 [ QAGetPixelColor ${x1} ${y1} ]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-set status1 0
-if { $rd1 != $r_check || $gr1 != $g_check || $bl1 != $b_check } {
- set status1 1
-}
+set x_coord 183
+set y_coord 190
+
+checkcolor $x_coord $y_coord 1 0 0
-set color2 [ QAGetPixelColor ${x2} ${y2} ]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
-set status2 0
-if { $rd2 != $r_check || $gr2 != $g_check || $bl2 != $b_check } {
- set status2 1
+if { $stat != 1 } {
+ puts "Error : Boundary of face is not changed"
}
-set color3 [ QAGetPixelColor ${x3} ${y3} ]
-regexp {RED +: +([-0-9.+eE]+)} $color3 full rd3
-regexp {GREEN +: +([-0-9.+eE]+)} $color3 full gr3
-regexp {BLUE +: +([-0-9.+eE]+)} $color3 full bl3
-set status3 0
-if { $rd3 != $r_check || $gr3 != $g_check || $bl3 != $b_check } {
- set status3 1
+set x_coord 292
+set y_coord 358
+
+checkcolor $x_coord $y_coord 1 0 0
+
+if { $stat != 1 } {
+ puts "Error : Boundary of face is not changed"
}
-if { $status1 != 0 && $status2 != 0 && $status3 != 0 } {
- puts "Error : color are not equal"
+set x_coord 26
+set y_coord 265
+
+checkcolor $x_coord $y_coord 1 0 0
+
+if { $stat != 1 } {
puts "Error : Boundary of face is not changed"
}
OCC280 0 0
# selected point
-set x1 218
-set y1 196
-
-set Cyan_R 0
-set Cyan_G 1
-set Cyan_B 1
-
-set Yellow_R 1
-set Yellow_G 1
-set Yellow_B 0
+set x_coord 218
+set y_coord 196
# There is not selection
puts "There is not selection"
-QAGetPixelColor $x1 $y1 $Yellow_R $Yellow_G $Yellow_B
+
+checkcolor $x_coord $y_coord 1 1 0
# Move a mouse
puts "Move a mouse"
-QAMoveTo $x1 $y1
-QAMoveTo $x1 $y1
+QAMoveTo $x_coord $y_coord
+QAMoveTo $x_coord $y_coord
QAUpdateLights
# There is a selection
puts "There is a selection"
-QAGetPixelColor $x1 $y1 $Cyan_R $Cyan_G $Cyan_B
+
+checkcolor $x_coord $y_coord 0 1 1
set only_screen 1
OCC280 0 1
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set rd_ch 77647
- set gr_ch 54901
- set bl_ch 9019
-} else {
- set rd_ch 78039
- set gr_ch 55294
- set bl_ch 9411
-}
+set x_coord 10
+set y_coord 240
puts "Before View->FitAll()"
QAUpdateLights
-set color0 [QAGetPixelColor 10 240]
-regexp {RED +: +([-0-9.+eE]+)} $color0 full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color0 full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color0 full bl
-if { ${rd} != 0 || ${gr} != 0 || ${bl} != 0 } {
- puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0 0 0
vfit
puts "After View->FitAll()"
QAUpdateLights
-set color1 [QAGetPixelColor 10 240]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-set rd_int [expr int($rd1 * 1.e+05)]
-set gr_int [expr int($gr1 * 1.e+05)]
-set bl_int [expr int($bl1 * 1.e+05)]
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
+if { $stat != 1 } {
puts "Error : Function vfit works wrongly"
}
-
puts "========================"
puts " OCC288 "
puts "(case 1)"
-
puts "========================"
puts " OCC288 "
puts "(case 2)"
puts "Shading of OCC344 looks like OK, but visual checking is required"
}
-set only_screen 1
+set 3dviewer 1
+
puts "================"
puts ""
-set rd_ch 0
-set gr_ch 1
-set bl_ch 1
-
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set x1 204
- set y1 204
-} else {
- set x1 205
- set y1 205
-}
+set x_coord 205
+set y_coord 205
vinit
vtrihedron tri
QAMoveTo 205 205
QAUpdateLights
-set color [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd_int
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr_int
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl_int
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0 1 1
set only_screen 1
AISSet D 0:1:4 NS
AISDisplay D 0:1:4
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set x1 260
- set y1 170
- set rd_ch 77647
- set gr_ch 54901
- set bl_ch 9019
-} else {
- set x1 255
- set y1 105
- set rd_ch 78039
- set gr_ch 55294
- set bl_ch 9411
-}
+set x_coord 273
+set y_coord 115
QAUpdateLights
-set color [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
- puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
set only_screen 1
+
AISDisplay D 0:1:4
vfit
-if { [array get env os_type] != "" } {
- set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
- set x1 231
- set y1 170
- set rd_ch1 76078
- set gr_ch1 53725
- set bl_ch1 8627
-} else {
- set x1 263
- set y1 140
- set rd_ch1 76862
- set gr_ch1 54117
- set bl_ch1 9019
-}
+set x_coord 230
+set y_coord 160
-set color1 [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-
-set rd_int1 [expr int($rd1 * 1.e+05)]
-set gr_int1 [expr int($gr1 * 1.e+05)]
-set bl_int1 [expr int($bl1 * 1.e+05)]
-
-if { ${rd_int1} != ${rd_ch1} || ${gr_int1} != ${gr_ch1} || ${bl_int1} != ${bl_ch1} } {
- puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.76 0.54 0.9
set only_screen 1
+
--- /dev/null
+
+puts "========="
+puts "PRO19619"
+puts "=========="
+
+##################################################
+## Regression in C30. Can not display restored shape in axonometric view.
+##################################################
+
+#restore pro19619a.rle res (small/brep)
+restore [locate_data_file shading_116.brep] res
+checkshape res
+
+axo
+fit
+
+delete
\ No newline at end of file
###########################################################################
pload QAcommands
-if {[array get env os_type] != ""} {
- set os $env(os_type)
-}
set aFile $imagedir/bug23193_sample.stl
QARotateV3dView 4 0 0 1
vfit
-set color [QAGetPixelColor 189 236]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 189
+set y_coord 236
-set a [expr $bl*10]
-set bl_1 [expr round($a)]
+checkcolor $x_coord $y_coord 0 0 0.7
-if { $rd != 0 || $gr != 0 || $bl_1 != 7 } {
- puts "Error : Color are not equal. There is missing triangle"
+if { ${stat} != 1 } {
+ puts "Error : There is missing triangle"
}
set only_screen 1