008 step
009 caf
010 mesh
+011 heal
+
--- /dev/null
+pload XSDRAW
+
+
--- /dev/null
+#INTERFACE IGES
+puts "========"
+puts "OCC208"
+puts "========"
+
+##########################
+## Incorrect work of ShapeFix
+##########################
+
+restore [locate_data_file OCC208.brep] a
+
+fixshape result a 0.01 0.01
+
+puts [checkshape result]
+set 2dviewer 0
+
+
+
--- /dev/null
+#INTERFACE IGES
+puts "========"
+puts "OCC209"
+puts "========"
+
+##########################################
+## FixMissingSeam leads to lost pcurve on neighbouring face
+##########################################
+
+restore [locate_data_file OCC209.brep] a
+explode a f
+checkshape a_4
+
+fixshape result a 0.01 0.01
+explode result f
+
+puts [checkshape result_4]
+set 2dviewer 1
+
--- /dev/null
+puts "========"
+puts "OCC210"
+puts "(case 1)"
+puts "========"
+
+##########################################
+## Improve FixShape to correct case of touching wires
+##########################################
+
+restore [locate_data_file OCC210a.brep] a
+
+fixshape result a 0.01 0.01
+
+puts [checkshape result]
+set 2dviewer 1
+
--- /dev/null
+puts "========"
+puts "OCC210"
+puts "(case 2)"
+puts "========"
+
+##########################################
+## Improve FixShape to correct case of touching wires
+##########################################
+
+restore [locate_data_file OCC210b.brep] a
+
+fixshape result a 0.01 0.01
+
+puts [checkshape result]
+set 2dviewer 1
+
--- /dev/null
+puts "========================"
+puts " OCC329 "
+puts "========================"
+puts ""
+###########################################################
+##fixshape command does not fix incorrect tolerance order.
+###########################################################
+
+restore [locate_data_file OCC329.brep] a
+
+puts [checkshape a]
+set tol1 [maxtolerance a]
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol1 full face1
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol1 full edge1
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol1 full vert1
+
+fixshape result a 1.e-7 0.1
+
+puts [checkshape result]
+set tol2 [ maxtolerance result]
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol2 full face2
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol2 full edge2
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol2 full vert2
+
+if { ${face2} > ${face1} || ${edge2} > ${edge1} || ${vert2} > ${vert1} } {
+ puts "Error : Tolerance invalid. Function FixShape works WRONGLY"
+} else {
+ puts "Tolerance valed. Function FixShape works CORRECTLY"
+}
+
+set 2dviewer 1
+
+
--- /dev/null
+puts "========================"
+puts " OCC482 "
+puts "========================"
+puts ""
+#################################################
+## Regression in ShapeFix_Wireframe (caused by fix on OCC394)
+#################################################
+
+restore [locate_data_file OCC482.brep] a
+
+fixsmall result a 0.05
+
+puts [checkshape result]
+set 2dviewer 1
+
+
--- /dev/null
+puts "========================"
+puts "BUC60940"
+puts "========================"
+
+restore [locate_data_file buc60940.rle] a
+
+fixshape result a 1e-7 1
+puts [checkshape result]
+
+set 2dviewer 1
--- /dev/null
+puts "==========="
+puts " BUC60950"
+puts "==========="
+
+restore [locate_data_file buc60950.rle] a
+checkshape a
+
+fixshape result a 1e-7
+
+puts [checkshape result]
+
+set 2dviewer 1
+
+
+
--- /dev/null
+puts "========"
+puts "BUC61054"
+puts "OCC111"
+puts "(case 1)"
+puts "========"
+
+igesbrep [locate_data_file OCC111a.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "BUC61054"
+puts "OCC111"
+puts "(case 2)"
+puts "========"
+
+igesbrep [locate_data_file OCC111b.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-1.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-2.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-3.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-4.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-5.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-6.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-7.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC131"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file OCC131-8.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========================"
+puts "BUC60993"
+puts "OCC99"
+puts "OCC133"
+puts "========================"
+puts ""
+##############################################
+##Loading phase returns error status (though no exception raised).
+##############################################
+
+igesbrep [locate_data_file igsBF5.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts "BUC60985"
+puts "OCC92"
+puts "OCC133"
+puts "========================"
+puts ""
+################################################################
+##Many untrimmed faces resulting from translating an IGES file to Open CASCADE
+## Sometimes resulting models look very different.
+################################################################
+
+igesbrep [locate_data_file Cover.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts "BUC60983"
+puts "OCC90"
+puts "OCC133"
+puts "========================"
+
+#######################################################
+## Exception when translating an IGES file to Open CASCADE (mapping phase).
+#######################################################
+
+igesbrep [locate_data_file Case.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "========================"
+puts "BUC60984"
+puts "OCC91"
+puts "OCC133"
+puts "========================"
+puts ""
+#####################################################
+## Exception when translating an IGES file to Open CASCADE (loading phase).
+#####################################################
+
+catch {param read.iges.faulty.entities 1}
+
+igesbrep [locate_data_file frame.igs] a *
+
+
--- /dev/null
+puts "========================"
+puts "BUC60986"
+puts "OCC93"
+puts "OCC133"
+puts "========================"
+puts ""
+
+################################################################
+##Exception when translating an IGES file to Open CASCADE (loading phase).
+################################################################
+
+cpulimit 3000
+
+igesbrep [locate_data_file igsBF1.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts "BUC60988"
+puts "OCC94"
+puts "OCC133"
+puts "========================"
+puts ""
+################################################################
+##Exception when translating an IGES file to Open CASCADE (loading phase).
+################################################################
+
+igesbrep [locate_data_file Rich.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC156"
+puts "BUC60832"
+puts "SAM392/SAM289"
+puts "========"
+
+#####################################################
+## See also 913 case D1
+## SAM392, #289: Crash when you want to import the "waaier_para.igs" file
+#####################################################
+
+igesbrep [locate_data_file Samtech_waaier_para.igs] a *
+
+tpcompound result
+
+set 3dviewer 1
+
+
--- /dev/null
+puts "========"
+puts "OCC201"
+puts "========"
+puts ""
+#########################################################
+## Incorrect face (with wrong boundary) is imported from the file ps1002-v5.igs.
+#########################################################
+
+igesbrep [locate_data_file OCC201.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC272"
+puts "========"
+
+igesbrep [locate_data_file 919-001-T02-04-CP-VL.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+if { [llength [whatis result]] == 3 } {
+ puts "Error : There is no result"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC272"
+puts "========"
+
+igesbrep [locate_data_file 919-001-T02-04-FT-VL.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+if { [llength [whatis result]] == 3 } {
+ puts "Error : There is no result"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC272"
+puts "========"
+
+igesbrep [locate_data_file 919-004-T02-01-FT-VL.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+if { [llength [whatis result]] == 3 } {
+ puts "Error : There is no result"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC272"
+puts "========"
+
+igesbrep [locate_data_file 919-004-T03-04-CP-VL.igs] a *
+
+tpcompound result
+
+if { [llength [whatis result]] == 3 } {
+ puts "Error : There is no result.
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC283"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file BUC50030.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC285"
+puts "========"
+
+igesbrep [locate_data_file OCC285.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "================"
+puts "OCC306"
+puts "================"
+puts ""
+#############################################################################
+##After applying sewing on the model from the file TibTray_Size3.igs (see the attachment) one surface is not shaded.
+#############################################################################
+
+igesbrep [locate_data_file TibTray_Size3.igs] a *
+
+tpcompound a
+tclean a
+
+sewing result a
+
+puts [checkshape result]
+
+vinit
+vsetdispmode result 1
+vdisplay result
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { ($tri != 6409 || $nod != 6195) } {
+ puts "Shading problem may be, nb tri & nod"
+}
+
+set 3dviewer 1
+
+
+
--- /dev/null
+puts "========"
+puts "OCC365"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file BUC61004-1.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC365"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file BUC61004-2.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC365"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file BUC61004-3.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC365"
+puts "========"
+puts ""
+
+igesbrep [locate_data_file BUC61004-4.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC386"
+puts "========"
+puts ""
+#######################################
+## Crash when reading an IGES file
+#######################################
+
+igesbrep [locate_data_file So5571b.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC450"
+puts "========"
+puts "(case 1)"
+puts ""
+#################################################################
+## After reading file5.igs, the surface of revolution written in this file becomes a plane.
+#################################################################
+
+igesbrep [locate_data_file OCC450a.igs] a *
+
+explode a
+mksurface result a_3
+set info [dump result]
+
+if { [regexp "SurfaceOfRevolution" $info] != 1 } {
+ puts "Error : surface of revolution becomes a plane"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC450"
+puts "========"
+puts "(case 2)"
+puts ""
+#################################################################
+## After reading file5.igs, the surface of revolution written in this file becomes a plane.
+#################################################################
+
+igesbrep [locate_data_file NIC_file5.igs] a *
+
+mksurface result a
+
+set info [dump result]
+
+if { [regexp "SurfaceOfRevolution" $info] != 1 } {
+ puts "Error : surface of revolution becomes a plane"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC58"
+puts "========"
+puts ""
+puts "Shape is incorrect after translation"
+puts "case 1 (6546a01.igs)"
+puts ""
+
+igesbrep [locate_data_file OCC58a.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC58"
+puts "========"
+puts ""
+puts "Shape is incorrect after translation"
+puts "case 2 (JC_Turbine.igs)"
+puts ""
+
+cpulimit 3000
+
+igesbrep [locate_data_file OCC58b.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC58"
+puts "========"
+puts ""
+puts "Shape is incorrect after translation"
+puts "case 3 (MACPartSolid.igs)"
+puts ""
+
+cpulimit 3000
+
+igesbrep [locate_data_file OCC58c.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "=========="
+puts "BUC60591"
+puts "=========="
+puts ""
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+puts ""
+puts "consideration of \"buc60591a\" model"
+
+igesbrep [locate_data_file buc60591a.igs] a *
+
+tpcompound buc60591a
+
+puts [checkshape buc60591a r]
+
+######################################################################
+
+catch {exec rm ${imagedir}/buc60591a.brep}
+save buc60591a ${imagedir}/buc60591a.brep
+catch {exec rm ${imagedir}/buc60591a_iges.igs}
+brepiges buc60591a ${imagedir}/buc60591a_iges.igs
+dall
+
+restore ${imagedir}/buc60591a.brep buc60591a_brep
+catch {exec rm ${imagedir}/buc60591a_brep.igs}
+brepiges buc60591a_brep ${imagedir}/buc60591a_brep.igs
+dall
+
+igesbrep ${imagedir}/buc60591a_brep.igs a_brep_iges *
+tpcompound buc60591a_brep_iges
+puts [checkshape buc60591a_brep_iges]
+
+igesbrep ${imagedir}/buc60591a_iges.igs a_iges *
+tpcompound buc60591a_iges
+puts [checkshape buc60591a_iges]
+
+renamevar buc60591a_iges result
+
+set 2dviewer 0
+
--- /dev/null
+puts "=================================="
+puts "BUC60591"
+puts "=================================="
+puts ""
+puts "It takes visual check for this BUG"
+puts "=================================="
+puts ""
+puts "consideration of \"buc60591b\" model"
+
+igesbrep [locate_data_file buc60591b.igs] a *
+
+tpcompound buc60591b
+
+puts [checkshape buc60591b r]
+
+######################################################################
+
+catch {exec rm ${imagedir}/buc60591b.brep}
+save buc60591b ${imagedir}/buc60591b.brep
+catch {exec rm ${imagedir}/buc60591b_iges.igs}
+brepiges buc60591b ${imagedir}/buc60591b_iges.igs
+dall
+
+restore ${imagedir}/buc60591b.brep buc60591b_brep
+catch {exec rm ${imagedir}/buc60591b_brep.igs}
+brepiges buc60591b_brep ${imagedir}/buc60591b_brep.igs
+dall
+
+igesbrep ${imagedir}/buc60591b_brep.igs b_brep_iges *
+tpcompound buc60591b_brep_iges
+puts [checkshape buc60591b_brep_iges]
+
+igesbrep ${imagedir}/buc60591b_iges.igs b_iges *
+tpcompound buc60591b_iges
+puts [checkshape buc60591b_iges]
+
+renamevar buc60591b_iges result
+
+set 2dviewer 0
+
--- /dev/null
+puts "=================================="
+puts "BUC60591"
+puts "=================================="
+puts ""
+puts "It takes visual check for this BUG"
+puts "=================================="
+puts ""
+puts "consideration of \"buc60591c\" model"
+
+igesbrep [locate_data_file buc60591c.igs] a *
+
+tpcompound buc60591c
+puts [checkshape buc60591c r]
+
+######################################################################
+
+catch {exec rm ${imagedir}/buc60591c.brep}
+save buc60591c ${imagedir}/buc60591c.brep
+catch {exec rm ${imagedir}/buc60591c_iges.igs}
+brepiges buc60591c ${imagedir}/buc60591c_iges.igs
+dall
+
+restore ${imagedir}/buc60591c.brep buc60591c_brep
+catch {exec rm ${imagedir}/buc60591c_brep.igs}
+brepiges buc60591c_brep ${imagedir}/buc60591c_brep.igs
+dall
+
+igesbrep ${imagedir}/buc60591c_brep.igs c_brep_iges *
+tpcompound buc60591c_brep_iges
+puts [checkshape buc60591c_brep_iges]
+
+igesbrep ${imagedir}/buc60591c_iges.igs c_iges *
+tpcompound buc60591c_iges
+puts [checkshape buc60591c_iges]
+
+renamevar buc60591c_iges result
+
+set 2dviewer 0
+
--- /dev/null
+puts "BUC60591"
+puts ""
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+puts ""
+puts "consideration of \"buc60591d\" model"
+
+igesbrep [locate_data_file buc60591d.igs] a *
+
+tpcompound buc60591d
+puts [checkshape buc60591d r]
+
+######################################################################
+
+catch {exec rm ${imagedir}/buc60591d.brep}
+save buc60591d ${imagedir}/buc60591d.brep
+catch {exec rm ${imagedir}/buc60591d_iges.igs}
+brepiges buc60591d ${imagedir}/buc60591d_iges.igs
+dall
+
+restore ${imagedir}/buc60591d.brep buc60591d_brep
+catch {exec rm ${imagedir}/buc60591d_brep.igs}
+brepiges buc60591d_brep ${imagedir}/buc60591d_brep.igs
+dall
+
+igesbrep ${imagedir}/buc60591d_brep.igs d_brep_iges *
+tpcompound buc60591d_brep_iges
+puts [checkshape buc60591d_brep_iges]
+
+igesbrep ${imagedir}/buc60591d_iges.igs d_iges *
+tpcompound buc60591d_iges
+puts [checkshape buc60591d_iges]
+
+renamevar buc60591d_iges result
+
+set 2dviewer 0
+
--- /dev/null
+puts "=================================="
+puts "BUC60594"
+puts "=================================="
+puts ""
+puts "It takes visual check for this BUG"
+puts "=================================="
+puts ""
+
+igesbrep [locate_data_file buc60594a.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "=================="
+puts "BUC60595"
+puts "=================="
+puts ""
+###################################################################
+## This one relates to the generation of floating point exceptions during the IGE to BRep translation.
+## See the notes in fw_fpe.READ.
+###################################################################
+
+set bug_var [ igesbrep [locate_data_file buc60595a.igs] a * ]
+
+tpcompound result
+
+if { [ string match "*Uninspired signal*" $bug_var ] == 1 } {
+ puts "Error : TEST FAILED"
+}
+
+isos 0
+isos result 15
+
+puts "Previously here was message: Uninspired signal 8"
+
+set 2dviewer 0
+
--- /dev/null
+puts "=================="
+puts "BUC60595"
+puts "=================="
+
+set bug_var [ igesbrep [locate_data_file buc60595b.igs] a * ]
+
+tpcompound result
+
+if { [ string match "*Uninspired signal*" $bug_var ] == 1 } {
+ puts "Error : TEST FAILED"
+}
+
+isos 0
+isos result 15
+
+puts "Previously here was message: Uninspired signal 8"
+
+set 2dviewer 0
--- /dev/null
+puts "================"
+puts "BUC60595"
+puts "================"
+
+set bug_var [ igesbrep [locate_data_file buc60595c.igs] c * ]
+if { [ string match "*Uninspired signal*" $bug_var ] == 1 } {
+ puts "Error : TEST FAILED"
+}
+
+tpcompound result
+
+isos result 0
+isos result 15
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========================"
+puts "BUC60610"
+puts "========================"
+
+igesbrep [locate_data_file buc60610a.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "===================="
+puts "BUC60625"
+puts "===================="
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+
+cpulimit 1500
+
+set l [igesbrep [locate_data_file BUC60625-1.igs] a xst-transferrable-roots]
+
+tpcompound result
+puts [checkshape result r]
+
+set start [lindex $l 60]
+set bug_list_numb [ llength $l ]
+set bug_list_elem 0
+
+# Search word sequence: Nb entities selected : XXXX
+while { $bug_list_elem < $bug_list_numb } {
+ if { [ string compare "Nb" [ lindex $l $bug_list_elem ] ] == 0 && [ string compare "entities" [ lindex $l [ expr { $bug_list_elem + 1 } ] ] ] == 0 && [ string compare "selected" [ lindex $l [ expr { $bug_list_elem + 2 } ] ] ] == 0 && [ string compare ":" [ lindex $l [ expr { $bug_list_elem + 3 } ] ] ] == 0 } {
+ set start [ lindex $l [ expr { $bug_list_elem + 4 } ] ]
+ set bug_list_elem [ expr { $bug_list_numb - 1 } ]
+ }
+ set bug_list_elem [ expr { $bug_list_elem + 1 } ]
+}
+
+# Search word sequence: Nb Shapes successfully produced : XXXX
+set end [lindex $l 0]
+set bug_list_elem 0
+while { $bug_list_elem < $bug_list_numb } {
+ set word_0 [ lindex $l [ expr { $bug_list_elem + 0 } ] ]
+ set word_1 [ lindex $l [ expr { $bug_list_elem + 1 } ] ]
+ set word_2 [ lindex $l [ expr { $bug_list_elem + 2 } ] ]
+ set word_3 [ lindex $l [ expr { $bug_list_elem + 3 } ] ]
+ set word_4 [ lindex $l [ expr { $bug_list_elem + 4 } ] ]
+ if { [ string compare "Nb" ${word_0} ] == 0 &&
+ [ string compare "Shapes" ${word_1} ] == 0 &&
+ [ string compare "successfully" ${word_2} ] == 0 &&
+ [ string compare "produced" ${word_3} ] == 0 &&
+ [ string compare ":" ${word_4} ] == 0 } {
+ set end [ lindex $l [ expr { $bug_list_elem + 5 } ] ]
+ set bug_list_elem [ expr { $bug_list_numb - 1 } ]
+ }
+ set bug_list_elem [ expr { $bug_list_elem + 1 } ]
+}
+
+if { $start != $end } {
+ puts " Error : The number of visible roots ($start) IS NOT EQUAL Nb Shapes successfully produced ($end)"
+} else {
+ puts " The number of visible roots ($start) IS EQUAL Nb Shapes successfully produced ($end)"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "==============="
+puts "BUC60646"
+puts "==============="
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+
+set l [igesbrep [locate_data_file BUC60625-1.igs] a xst-transferrable-roots]
+
+tpcompound res
+puts [checkshape res r]
+
+tcopy res result
+
+set start [lindex $l 60]
+set bug_list_numb [ llength $l ]
+set bug_list_elem 0
+
+# Search word sequence: Nb entities selected : XXXX
+while { $bug_list_elem < $bug_list_numb } {
+ if { [ string compare "Nb" [ lindex $l $bug_list_elem ] ] == 0 && [ string compare "entities" [ lindex $l [ expr { $bug_list_elem + 1 } ] ] ] == 0 && [ string compare "selected" [ lindex $l [ expr { $bug_list_elem + 2 } ] ] ] == 0 && [ string compare ":" [ lindex $l [ expr { $bug_list_elem + 3 } ] ] ] == 0 } {
+ set start [ lindex $l [ expr { $bug_list_elem + 4 } ] ]
+ set bug_list_elem [ expr { $bug_list_numb - 1 } ]
+ }
+ set bug_list_elem [ expr { $bug_list_elem + 1 } ]
+}
+
+# Search word sequence: Nb Shapes successfully produced : XXXX
+set end [lindex $l 0]
+set bug_list_elem 0
+while { $bug_list_elem < $bug_list_numb } {
+ set word_0 [ lindex $l [ expr { $bug_list_elem + 0 } ] ]
+ set word_1 [ lindex $l [ expr { $bug_list_elem + 1 } ] ]
+ set word_2 [ lindex $l [ expr { $bug_list_elem + 2 } ] ]
+ set word_3 [ lindex $l [ expr { $bug_list_elem + 3 } ] ]
+ set word_4 [ lindex $l [ expr { $bug_list_elem + 4 } ] ]
+ if { [ string compare "Nb" ${word_0} ] == 0 &&
+ [ string compare "Shapes" ${word_1} ] == 0 &&
+ [ string compare "successfully" ${word_2} ] == 0 &&
+ [ string compare "produced" ${word_3} ] == 0 &&
+ [ string compare ":" ${word_4} ] == 0 } {
+ set end [ lindex $l [ expr { $bug_list_elem + 5 } ] ]
+ set bug_list_elem [ expr { $bug_list_numb - 1 } ]
+ }
+ set bug_list_elem [ expr { $bug_list_elem + 1 } ]
+}
+
+if { $start != $end } {
+ puts " Error : The number of visible roots ($start) IS NOT EQUAL Nb Shapes successfully produced ($end)"
+} else {
+ puts " The number of visible roots ($start) IS EQUAL Nb Shapes successfully produced ($end)"
+}
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "============"
+puts "BUC60685"
+puts "============"
+puts ""
+
+cpulimit 1500
+
+set l [igesbrep [locate_data_file buc60685a.igs] a xst-transferrable-roots]
+
+tpcompound result
+puts [checkshape result r]
+
+set start [lindex $l 60]
+set bug_list_numb [ llength $l ]
+set bug_list_elem 0
+while { $bug_list_elem != $bug_list_numb } {
+ if { [ string compare "Nb" [ lindex $l $bug_list_elem ] ] == 0 && [ string compare "entities" [ lindex $l [ expr { $bug_list_elem + 1 } ] ] ] == 0 && [ string compare "selected" [ lindex $l [ expr { $bug_list_elem + 2 } ] ] ] == 0 && [ string compare ":" [ lindex $l [ expr { $bug_list_elem + 3 } ] ] ] == 0 } {
+ set start [ lindex $l [ expr { $bug_list_elem + 4 } ] ]
+ set bug_list_elem [ expr { $bug_list_numb - 1 } ]
+ }
+ set bug_list_elem [ expr { $bug_list_elem + 1 } ]
+}
+
+set n [llength $l]
+set end [lindex $l [expr $n-1]]
+if { $start != $end } {
+ puts "Error : wrong number of translated shapes. It is ${end} instead of ${start}"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "=========="
+puts "BUC60686"
+puts "=========="
+puts ""
+#puts "=================================="
+#puts "It takes visual check for this BUG"
+#puts "=================================="
+
+igesbrep [locate_data_file BUC50029.igs] a xst-transferrable-roots
+
+tpcompound result
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "=========="
+puts "BUC60687"
+puts "=========="
+
+igesbrep [locate_data_file buc40130.igs] a xst-transferrable-roots
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========================"
+puts "BUC60820"
+puts "========================"
+
+igesbrep [locate_data_file buc60820.igs] a *
+
+tpcompound result
+
+puts [checkshape result r]
+
+tclean result
+incmesh result 0.1
+triangles result
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri <= 0 || $nod <= 0 } {
+ puts "Error : Problems with shading"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "========================"
+puts "BUC60820"
+puts "========================"
+
+igesbrep [locate_data_file buc60820.igs] a *
+
+tpcompound result
+puts [checkshape result r]
+
+tclean result
+vinit
+vdisplay result
+vsetdispmode result 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nod} $info full nod
+
+
+if { $tri != 1655 || $nod != 1143 } {
+ puts "Shading problem may be, nb tri & nod were changed"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "========================"
+puts "BUC60823"
+puts "========================"
+
+igesbrep [locate_data_file buc60823.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+tclean result
+vinit
+vdisplay result
+vsetdispmode result 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri != 17618 || $nod != 11153 } {
+ puts "Shading problem may be, nb tri & nod are changed"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "==========="
+puts " BUC60850"
+puts "==========="
+
+igesbrep [locate_data_file BUC60850.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "==========="
+puts " BUC60894"
+puts "==========="
+
+cpulimit 3000
+
+igesbrep [locate_data_file buc60894.igs] a xst-transferrable-roots
+
+tpcompound result
+
+set 2dviewer 0
--- /dev/null
+puts "==========="
+puts " BUC60949"
+puts "==========="
+
+######################################################
+## Can not read iges file in XCAFEXE neither by command ReadIges no igesbrep.
+######################################################
+
+igesbrep [locate_data_file buc60949.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "==========="
+puts "GER61337"
+puts "=================================="
+
+cpulimit 3000
+
+igesbrep [locate_data_file ger61337a.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "============="
+puts "FRA62523"
+puts "============="
+
+igesbrep [locate_data_file fra62523a.igs] a *
+
+# tpcompound b
+# checkshape a_1
+
+vinit
+tclean a_1
+vdisplay a_1
+vsetdispmode a_1 1
+
+defle a_1 .005
+defle a_1 .001
+
+set 3dviewer 1
+
--- /dev/null
+puts "========================"
+puts "BUC60800 OCC89"
+puts "========================"
+
+#######################################################
+## Reading of this file crashes ??? Reading of this file gives invalid shape ???
+#######################################################
+
+igesbrep [locate_data_file BUC60800.igs] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC100"
+puts "================"
+puts ""
+########################################
+## Draw is crashed during cut on Windows NT. SAM1185.
+########################################
+
+restore [locate_data_file OCC100_sp.brep] sh1
+puts [checkshape sh1]
+
+restore [locate_data_file OCC100_cyl.brep] sh2
+puts [checkshape sh2]
+
+#OCC100 : on WNT result is crushed when we make the next command:
+
+bcut result sh1 sh2
+
+set square 2130.25
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "================"
+puts "BUC60663"
+puts "BUC60662"
+puts "OCC101"
+puts "================"
+puts ""
+######################################
+## After restore c shell, section is incomplete
+######################################
+restore [locate_data_file buc60663a.brep] sh1
+puts [checkshape sh1]
+restore [locate_data_file buc60663b.brep] sh2
+puts [checkshape sh2]
+
+bsection result sh1 sh2
+
+set length 26.2001
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "BUC60803"
+puts "OCC102"
+puts "================"
+puts ""
+
+restore [locate_data_file buc60803a.brep] sh1
+puts [checkshape sh1]
+restore [locate_data_file buc60803b.brep] sh2
+puts [checkshape sh2]
+
+bfuse result sh1 sh2
+
+set square 1.86064e+07
+set 2dviewer 0
+
+
+
--- /dev/null
+
+puts "================"
+puts "BUC60803"
+puts "OCC102"
+puts "================"
+puts ""
+
+restore [locate_data_file buc60803a.brep] sh1
+puts [checkshape sh1]
+restore [locate_data_file buc60803b.brep] sh2
+puts [checkshape sh2]
+
+bfuse result sh2 sh1
+
+set square 1.86064e+07
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "================"
+puts "BUC61037"
+puts "OCC108"
+puts "================"
+puts ""
+#####################################################################
+## BRepTools::AddUVBounds for the planar face bounded by a circle returns too small bounding box.
+#####################################################################
+
+restore [locate_data_file bug61037.brep] sh1
+puts [checkshape sh1]
+
+set rr [bounding sh1]
+regexp { *([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+) +([-0-9.+eE]+)} $rr full v1_x v1_y v1_z v2_x v2_y v2_z
+vertex v1 $v1_x $v1_y $v1_z
+vertex v2 $v2_x $v2_y $v2_z
+edge result v1 v2
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full dis
+if { [expr $dis < 0.201357] } {
+ puts "Faulty BUC61037: Planar circle and bounded face a returns too small bounding box"
+} else {
+ puts "OCC134 OK: bounding box is correct"
+}
+
+set length 0.201357
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty BUC61057: here can be shading problem"
+
+puts "================"
+puts "BUC61057"
+puts "OCC109"
+puts "================"
+puts ""
+##########################################################
+## Visualisation of the attached shape is wrong in the shading mode.
+##########################################################
+
+restore [locate_data_file OCC109.brep] result
+
+puts [checkshape result]
+
+vinit
+tclean result
+vdisplay result
+vsetdispmode result 1
+vfit
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri != 294 && $nod != 300 } {
+ puts "Faulty BUC61057: here can be shading problem"
+} else {
+ puts "Shading of BUC61057 is OK"
+}
+
+set square 33.8757
+set 3dviewer 2
--- /dev/null
+
+puts "========================"
+puts " BUC60706 "
+puts " OCC110 "
+puts "(case 1)"
+puts "========================"
+
+restore [locate_data_file buc60706a.brep] f
+puts [checkshape f]
+
+restore [locate_data_file buc60706b.brep] w
+puts [checkshape w]
+pipe t w f
+
+restore [locate_data_file buc60706c.brep] s
+puts [checkshape s]
+
+bcut result s t
+
+catch {exec rm ${imagedir}/buc60706f.brep}
+save result ${imagedir}/buc60706f.brep
+
+set square 865745
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " BUC60706 "
+puts " OCC110 "
+puts "(case 2)"
+puts "========================"
+
+restore [locate_data_file buc60706d.brep] f
+puts [checkshape f]
+
+restore [locate_data_file buc60706e.brep] w
+puts [checkshape w]
+pipe t w f
+
+restore ${imagedir}/buc60706f.brep s
+puts [checkshape s]
+
+bcut result s t
+catch {exec rm ${imagedir}/buc60706i.brep}
+save result ${imagedir}/buc60706i.brep
+
+set square 865617
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " BUC60706 "
+puts " OCC110 "
+puts "(case 3)"
+puts "========================"
+
+restore [locate_data_file buc60706g.brep] f
+puts [checkshape f]
+
+restore [locate_data_file buc60706h.brep] w
+puts [checkshape w]
+pipe t w f
+
+restore ${imagedir}/buc60706i.brep s
+puts [checkshape s]
+
+bcut result s t
+
+set square 865172
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " BUC60706 "
+puts " OCC110 "
+puts "(case 4)"
+puts "========================"
+
+restore [locate_data_file buc60706j.brep] f
+puts [checkshape f]
+
+restore [locate_data_file buc60706b.brep] w
+puts [checkshape w]
+pipe t w f
+
+restore [locate_data_file buc60706l.brep] s
+puts [checkshape s]
+
+bcut result s t
+catch {exec rm ${imagedir}/buc60706o.brep}
+save result ${imagedir}/buc60706o.brep
+
+set square 861712
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC116"
+puts "================"
+puts ""
+#############################################
+## Creation of chamfer is impossible on attached shape.(SAM1201)
+#############################################
+
+restore [locate_data_file OCC116.brep] sh
+puts [checkshape sh]
+
+explode sh f
+explode sh_6 e
+
+if [catch {chamf result sh sh_6_1 sh_6 A 2 45 sh_6_8 sh_6 A 2 45 } catch_result] {
+ puts "1) Faulty OCC116: chamfer is NOT created properly"
+ } else {
+ puts "1) CHAMF OCC116 OK"
+}
+
+set square 48357.5
+set 3dviewer 2
--- /dev/null
+
+puts "================"
+puts "OCC117"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC117.brep] sh
+explode sh
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_1 sh_2
+
+set square 292297
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC117"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC117.brep] sh
+explode sh
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_2 sh_1
+
+set square 292297
+set 2dviewer 0
+
+
--- /dev/null
+puts "========"
+puts "OCC118"
+puts "========"
+########################################################
+## The Cone part of final fuse shape becomes invisible
+########################################################
+
+restore [locate_data_file OCC118-1.brep] a
+puts [checkshape a]
+restore [locate_data_file OCC118-2.brep] b
+puts [checkshape b]
+
+bfuse result a b
+
+set square 4844.63
+set 3dviewer 1
+
--- /dev/null
+puts "========"
+puts "OCC118"
+puts "========"
+########################################################
+## The Cone part of final fuse shape becomes invisible
+########################################################
+
+restore [locate_data_file OCC118-1.brep] a
+puts [checkshape a]
+restore [locate_data_file OCC118-2.brep] b
+puts [checkshape b]
+
+bfuse result b a
+
+set square 4844.63
+set 3dviewer 1
+
--- /dev/null
+
+puts "================"
+puts "OCC122"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC122.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_1 sh_2
+
+set square 172790
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC122"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC122.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_2 sh_1
+
+set square 172790
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC122"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC122.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bcut result sh_1 sh_2
+
+set square 83334.1
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC122"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC122.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bcut result sh_2 sh_1
+
+set square 132943
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC123"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC123.brep] sh
+puts [checkshape sh]
+
+explode sh
+
+bfuse result sh_1 sh_2
+
+set square 81598.4
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "================"
+puts "OCC123"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC123.brep] sh
+puts [checkshape sh]
+
+explode sh
+
+bfuse result sh_2 sh_1
+
+set square 81598.4
+set 2dviewer 0
+
+
+
--- /dev/null
+
+puts "================"
+puts "OCC140"
+puts "================"
+puts ""
+#########################################################
+## Fillet is created incorrectly on attached shape.
+#########################################################
+
+restore [locate_data_file shading_137.brep] s
+puts [checkshape s]
+
+dset SCALE1 5
+tscale s 0 0 0 SCALE1
+explode s e
+blend sh s 4.5*SCALE1 s_4 4.5*SCALE1 s_5 4.5*SCALE1 s_1
+explode sh so
+
+renamevar sh_1 result
+fsameparameter result
+
+set square 3.65424e+06
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty : the distanse is"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
+
+puts "================"
+puts "BUC60663"
+puts "OCC144"
+puts "================"
+puts ""
+
+restore [locate_data_file buc60663a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60663b.brep] b
+puts [checkshape b]
+
+bsection result a b
+
+puts [checksection result]
+
+regexp {(result_[-0-9.+eE]+$)} [explode result v] full ver
+
+explode b e
+explode b_4 v
+distmini d $ver b_5
+
+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] } {
+ puts "Faulty : the distanse is $dist. It is more $toler."
+}
+
+set length 0
+set 2dviewer 0
+
--- /dev/null
+
+puts "============"
+puts "PRO16983"
+puts "============"
+
+restore [locate_data_file pro16983a.brep] B
+puts [checkshape B]
+plane p 0 0 0 1 0 0
+vertex v1 0 90.16396 252.4591
+vertex v2 0 252.459 -9.835989
+edge e v2 v1
+wire w e
+featlf B w p -5 0 0 5 0 0 1 1
+featperform lf result
+
+set square 796476
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "========"
+puts "OCC174"
+puts "========"
+puts ""
+###########################################################################
+## After analyze given face (file ff97.brep) using BRepCheck we recieve problem - "Bad Orientation of Subshape".
+## But we believe that this shape must be OK or we have to recieve more detail another reply from BRepCheck.
+###########################################################################
+
+restore [locate_data_file OCC174.brep] result
+
+set square 376.873
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "BUC60938"
+puts "OCC178"
+puts "================"
+
+
+restore [locate_data_file BUC60937.brep] a
+
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+
+set square 152908
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "BUC60937"
+puts "OCC178"
+puts "================"
+
+restore [locate_data_file BUC60937.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_1 a_2
+
+set square 835463
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "BUC60936"
+puts "OCC178"
+puts "================"
+
+restore [locate_data_file BUC60937.brep] a
+
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+
+set square 786002
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC179"
+puts "========"
+puts ""
+###########################################
+## Bug in meshing of the enclosed face
+###########################################
+
+restore [locate_data_file OCC179.brep] result
+
+tclean result
+isos result 0
+incmesh result 0.01
+triangles result
+
+set tri 0
+set nod 0
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri == 1874 || $nod == 1861} {
+ puts " OCC179 shading: OK"
+} else {
+ puts " OCC179 shading: Faulty"
+}
+
+set square 12229.8
+set 3dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty : Result is BAD. Distance is more than MaxTolerance"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
+
+puts "=========="
+puts "PRO18892"
+puts "=========="
+# Version de test: K4O, PATCH LEVEL:
+# GEOMETRY-M4-6A : 3
+# GEOMLITE-M4-6A : 1
+# TOPOLOGY-M4-6A : 2
+
+restore [locate_data_file pro18892.rle] a
+puts [checkshape a]
+
+explode a
+bsection result a_1 a_2 -2d -a
+explode result
+
+mkcurve c result_1
+cvalue c 1 X Y Z
+vertex v X Y Z
+explode a e
+
+distmini d v a_8
+
+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
+
+if { [expr $d > $MaxEdgeTolerance] || [expr $d > $MaxVertexTolerance] } {
+ puts "Faulty : Result is BAD. Distance is more than MaxTolerance"
+}
+
+set length 0
+set 3dviewer 2
\ No newline at end of file
--- /dev/null
+
+puts "=========="
+puts "PRO19424"
+puts "=========="
+
+restore [locate_data_file pro19424a.brep] b
+puts [checkshape b]
+restore [locate_data_file pro19424b.brep] p
+puts [checkshape p]
+
+if [catch {evolved result b p o } catch_result] {
+ puts "Faulty PRO19424 : function EVOLVED works wrongly"
+} else {
+ puts "PRO19424 OK: function EVOLVED works properly"
+}
+
+set square 246.506
+set 2dviewer 0
+
--- /dev/null
+
+puts "============"
+puts "PRO19626"
+puts "============"
+
+restore [locate_data_file pro19626a.brep] a
+puts [checkshape a]
+restore [locate_data_file pro19626b.brep] b
+puts [checkshape b]
+
+bsection result a b
+regexp { nb alone Vertices : +([-0-9.+eE]+)} [checksection result] full num
+if { $num != 2 } {
+ puts " Faulty PRO19626: Result shape is INcorrect !!! "
+} else {
+ puts "PRO19626 OK : Result shape is CORRECT !!! "
+}
+
+set length 174.597
+set 3dviewer 2
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty : TEST FAILED"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
+
+puts "============"
+puts "PRO19653"
+puts "BREPALGO_BOOLEANOPERATION does not return result."
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+
+restore [locate_data_file pro19653a.brep] a
+puts [checkshape a]
+restore [locate_data_file pro19653b.brep] b
+puts [checkshape b]
+bsection result a b
+
+explode result e
+checkshape result_1
+explode a e
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result_1] full ll_1
+regexp {Mass +: +([-0-9.+eE]+)} [lprops a_4] full ll_2
+if { $ll_1 != $ll_2 } {
+ puts "Faulty : TEST FAILED"
+} else {
+ puts "PRO19653 OK : BREPALGO_BOOLEANOPERATION returns result"
+}
+
+set length 0
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "================"
+puts "OCC21"
+puts "================"
+puts ""
+
+#test for XSDRAWEXE application#
+#==============================#
+
+pload XDE
+catch { source $env(CSF_DrawPluginQADefaults)/QARebuildCommands }
+
+restore [locate_data_file OCC21.brep] sh
+puts [checkshape sh]
+puts "two faces in the compound share one edge"
+
+DT_SplitAngle result sh 90
+
+puts "in the resulting shape sharing is not preserved"
+
+set square 12154.8
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC212"
+puts "========"
+################################################
+## Bug in Topological "Common" boolean operation
+################################################
+
+restore [locate_data_file OCC212-1.brep] S1
+puts [checkshape S1]
+restore [locate_data_file OCC212-2.brep] S2
+puts [checkshape S2]
+
+bcommon result S1 S2
+
+set square 314.301
+set 3dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC212"
+puts "========"
+################################################
+## Bug in Topological "Common" boolean operation
+################################################
+
+restore [locate_data_file OCC212-1.brep] S1
+puts [checkshape S1]
+restore [locate_data_file OCC212-2.brep] S2
+puts [checkshape S2]
+
+bcommon result S2 S1
+
+set square 314.301
+set 3dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC213"
+puts "========"
+################################################
+## Bug in Topological "fuse" boolean operation
+################################################
+
+restore [locate_data_file OCC213-1.brep] S1
+puts [checkshape S1]
+restore [locate_data_file OCC213-2.brep] S2
+puts [checkshape S2]
+
+bfuse result S1 S2
+set square 4835.45
+set 3dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC213"
+puts "========"
+################################################
+## Bug in Topological "fuse" boolean operation
+################################################
+
+restore [locate_data_file OCC213-1.brep] S1
+puts [checkshape S1]
+restore [locate_data_file OCC213-2.brep] S2
+puts [checkshape S2]
+
+bfuse result S2 S1
+set square 4835.45
+set 3dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "========"
+puts "OCC221"
+puts "========"
+puts ""
+######################################################################
+##After loading attached file (one simple face) checkshape give a problem (Bad Orientation of SubShape)
+## but I believe that this face is correct. Also I believe that face is vitiated during performing checkshape
+## (perhaps - in BRepCheck_Face::ClassifyWire())
+######################################################################
+
+restore [locate_data_file OCC221.brep] result
+set che [checkshape result r]
+if { [regexp {OK} $che] != 1 } {
+ puts "Faulty OCC221 (checkshape) : Checkshape command works wrongly"
+} else {
+ puts "OCC221 OK (checkshape) : Checkshape command works properly"
+}
+puts ""
+set che [checkshape result]
+if { [regexp {Faulty} $che] == 1} {
+ puts "Faulty OCC221 (checkshape) : Checkshape command works wrongly"
+} else {
+ puts "OCC221 OK (checkshape) : Checkshape command works properly"
+}
+
+set square 425.537
+set 2dviewer 0
+
+
--- /dev/null
+#INTERFACE IGES
+puts "========"
+puts "OCC234"
+puts "========"
+
+######################################################################
+##I believe that attached shape is OK but checkshape finds out some problems (Bad Orientation of Subshape).
+######################################################################
+
+restore [locate_data_file OCC234.brep] result
+
+set che [checkshape result r]
+if { [regexp {OK} $che] != 1 } {
+ puts "Faulty OCC234 (checkshape) : Checkshape command works wrongly"
+} else {
+ puts "OCC234 OK (checkshape) : Checkshape command works properly"
+}
+
+set che [checkshape result]
+if { [regexp {Faulty} $che] == 1 } {
+ puts "Faulty OCC234 (checkshape) : Checkshape command works wrongly"
+} else {
+ puts "OCC234 OK (checkshape) : Checkshape command works properly"
+}
+
+set square 2464.17
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC264"
+puts " (case 0)"
+puts "========"
+
+restore [locate_data_file OCC264_00.rle] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vclear
+
+isos result 0
+triangles result
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri != 6 && $nod != 8 } {
+ puts "Faulty OCC264_0: here is shading problem"
+} else {
+ puts "Shading of OCC264_0 is OK"
+}
+
+set square 1.3135
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC264_1: here is shading problem"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC264"
+puts " (case 1)"
+puts "========"
+
+restore [locate_data_file OCC264_01.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vclear
+
+isos result 0
+triangles result
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri != 26 && $nod != 28 } {
+ puts "Faulty OCC264_1: here is shading problem"
+} else {
+ puts "Shading of OCC264_1 is OK"
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC264"
+puts " (case 6)"
+puts "========"
+
+restore [locate_data_file OCC264_06.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vclear
+
+isos result 0
+triangles result
+
+#smallview
+#fit
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri != 18 && $nod != 20 } {
+ puts "Faulty OCC264_6: here is shading problem"
+} else {
+ puts "Shading of OCC264_6 is OK"
+}
+
+set square 19.2399
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC264"
+puts " (case 7)"
+puts "========"
+
+restore [locate_data_file OCC264_07.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vclear
+
+isos result 0
+triangles result
+
+#smallview
+#fit
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { ($tri != 114 && $nod != 116) && ($tri != 116 && $nod != 118) } {
+ puts "Shady OCC264_7: here may be shading problem"
+} else {
+ puts "Shading of OCC264_7 is OK"
+}
+
+set square 150.283
+set 2dviewer 0
+
--- /dev/null
+
+puts "======== OCC269 ========"
+
+restore [locate_data_file OCC269-1.brep] result
+puts [checkshape result]
+isos result 0
+tclean result
+
+#Creating mesh
+incmesh result 0.01
+
+#View the result of mesh
+triangles result
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+#$tri != 8091 && $nod != 4121,aki251103
+if { $tri != 5853 && $nod != 2999 } {
+ puts "Shady OCC269: shading problem may be, nb tri & nod changed"
+} else {
+ puts "Shading of OCC269 is OK"
+}
+set square 32.9479
+set 2dviewer 0
--- /dev/null
+
+puts "======== OCC269 ========"
+
+restore [locate_data_file OCC269-2.brep] result
+puts [checkshape result]
+isos result 0
+tclean result
+
+#Creating mesh
+incmesh result 0.01
+
+#View the result of mesh
+triangles result
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+# $tri != 7627 && $nod != 3888,aki251103
+if { $tri != 6849 && $nod != 3498 } {
+ puts "Shady OCC269: shading problem may be"
+} else {
+ puts "Shading of OCC269 is OK"
+}
+set square 32.9479
+set 2dviewer 0
--- /dev/null
+
+puts "======== OCC269 ========"
+
+restore [locate_data_file OCC269-3.brep] result
+puts [checkshape result]
+isos result 0
+tclean result
+
+#Creating mesh
+incmesh result 0.01
+
+#View the result of mesh
+triangles result
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+# $tri != 7524 && $nod != 3840,aki251103
+if { $tri != 6302 && $nod != 3226 } {
+ puts "Shady OCC269: shading problem may be, nb tri & nod changed"
+} else {
+ puts "Shading of OCC269 is OK"
+}
+set square 36.4284
+set 2dviewer 0
+
--- /dev/null
+
+puts "======== OCC269 ========"
+
+restore [locate_data_file OCC269-4.brep] result
+puts [checkshape result]
+isos result 0
+tclean result
+
+#Creating mesh
+incmesh result 0.01
+
+#View the result of mesh
+triangles result
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+# $tri != 8362 && $nod != 4257
+if { $tri != 7218 && $nod != 3685 } {
+ puts "Shady OCC269: shading problem may be, nb tri & nod changed"
+} else {
+ puts "Shading of OCC269 is OK"
+}
+set square 36.4284
+set 2dviewer 0
--- /dev/null
+
+puts "================= OCC291 ==================="
+
+#################################################################
+## Some triangles of shading mesh are outside of shape boundaries. (See attached shape).
+#################################################################
+
+restore [locate_data_file shading_171.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vsetdispmode result 1
+
+isos result 0
+triangles result
+
+ set tri 0
+ set nod 0
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+#$tri == 395 && $nod == 350,aki251103.
+if { $tri == 382 && $nod == 343 } {
+ puts " Warning: OCC291 looks like OK, but visual checking is required !"
+} else {
+ puts " Shady OCC291 : nb tri & nod changed"
+}
+
+set square 376.873
+set 3dviewer 2
--- /dev/null
+
+puts "========================"
+puts " OCC292 "
+puts "========================"
+puts ""
+#################################################################
+## Attached face looks as unclosed but command "checkshape" concludes that it is valid. Inspite of that,
+## mesh for shading is not creating on this face.
+#################################################################
+
+restore [locate_data_file OCC292.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vsetdispmode result 1
+
+isos result 0
+triangles result
+
+ set tri 0
+ set nod 0
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+if { $tri ==6 && $nod == 8} {
+ puts " Warning: OCC292 looks like OK, but visual checking is required !!!!"
+} else {
+ puts " OCC292 : Faulty"
+}
+
+set 3dviewer 2
+set square 1.3135
+
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: \\*\\* Exception *\\*\\*.*"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "================"
+puts "OCC293"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC293.brep] a
+tclean a
+puts [checkshape a]
+
+vinit
+#vdisplay a
+#vfit
+
+renamevar a edge
+explode edge e
+
+renamevar edge face
+explode face f
+
+chamf result1 face edge_26 face_5 A 1 45
+puts [checkshape result1]
+
+chamf result2 face edge_30 face_5 A 1 45
+puts [checkshape result2]
+
+chamf result3 face edge_34 face_5 A 1 45
+puts [checkshape result3]
+
+chamf result4 face edge_39 face_5 A 1 45
+puts [checkshape result4]
+
+chamf result5 face edge_35 face_5 A 1 45
+puts [checkshape result5]
+
+chamf result6 face edge_31 face_5 A 1 45
+puts [checkshape result6]
+
+chamf result7 face edge_27 face_5 A 1 45
+puts [checkshape result7]
+
+chamf result8 face edge_24 face_5 A 1 45
+puts [checkshape result8]
+
+# all contour is :
+#chamf result face edge_26 face_5 A 1 45 edge_28 face_5 A 1 45 edge_30 face_5 A 1 45 edge_32 face_5 A 1 45 edge_34 face_5 A 1 45 edge_36 face_5 A 1 45 edge_38 face_5 A 1 45 edge_40 face_5 A 1 45 edge_13 face_5 A 1 45 edge_14 face_5 A 1 45 edge_39 face_5 A 1 45 edge_37 face_5 A 1 45 edge_35 face_5 A 1 45 edge_33 face_5 A 1 45 edge_31 face_5 A 1 45 edge_29 face_5 A 1 45 edge_27 face_5 A 1 45 edge_6 face_5 A 1 45 edge_4 face_5 A 1 45 edge_19 face_5 A 1 45 edge_22 face_5 A 1 45 edge_23 face_5 A 1 45 edge_24 face_5 A 1 45 edge_25 face_5 A 1 45 edge_26 face_5 A 1 45
+
+#checkshape result
+
+vclear
+
+#vdisplay result1
+#vdisplay result2
+#vdisplay result3
+#vdisplay result4
+#vdisplay result5
+#vdisplay result6
+#vdisplay result7
+#vdisplay result8
+compound result1 result2 result3 result4 result5 result6 result7 result8 result
+vdisplay result
+vfit
+
+set square 9.80214e+06
+set 3dviewer 2
--- /dev/null
+
+puts "========"
+puts "OCC297"
+puts "========"
+
+vertex v1 250 250 0
+vertex v2 -250 250 0
+vertex v3 -250 -250 0
+vertex v4 250 -250 0
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v4
+edge e4 v4 v1
+
+wire w1 e1 e2 e3 e4
+
+mkplane f w1
+
+set x 0
+set y 0
+
+set Zpoint -100
+set Zbox -30
+
+halfspace hs f $x $y $Zpoint
+
+box b 0 0 $Zbox 150 200 200
+
+bcut result b hs
+
+set square 179000
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC297"
+puts "========"
+
+vertex v1 250 250 0
+vertex v2 -250 250 0
+vertex v3 -250 -250 0
+vertex v4 250 -250 0
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v4
+edge e4 v4 v1
+
+wire w1 e1 e2 e3 e4
+
+mkplane f w1
+
+set x 0
+set y 0
+
+set Zpoint 100
+set Zbox -30
+
+halfspace hs f $x $y $Zpoint
+
+box b 0 0 $Zbox 150 200 200
+
+bcut result b hs
+set square 81000
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC297"
+puts "========"
+
+vertex v1 250 250 0
+vertex v2 -250 250 0
+vertex v3 -250 -250 0
+vertex v4 250 -250 0
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v4
+edge e4 v4 v1
+
+wire w1 e1 e2 e3 e4
+
+mkplane f w1
+
+set x 0
+set y 0
+
+set Zpoint -100
+set Zbox -80
+
+halfspace hs f $x $y $Zpoint
+
+box b 0 0 $Zbox 150 200 200
+
+bcut result b hs
+set square 144000
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC297"
+puts "========"
+
+vertex v1 250 250 0
+vertex v2 -250 250 0
+vertex v3 -250 -250 0
+vertex v4 250 -250 0
+
+edge e1 v1 v2
+edge e2 v2 v3
+edge e3 v3 v4
+edge e4 v4 v1
+
+wire w1 e1 e2 e3 e4
+
+mkplane f w1
+
+set x 0
+set y 0
+
+set Zpoint 100
+set Zbox -80
+
+halfspace hs f $x $y $Zpoint
+
+box b 0 0 $Zbox 150 200 200
+
+bcut result b hs
+set square 116000
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC298 "
+puts "========================"
+puts ""
+#################################################################
+## Exception during "tcopy" command
+#################################################################
+
+restore [locate_data_file OCC298.brep] result
+puts [checkshape result]
+
+if [catch {tcopy result a } result] {
+ puts "Faulty OCC298: function TCOPY works wrongly"
+} else {
+ puts "OCC298 OK: function TCOPY works properly"
+}
+
+set square 8e+100
+set 2dviewer 0
+
--- /dev/null
+#INTERFACE IGES
+puts "========================"
+puts " OCC302 "
+puts "(case 1)"
+puts "========================"
+puts ""
+#################################################################
+## After performing command "checkbrep" to attached face I receive "Bad Orientation of Subshape"
+## but I believe that orientation of this face is correct.
+#################################################################
+
+restore [locate_data_file OCC302a.brep] result
+
+set che [checkshape result r]
+if { [regexp {OK} $che] != 1} {
+ puts "Faulty OCC302 (case 1): command checkbrep works wrongly"
+} else {
+ puts "OCC302 OK (case 1) : command checkbrep works properly"
+}
+
+set square 271.611
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "========================"
+puts " OCC302 "
+puts "(case 2)"
+puts "========================"
+puts ""
+#################################################################
+## After performing command "checkbrep" to attached face I receive "Bad Orientation of Subshape"
+## but I believe that orientation of this face is correct.
+#################################################################
+
+restore [locate_data_file OCC302b.brep] result
+
+set che [checkshape result r]
+if { [regexp {OK} $che] != 1} {
+ puts "Faulty OCC302 (case 2): command checkbrep works wrongly"
+} else {
+ puts "OCC302 OK (case 2) : command checkbrep works properly"
+}
+
+set square 1.93998
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "========================"
+puts " OCC302 "
+puts "(case 3)"
+puts "========================"
+puts ""
+#################################################################
+## After performing command "checkshape" to attached face I receive "Bad Orientation of Subshape"
+## but I believe that orientation of this face is correct.
+#################################################################
+
+restore [locate_data_file OCC302c.brep] result
+
+set che [checkshape result r]
+if { [regexp {OK} $che] !=1 } {
+ puts "Faulty OCC302 (case 3): command checkshape works wrongly"
+} else {
+ puts "OCC302 OK (case 3) : command checkshape works properly"
+}
+
+set square 23240.8
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC315"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC315-1.brep] f1
+restore [locate_data_file OCC315-2.brep] f2
+puts [checkshape f1]
+puts [checkshape f2]
+
+bcut result f1 f2
+
+set square 58584.1
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC318 "
+puts "========================"
+puts ""
+##################################################
+## Checkshape works wrong with Semi-Infinite Prism (s)
+##################################################
+
+box mb -0.5 -0.5 -0.5 1 1 1
+explode mb F
+prism result mb_1 1 0 0 SemiInf
+
+set che [checkshape result]
+if { [regexp {Faulty} $che] == 1} {
+ puts "Faulty OCC318: Result shape is invalid. It was detected by Checkshape command"
+} else {
+ puts "OCC318 OK: Result shape is valid"
+}
+
+set square 8e+100
+set 2dviewer 0
--- /dev/null
+pload QAcommands
+puts "================"
+puts "OCC322"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC322.brep] a
+puts [checkshape a]
+
+sewing result a
+
+vinit
+vdisplay result
+vfit
+
+set Yellow_R 1
+set Yellow_G 1
+set Yellow_B 0
+
+set x1 204
+set y1 297
+
+set x2 251
+set y2 230
+
+QAGetPixelColor $x1 $y1 $Yellow_R $Yellow_G $Yellow_B
+QAGetPixelColor $x2 $y2 $Yellow_R $Yellow_G $Yellow_B
+
+set square 20000
+set 3dviewer 2
--- /dev/null
+
+puts "================"
+puts "OCC323"
+puts "OCC229"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC323.brep] f
+explode f
+
+decho off
+set che [checkshape f_1]
+decho on
+
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Warning OCC323 (shape1): Source shape is NOT correct. It was detected by Checkshape command"
+} else {
+ puts "OCC323 OK (shape1): Source shape is valid"
+}
+
+decho off
+set che [checkshape f_2]
+decho on
+
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Warning OCC323 (shape2): Source shape is NOT correct. It was detected by Checkshape command"
+} else {
+ puts "OCC323 OK (shape2): Source shape is valid"
+}
+
+bsection r f_1 f_2
+puts [checkshape r]
+puts [checksection r]
+
+decho off
+set che [checkshape f_3]
+decho on
+
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Warning OCC323 (shape3): Source shape is invalid. It was detected by Checkshape command"
+} else {
+ puts "OCC323 OK (shape3): Source shape is valid"
+}
+
+bsection result f_1 f_3
+
+set length 1
+set 2dviewer 0
+
+
+
--- /dev/null
+#INTERFACE IGES
+puts "========================"
+puts " OCC327 "
+puts " case 1 "
+puts "========================"
+
+restore [locate_data_file OCC327a.brep] result
+
+set che [checkshape result r]
+if { [regexp {OK} $che] == 1 } {
+ puts " OCC327 case 1: OK"
+} else {
+ puts " OCC327 case 1: Faulty"
+}
+
+set square 1477.93
+set 2dviewer 0
+
--- /dev/null
+#INTERFACE IGES
+puts "========================"
+puts " OCC327 "
+puts " case 2 "
+puts "========================"
+
+restore [locate_data_file OCC327b.brep] result
+
+set che [checkshape result r]
+if { [regexp {OK} $che] == 1 } {
+ puts " OCC327 case 2: OK"
+} else {
+ puts " OCC327 case 2: Faulty"
+}
+
+set square 5674.84
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60928"
+puts "OCC334"
+puts "============"
+
+restore [locate_data_file BUC60928.brep] a
+
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_2 a_1
+
+set square 358258
+set 2dviewer 0
+
--- /dev/null
+
+puts "============"
+puts "BUC60931"
+puts "OCC335"
+puts "============"
+puts ""
+#################################################################################
+## It's impossible to make boolean operations (common)for the two solids in the file attached. Samcef Modeler project bug
+#################################################################################
+
+restore [locate_data_file BUC60931.brep] a
+
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+
+set square 22715.9
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60939"
+puts "OCC336"
+puts "============"
+
+restore [locate_data_file BUC60939.brep] a
+
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_1 a_2
+
+set square 32903.1
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "BUC60996"
+puts "OCC338"
+puts "========"
+puts ""
+
+restore [locate_data_file buc60996.brep] b
+explode b
+puts [checkshape b_1]
+puts [checkshape b_2]
+
+bfuse f1 b_1 b_2
+puts [checkshape f1]
+bfuse result b_2 b_1
+
+set square 73561.9
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "BUC61005"
+puts "OCC340"
+puts "========"
+puts ""
+
+restore [locate_data_file buc61005.brep] w
+puts [checkshape w]
+revol result w 0 0 0 0 0 1 360 1
+
+set square 55795.4
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "BUC61008"
+puts "OCC341"
+puts "========"
+puts ""
+
+restore [locate_data_file buc61008.brep] w
+puts [checkshape w]
+
+mkplane f w
+prism result f 0 0 100
+
+set square 24991
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " BUC60959 "
+puts " OCC347 "
+puts " (case 1) "
+puts "========================"
+
+restore [locate_data_file OCC347a.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vfit
+vsetdispmode result 1
+set 3dviewer 1
+
+set tri 0
+set nod 0
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri == 72 && $nod == 74} {
+ puts " OCC347 case 1: OK"
+} else {
+ puts " OCC347 case 1: Faulty"
+}
+
+set square 314.159
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " BUC60959 "
+puts " OCC347 "
+puts " (case 2) "
+puts "========================"
+
+restore [locate_data_file OCC347b.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vfit
+vsetdispmode result 1
+set 3dviewer 1
+
+set tri 0
+set nod 0
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri == 71 && $nod == 73} {
+ puts " OCC347 case 2: OK"
+} else {
+ puts " OCC347 case 2: Faulty"
+}
+
+set square 100.531
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC356"
+puts "================"
+puts ""
+#######################################################
+## The Draw command "wexplo" gives one edge instead of 6 for the face.
+#######################################################
+
+restore [locate_data_file OCC356.brep] result
+puts [checkshape result]
+
+explode result w
+
+wexplo result_1 result
+
+set nom 0
+set j 1
+repeat 10 {
+ set err ""
+ regexp { is a shape ([A-Z]+)} [whatis WEDGE_$j] full err
+ if { $err != "EDGE"} {
+ break
+ } else {
+ set nom [expr $nom + 1]
+ }
+ incr j
+}
+if { $nom != 6} {
+ puts "Faulty OCC356 : Command WEXPLO works WRONGLY"
+} else {
+ puts "OCC356 OK : Command WEXPLO works properly"
+}
+
+set square 6207.83
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC407 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+pcylinder b1 1 4
+pcylinder b2 1 4
+trotate b2 0 0 2 1 0 0 90
+trotate b2 0 0 2 0 1 0 60
+
+bfuse result b2 b1
+checkshape -top result
+
+set square 46.8319
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC407 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+pcylinder b1 1 4
+pcylinder b2 1 4
+trotate b2 0 0 2 1 0 0 90
+trotate b2 0 0 2 0 1 0 60
+
+bcut result b2 b1
+checkshape -top result
+
+set square 31.4159
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC409 "
+puts "========================"
+puts ""
+
+restore [locate_data_file f2] b1
+puts [checkshape b1]
+
+restore [locate_data_file f6] b2
+puts [checkshape b2]
+
+bcommon result b1 b2
+
+set square 45.5929
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC410 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file f7] b1
+puts [checkshape b1]
+
+restore [locate_data_file f3] b2
+puts [checkshape b2]
+
+bcommon result b1 b2
+
+set square 63.4508
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC410 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file f7] b1
+puts [checkshape b1]
+
+restore [locate_data_file f3] b2
+puts [checkshape b2]
+
+bfuse result b1 b2
+
+set square 172.169
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC411 "
+puts "========================"
+puts ""
+
+restore [locate_data_file f4] b1
+puts [checkshape b1]
+
+restore [locate_data_file f5] b2
+puts [checkshape b2]
+
+bfuse result b1 b2
+
+set square 314.159
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC412 "
+puts "========================"
+puts ""
+
+restore [locate_data_file f2] b1
+puts [checkshape b1]
+
+restore [locate_data_file f3] b2
+puts [checkshape b2]
+
+bcut result b1 b2
+
+set square 43.6332
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC413 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file so1] b1
+puts [checkshape b1]
+
+restore [locate_data_file so4] b2
+puts [checkshape b2]
+
+bcommon result b1 b2
+
+set square 549.779
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC413 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file so1] b1
+puts [checkshape b1]
+
+restore [locate_data_file so4] b2
+puts [checkshape b2]
+
+bcut result b1 b2
+
+set square 863.938
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC415 "
+puts "PRO5557"
+puts "========================"
+puts ""
+
+restore [locate_data_file pro5557_revol.brep] revol1
+puts [checkshape revol1]
+restore [locate_data_file pro5557_bsurf.brep] bsurf2
+puts [checkshape bsurf2]
+
+zoom 660
+normals bsurf2 0.27
+point pnt1 0 -0.3 0
+halfspace space2 bsurf2 0 -0.3 0
+
+bcut result revol1 space2
+
+set testinfos(info) \
+ "pro5557 : cut a cylinder by an infinite surface extrusion"
+set testinfos(infoX) -0.2
+set testinfos(infoY) -0.2
+set testinfos(infoZ) -0.34
+set testinfos(infoZ2) -0.3
+
+checkshape -top result
+
+set square 0.402138
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========================"
+puts " OCC417 "
+puts "CTS21128"
+puts "========================"
+puts ""
+
+restore [locate_data_file cts21128c.rle] c
+puts [checkshape c]
+
+restore [locate_data_file cts21128d.rle] d
+puts [checkshape d]
+
+bcut result c d
+
+set square 2814.01
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "========================"
+puts " OCC437 "
+puts "========================"
+puts ""
+##########################################
+## different checkshape result under ros and rosdeb in KAS:dev.
+##########################################
+
+restore [locate_data_file OCC437.brep] result
+
+set che [checkshape result r]
+
+if { [regexp {OK} $che] != 1 } {
+ puts " Faulty OCC437: function CHECKSHAPE works wrongly"
+} else {
+ puts " OCC437 OK: function CHECKSHAPE works properly"
+}
+
+set square 0.000201234
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC442"
+puts "========"
+puts ""
+########################################################
+## The Revolution Algo produces result, but during check using IsValid method from
+## BRepAlgoAPI the exception is raised
+########################################################
+
+restore [locate_data_file OCC442.brep] a
+puts [checkshape a]
+
+explode a v
+
+mkpoint p_1 a_1
+mkpoint p_2 a_3
+coord p_1 x1 y1 z1
+coord p_2 x2 y2 z2
+set ax [dval x1]
+set ay [dval y1]
+set az [dval z1]
+set bx [dval x2]
+set by [dval y2]
+set bz [dval z2]
+set dx [expr $ax - $bx]
+set dy [expr $ay - $by]
+set dz [expr $az - $bz]
+
+revol result a $ax $ay $az $dx $dy $dz 360
+
+set square 692942
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC446"
+puts "OCC447"
+puts "(case 2)"
+puts "========"
+puts ""
+######################################
+## As result I have fail on shape that it is not closed.
+######################################
+
+restore [locate_data_file OCC446b.brep] result
+
+set che [checkshape result]
+if { [regexp {Faulty} $che ] == 1} {
+ puts "Faulty OCC446 (case 2): Source shape is NotClosed"
+} else {
+ puts "OCC446 OK (case 2): Source shape is Closed"
+}
+set square 24272.8
+set 3dviewer 2
--- /dev/null
+
+puts "========"
+puts "OCC446"
+puts "OCC447"
+puts "(case 3)"
+puts "========"
+puts ""
+######################################
+## As result I have fail on shape that it is not closed.
+######################################
+
+restore [locate_data_file OCC446c.brep] result
+
+set che [checkshape result]
+if { [regexp {Faulty} $che ] == 1} {
+ puts "Faulty OCC446 (case 3): Source shape is NotClosed"
+} else {
+ puts "OCC446 OK (case 3): Source shape is Closed"
+}
+set square 13694.6
+set 3dviewer 2
+
--- /dev/null
+
+puts "========"
+puts "OCC446"
+puts "OCC447"
+puts "(case 4)"
+puts "========"
+puts ""
+######################################
+## As result I have fail on shape that it is not closed.
+######################################
+
+restore [locate_data_file OCC446d.brep] result
+
+set che [checkshape result]
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty OCC446 (case 4): Source shape is NotClosed"
+} else {
+ puts "OCC446 OK (case 4): Source shape is Closed"
+}
+set square 629.347
+set 3dviewer 2
--- /dev/null
+
+puts "========================"
+puts " OCC449 "
+puts "========================"
+puts ""
+#######################
+## Invalid cut result
+#######################
+
+restore [locate_data_file OCC449a.brep] b1
+puts [checkshape b1]
+
+restore [locate_data_file OCC449b.brep] b2
+puts [checkshape b2]
+
+bcut result b1 b2
+
+set square 43401.5
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC474 "
+puts "========================"
+puts ""
+##################################################
+## impossible to put a fillet to none of 5 edges sharing one vertrex
+##################################################
+
+restore [locate_data_file OCC474.brep] s
+
+explode s e
+
+blend result s 100 s_16
+
+set square 1.54883e+06
+set 3dviewer 1
--- /dev/null
+
+puts "========================"
+puts " OCC481 "
+puts "========================"
+puts ""
+##########################################
+##Attached shape could not be displayed in the Shading mode.
+##########################################
+
+restore [locate_data_file OCC481.rle] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vfit
+vsetdispmode result 1
+
+set tri 0
+set nod 0
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+
+if { $tri == 72 && $nod == 74 } {
+ puts " OCC481 : OK"
+} else {
+ puts " OCC481 : Faulty"
+}
+
+set square 314.159
+set 3dviewer 1
--- /dev/null
+
+puts "========="
+puts " OCC485 "
+puts "========="
+puts ""
+#######################################
+## Draw hangs up during performing fuse operation
+#######################################
+
+restore [locate_data_file OCC485a.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC485a.brep] a_2
+puts [checkshape a_2]
+
+if [catch {bfuse result a_1 a_2 } result] {
+ puts "Faulty OCC485: Draw hangs up during performing fuse operation"
+} else {
+ puts "OCC485 OK: function FUSE works without Draw hangs up "
+}
+
+set square 9291.88
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC487 "
+puts "========================"
+#######################################################
+## Regression on KAS:dev:ros with respect to OCC4.0
+## Case cfi 900 N3.
+## Fillets are created on OCC4.0
+#######################################################
+
+restore [locate_data_file CFI_pro15441.rle] m
+explode m e
+
+if [catch {blend result m 2 m_36 2 m_21 } result] {
+ puts "Faulty OCC485: function BLEND works wrongly"
+} else {
+ puts "OCC485 OK: function BLEND works properly "
+}
+
+explode result sh
+
+renamevar result_1 result
+
+set square 6265.68
+set 3dviewer 1
+
+
+
+
+
--- /dev/null
+
+puts "========="
+puts " OCC488 "
+puts "========="
+puts ""
+########################################################
+## Boolean operation returns invalid result, it lead to regression on test cfe/002/C1
+########################################################
+
+restore [locate_data_file OCC488a.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC488b.brep] a_2
+puts [checkshape a_2]
+
+if [catch {bcommon result a_1 a_2 } catch_result] {
+ puts "Faulty OCC488: command COMMON works wrongly"
+} else {
+ puts "OCC488 OK: function COMMON works properly "
+}
+set square 92466.8
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC490 "
+puts "========="
+puts ""
+########################################################
+## Result of fuse operation is faulty shape although arguments are valid
+########################################################
+
+restore [locate_data_file OCC490a.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC490b.brep] a_2
+puts [checkshape a_2]
+
+if [catch {bfuse result a_1 a_2 } catch_result] {
+ puts "Faulty OCC490: command FUSE works wrongly"
+} else {
+ puts "OCC490 : function FUSE works without hangs up "
+}
+set square 2744.08
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC492 "
+puts "========="
+puts ""
+##############################
+## Exception occurs during fuse operation
+##############################
+
+restore [locate_data_file OCC492a.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC492b.brep] a_2
+puts [checkshape a_2]
+
+if [catch {bfuse result a_1 a_2 } catch_result] {
+ puts "Faulty OCC492: command FUSE works wrongly"
+} else {
+ puts "OCC492 : function FUSE works without hangs up "
+}
+set square 64.2386
+set 3dviewer 1
--- /dev/null
+
+puts "========="
+puts " OCC497 "
+puts "(case 2)"
+puts "========="
+puts ""
+########################################################
+## Result of cut and fuse operation are faulty shapes although arguments are valid.
+########################################################
+
+restore [locate_data_file OCC497c.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC497d.brep] a_2
+puts [checkshape a_2]
+
+if [catch {bcut result a_1 a_2 } catch_result] {
+ puts "Faulty OCC497:function CUT works wrongly "
+} else {
+ puts "OCC497 : function CUT works without hangs up "
+}
+set square 2225.65
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC497 "
+puts "(case 4)"
+puts "========="
+puts ""
+########################################################
+## Result of cut and fuse operation are faulty shapes although arguments are valid.
+########################################################
+
+restore [locate_data_file OCC497g.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC497h.brep] a_2
+puts [checkshape a_2]
+
+if [catch {bfuse result a_1 a_2 } catch_result] {
+ puts "Faulty OCC497:function FUSE works wrongly "
+} else {
+ puts "OCC497 : function FUSE works without hangs up "
+}
+set square 8710.56
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC497 "
+puts "(case 5)"
+puts "========="
+puts ""
+########################################################
+## Result of cut and fuse operation are faulty shapes although arguments are valid.
+########################################################
+
+restore [locate_data_file OCC497i.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC497j.brep] a_2
+puts [checkshape a_2]
+
+if [catch {bfuse result a_1 a_2 } catch_result] {
+ puts "Faulty OCC497:function FUSE works wrongly "
+} else {
+ puts "OCC497 : function FUSE works without hangs up "
+}
+set square 3233.42
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC500 "
+puts "========="
+puts ""
+###############################
+## Result of pipe command of Draw is faulty
+###############################
+
+restore [locate_data_file OCC500a.brep] a_1
+puts [checkshape a_1]
+
+restore [locate_data_file OCC500b.brep] a_2
+puts [checkshape a_2]
+
+if [catch {pipe result a_1 a_2 } catch_result] {
+ puts "Faulty OCC500 : function PIPE works wrongly "
+} else {
+ puts "OCC500 : function PIPE works without hangs up "
+}
+set square 1246.13
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC501 "
+puts "========="
+puts ""
+##################################################
+## Exception during tcopy command (only in 3.0fix), SAM1339 (#2137)
+###################################################
+
+restore [locate_data_file OCC501.brep] result
+
+if [catch {tcopy result b } catch_result] {
+ puts "Faulty OCC501 : function TCOPY works wrongly "
+} else {
+ puts "OCC501 OK: function TCOPY works without hangs up "
+}
+set square 121895
+set 2dviewer 0
--- /dev/null
+
+puts "=============="
+puts " BUC60409 "
+puts " FUSE "
+puts "=============="
+
+restore [locate_data_file buc60409a.brep] c
+restore [locate_data_file buc60409b.brep] s
+
+set che [checkshape c]
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60409 (shape 1): Source shape is invalid. It was detected by Checkshape command"
+ puts "Body of the script was NOT executed"
+ renamevar c result
+} else {
+ puts "BUC60409 OK (shape 1): Source shape is valid"
+ set che [checkshape s]
+ if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60409 (shape 2): Source shape is invalid. It was detected by Checkshape command"
+ puts "Body of the script was NOT executed"
+ renamevar s result
+ } else {
+ puts "BUC60409 OK (shape 2): Source shape is valid"
+ bfuse result c s
+ }
+}
+set square 39.0894
+set 2dviewer 0
--- /dev/null
+
+puts "============="
+puts " BUC60409 "
+puts " CUT "
+puts "============="
+
+restore [locate_data_file buc60409a.brep] c
+restore [locate_data_file buc60409b.brep] s
+
+set che [checkshape c]
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60409 (shape 1): Source shape is invalid. It was detected by Checkshape command"
+ puts "Body of the script was NOT executed"
+ renamevar c result
+} else {
+ puts "BUC60409 OK (shape 1): Source shape is valid"
+ set che [checkshape s]
+ if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60409 (shape 2): Source shape is invalid. It was detected by Checkshape command"
+ puts "Body of the script was NOT executed"
+ renamevar s result
+ } else {
+ puts "BUC60409 OK (shape 2): Source shape is valid"
+ bcut result c s
+ }
+}
+set square 31.8476
+set 2dviewer 0
--- /dev/null
+
+puts "================="
+puts " BUC60409 "
+puts " COMMON "
+puts "================="
+
+restore [locate_data_file buc60409a.brep] c
+restore [locate_data_file buc60409b.brep] s
+
+set che [checkshape c]
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60409 (shape 1): Source shape is invalid. It was detected by Checkshape command"
+ puts "Body of the script was NOT executed"
+ renamevar c result
+} else {
+ puts "BUC60409 OK (shape 1): Source shape is valid"
+
+ set che [checkshape s]
+ if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60409 (shape 2): Source shape is invalid. It was detected by Checkshape command"
+ puts "Body of the script was NOT executed"
+ renamevar s result
+ } else {
+ puts "BUC60409 OK (shape 2): Source shape is valid"
+ bcommon result c s
+ }
+}
+set square 4.89279
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60523"
+puts "========================"
+
+restore [locate_data_file buc60523a.brep] a
+puts [checkshape a]
+sewing result 1.e-7 a
+set square 156.919
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60531"
+puts "========================"
+
+restore [locate_data_file buc60531a.brep] r1
+puts [checkshape r1]
+restore [locate_data_file buc60531b.brep] pl1
+puts [checkshape pl1]
+
+bcut result r1 pl1
+
+set square 115935
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC60531"
+puts "========================"
+
+restore [locate_data_file buc60531a.brep] r1
+puts [checkshape r1]
+
+restore [locate_data_file buc60531b.brep] pl1
+puts [checkshape pl1]
+
+bcut r2 r1 pl1
+puts [checkshape r2]
+
+restore [locate_data_file buc60531c.brep] pl2
+puts [checkshape pl2]
+
+bcut result r2 pl2
+
+set square 115935
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "==========="
+puts "BUC60532"
+puts "==========="
+
+restore [locate_data_file buc60532a.brep] p
+puts [checkshape p]
+
+restore [locate_data_file buc60532b.brep] t1
+puts [checkshape t1]
+
+restore [locate_data_file buc60532c.brep] t2
+puts [checkshape t2]
+
+# create halfspace
+halfspace h1 t1 20 20 0
+halfspace h2 t2 20 20 0
+
+# first cut
+bcut result p h1
+
+set square 81.8172
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "==========="
+puts "BUC60532"
+puts "==========="
+
+restore [locate_data_file buc60532a.brep] p
+puts [checkshape p]
+
+restore [locate_data_file buc60532b.brep] t1
+puts [checkshape t1]
+
+restore [locate_data_file buc60532c.brep] t2
+puts [checkshape t2]
+
+# create halfspace
+halfspace h1 t1 20 20 0
+halfspace h2 t2 20 20 0
+
+# first cut
+bcut result p h1
+
+set square 81.8172
+set 2dviewer 0
+
--- /dev/null
+#INTERFACE IGES
+puts "=========="
+puts "BUC60532"
+puts "=========="
+
+restore [locate_data_file buc60532a.brep] p
+puts [checkshape p]
+
+restore [locate_data_file buc60532b.brep] t1
+puts [checkshape t1]
+
+restore [locate_data_file buc60532c.brep] t2
+puts [checkshape t2]
+
+# create halfspace
+#vertex v 20 20 0
+halfspace h1 t1 20 20 0
+halfspace h2 t2 20 20 0
+
+# first cut
+bcut res1 p h1
+
+explode res1 e
+mkcurve cu11 res1_1
+mkcurve cu12 res1_2
+mkcurve cu13 res1_3
+mkcurve cu14 res1_4
+mkcurve cu15 res1_5
+
+puts [checkshape res1]
+puts [computetolerance res1]
+
+# second cut
+bcut res2 res1 h2
+tcopy res2 res
+puts [checkshape res2]
+
+explode res2 e
+mkcurve cu21 res2_1
+mkcurve cu22 res2_2
+mkcurve cu23 res2_3
+mkcurve cu24 res2_4
+mkcurve cu25 res2_5
+
+explode res2 face
+
+puts [computetolerance res2]
+
+renamevar res2 result
+
+set square 78.8705
+set 2dviewer 0
+
--- /dev/null
+#INTERFACE IGES
+puts "=========="
+puts "BUC60533"
+puts "=========="
+
+restore [locate_data_file buc60533a.brep] part
+puts [checkshape part]
+#puts "Tolerance part"
+#computetolerance part
+
+restore [locate_data_file buc60533b.brep] trTool
+puts [checkshape trTool]
+#puts "Tolerance trTool"
+#computetolerance trTool
+
+# create halfspace
+vertex v 10000 15000 -15000
+halfspace hs trTool 10000 15000 -15000
+#puts "Tolerance hs"
+#computetolerance hs
+
+#*************************************************
+if [catch {bcut result part hs} catch_result] {
+ puts "Faulty BUC60533: function CUT works wrongly"
+} else {
+ puts " BUC60533 OK: function CUT works properly"
+}
+#*************************************************
+
+#set che [checkshape res r]
+#set err [lindex $che [expr [llength $che] - 1]]
+#if { $err != "OK"} {
+# puts "Faulty : mistakes are found in checked shape by checkshape command"
+#} else {
+# puts "Checking by checkshape - OK"
+
+#explode res e
+#mkcurve cu1 res_1
+#mkcurve cu2 res_2
+#mkcurve cu3 res_3
+#mkcurve cu4 res_4
+#mkcurve cu5 res_5
+
+#checkshape res
+
+#set tolerance [ maxtolerance res ]
+#set MaxFaceTolerance [ lindex $tolerance 14 ]
+#set MaxEdgeTolerance [ lindex $tolerance 20 ]
+#set MaxVertexTolerance [ lindex $tolerance 26 ]
+#if { $MaxFaceTolerance > 1 || $MaxEdgeTolerance > 1 || $MaxVertexTolerance > 1 } {
+#puts "Faulty :Tolerance of shape is more then 1.0"
+#} else {
+#puts "Tolerance of shape is less then 1.0"
+#}
+#}
+
+# Objectif : Couper part par trTool
+#
+# part est construite a partir d'un semi de point et de telle facon que u=x et v=y.
+# On obtient une Geom_BSplineSurface. On cree alors la topologie a partir de cette
+# surface via BRepAPI::MakeFace(surface)
+# Dans notre code, a aucun moment, nous
+# n'initialisons la tolerance.
+#
+# Le cut n'est pas effectue car une exception est levee :
+# An exception was caught Standard_ConstructionError:
+# ** Exception ** Standard_ConstructionError:
+
+set square 1.63191e+07
+set 2dviewer 0
--- /dev/null
+#INTERFACE IGES
+puts "==========="
+puts "BUC60555"
+puts "CUT Case 1"
+puts "==========="
+#cpulim add aki 070704
+cpulimit 1600
+restore [locate_data_file buc60555a.brep] part
+puts [checkshape part]
+restore [locate_data_file buc60555b.brep] trTool1
+puts [checkshape trTool1]
+halfspace hs1 trTool1 20000 10000 0
+bcut cut1 part hs1
+
+puts [checkshape cut1]
+
+tcopy cut1 result
+
+explode cut1 e
+mkcurve cu1 cut1_1
+mkcurve cu2 cut1_2
+mkcurve cu3 cut1_3
+mkcurve cu4 cut1_4
+
+set tolerance [ maxtolerance cut1 ]
+
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxFaceTolerance
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxEdgeTolerance
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxVertexTolerance
+
+if { $MaxFaceTolerance > 1 || $MaxEdgeTolerance > 1 || $MaxVertexTolerance > 1 } {
+ puts "Faulty :Tolerance of shape is more then 1.0"
+} else {
+ puts "Tolerance of shape is less then 1.0"
+}
+
+set square 4.60842e+07
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60585"
+puts "========================"
+
+restore [locate_data_file buc60585b.brep] t
+puts [checkshape t]
+plane pt 2036.25 -97.5 -1460.499755859375 0.0 -1.0 0.0 1.0 0.0 0.0
+
+psection result t pt
+
+set length 22.0446
+set 2dviewer 0
+
+# checksection res
--- /dev/null
+
+puts "========================"
+puts "BUC60623"
+puts "========================"
+
+restore [locate_data_file buc60623a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60623b.brep] b
+puts [checkshape b]
+
+bsection result a b
+
+set length 1475.98
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC60623"
+puts "========================"
+
+restore [locate_data_file buc60623a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60623b.brep] b
+puts [checkshape b]
+
+bsection result b a
+# checksection res
+
+set length 1475.98
+set 2dviewer 0
--- /dev/null
+
+puts "============="
+puts "BUC60635"
+puts "============="
+
+restore [locate_data_file buc60635a.brep] a
+puts [checkshape a]
+
+mkplane result a
+
+set square 2035.58
+set 2dviewer 0
+
--- /dev/null
+
+puts "====================================="
+puts "BUC60663"
+puts "====================================="
+puts ""
+puts "It takes visual check for this BUG. See V2 point"
+puts "====================================="
+puts ""
+
+restore [locate_data_file buc60663a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60663b.brep] b
+puts [checkshape b]
+
+bsection result a b
+
+regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection result] full num
+if { $num != 2 } {
+ puts " Faulty : Result shape is INcorrect !!! "
+}
+
+
+#fsameparameter res
+
+set length 26.2001
+set 3dviewer 2
--- /dev/null
+
+puts "===================="
+puts "BUC60668"
+puts "Three boxes must appear on picture"
+puts "===================="
+
+box b 100 0 0 10 10 10
+box b1 10 10 10
+box b2 50 50 50 10 10 10
+box a -10 -10 -10 200 200 200
+
+compound b b1 b2 c
+
+regexp {Mass +: +([-0-9.+eE]+)} [vprops c] full vcomp
+
+#compound b b1 c
+bcommon result c a
+
+regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full vcomm
+
+if { $vcomp != $vcomm } {
+ puts " Faulty : Common is incorrect"
+} else {
+ puts " BUC60668 OK : Common was made properly"
+}
+set square 1800
+set 2dviewer 0
--- /dev/null
+
+puts "============="
+puts "BUC60684"
+puts "============="
+
+restore [locate_data_file buc60684a.brep] w
+puts [checkshape w]
+
+prism result w 0 0 10
+
+set square 148.875
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60703"
+puts "================================="
+puts "Action with models with CORRECT tolerance"
+puts "================================="
+puts ""
+############################################
+## Crash during a fuse whilst two plans are tangent.
+############################################
+
+restore [locate_data_file buc60703c.brep] a
+puts [checkshape a]
+
+restore [locate_data_file buc60703e.brep] b
+puts [checkshape b]
+
+
+if [catch {bfuse result a b } catch_result] {
+ puts "Faulty BUC60703: here is problem with FUSE operation"
+} else {
+ puts "OK BUC60703: function FUSE works ok"
+ if [catch {checkshape result } catch_result] {
+ puts "WARNING BUC60703 : Function checkshape gives bad result"
+ puts " See also OCC438: 919 D3 and D4"
+ } else {
+ puts "BUC60703 OK in checkshape"
+ }
+}
+set square 236.72
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60703"
+puts "========================"
+
+restore [locate_data_file buc60703e.brep] a
+#maxtolerance a
+puts [checkshape a]
+restore [locate_data_file buc60703d.brep] b
+#maxtolerance b
+puts [checkshape b]
+
+if [catch {bfuse result a b } catch_result] {
+ puts "Faulty BUC60703: here is problem with FUSE operation"
+} else {
+ puts "OK OCC348: function FUSE works ok"
+ if [catch {checkshape result} catch_result] {
+ puts "Faulty BUC60703 : here is checking problem. See also OCC438: 919 D3 and D4"
+ } else {
+ puts "BUC60703 : here is NOT checking problem"
+ }
+}
+set square 371.259
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60703"
+puts "========================"
+puts ""
+####################################
+## Crash during a fuse whilst two plans are tangent.
+####################################
+
+restore [locate_data_file buc60703d.brep] a
+#maxtolerance a
+puts [checkshape a]
+restore [locate_data_file buc60703f.brep] b
+#maxtolerance b
+puts [checkshape b]
+
+if [catch {bfuse result a b } catch_result] {
+ puts "Faulty BUC60703: here is problem with FUSE operation"
+} else {
+ puts "OK OCC348: function FUSE works ok"
+ if [catch {checkshape result} catch_result] {
+ set mistake 1
+ } else {
+ set mistake 0
+ }
+
+ if { $mistake != 0} {
+ puts "Faulty BUC60703 : here is checking problem. See also OCC438: 919 D3 and D4"
+ } else {
+ puts "BUC60703 : here is NOT checking problem"
+ }
+}
+set square 505.797
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC60704"
+puts "BUC60709"
+puts "========================"
+
+restore [locate_data_file buc60704a.brep] p
+puts [checkshape p]
+restore [locate_data_file buc60704b.brep] s
+puts [checkshape s]
+
+bfuse result p s
+
+set square 39.0889
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60714"
+puts "========================"
+
+profile f x 30 y 20 x -30
+explode f w
+vertex v1 0 0 0
+vertex v2 0 -10 -10
+edge e v1 v2
+
+wire w e
+mksweep f_1
+setsweep -FR
+addsweep w
+
+########
+#does'nt work
+buildsweep result -C -S
+
+set square 1979.9
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC60728"
+puts "========================"
+puts ""
+####################################################
+## Infinite loop in section. Section between the two attached faces never finish.
+####################################################
+
+restore [locate_data_file buc60728a.brep] s1
+restore [locate_data_file buc60728b.brep] s2
+build3d s1
+puts [checkshape s1]
+puts [checkshape s2]
+
+bsection result s1 s2
+
+#checksection res
+#checkshape res
+
+set length 238.032
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60776"
+puts "========================"
+
+restore [locate_data_file buc60776a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60776b.brep] b
+puts [checkshape b]
+bfuse result a b
+
+set square 60771.3
+
+set 2dviewer 1
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60776"
+puts "========================"
+
+restore [locate_data_file buc60776c.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60776d.brep] b
+puts [checkshape b]
+bsection result a b
+
+set length 111.405
+
+set 2dviewer 1
+
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: Exception"
+puts "TODO OCC12345 ALL: Faulty BUC60782: mkoffset works wrongly"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+#INTERFACE IGES
+puts "========================"
+puts "BUC60782"
+puts "CASE 1"
+puts "========================"
+puts ""
+puts "Results of Geom2d_OffsetCurve are sometimes strange (not correct). "
+puts ""
+
+restore [locate_data_file buc60782a.brep] a
+set che [checkshape a]
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60782 (case 1): Source shape is invalid"
+} else {
+ puts "BUC60782 OK (case 1): Sourse shape is correct"
+}
+
+set che [checkshape a rr]
+if { [regexp {OK} $che ] != 1} {
+ puts "Faulty : mistakes are found in SOURCE shape by checkshape command"
+ puts "Body of the script was not executed"
+} else {
+ puts "Checking of SOURCE shape by checkshape - OK"
+ if [catch { mkoffset result a 1 10 } catch_result] {
+ puts "Faulty BUC60782: mkoffset works wrongly"
+ renamevar a result
+ } else {
+ puts "OK BUC60782: offset is created"
+ tpcompound result
+ }
+}
+
+set square 0
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: Exception"
+puts "TODO OCC12345 ALL: Faulty BUC60782: mkoffset works wrongly"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+
+#INTERFACE IGES
+puts "========================"
+puts "BUC60782"
+puts "CASE 3"
+puts "========================"
+puts ""
+puts "Results of Geom2d_OffsetCurve are sometimes strange (not correct). "
+puts ""
+
+restore [locate_data_file buc60782c.brep] a
+
+set che [checkshape a]
+if { [regexp {Faulty} $che ] == 1 } {
+ puts "Faulty BUC60782 (case 3): Source shape is invalid"
+} else {
+ puts "BUC60782 OK (case 3): Sourse shape is correct"
+}
+
+set che [checkshape a rr]
+if { [regexp {OK} $che ] != 1 } {
+ puts "Faulty : mistakes are found in SOURCE shape by checkshape command"
+ puts "Body of the script was not executed"
+} else {
+ puts "Checking of SOURCE shape by checkshape - OK"
+ if [catch { mkoffset result a 1 10 } catch_result] {
+ puts "Faulty BUC60782: mkoffset works wrongly"
+ renamevar a result
+ } else {
+ puts "OK BUC60782: offset is created"
+ tpcompound result
+ }
+}
+set square 0
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60788"
+puts "case 1"
+puts "============"
+
+#restore Intersection_Shell1_Case1.brep S1
+#restore Intersection_Shell2_Case1.brep S2
+
+restore [locate_data_file buc60788a.brep] S1
+puts [checkshape S1]
+restore [locate_data_file buc60788b.brep] S2
+puts [checkshape S2]
+
+bsection result S1 S2
+
+set nb_info [nbshapes result]
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full err
+regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full err1
+
+if { $err != 4 && $err1 != 3} {
+ puts "Faulty : result (res) is incorrect"
+} else {
+ puts "BUC60788 - OK"
+}
+
+set length 750
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60801"
+puts "========================"
+
+box b -10 -10 -10 30 40 40
+box a1 -20 0 -20 20 20 100
+box a2 0 20 -20 50 20 100
+box c -20 -20 20 100 100 100
+bcut r1 b a1
+bcut r2 r1 a2
+bcut r3 r2 c
+checkshape r3
+
+renamevar r3 result
+
+set square 6400
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC60803"
+puts "========================"
+
+restore [locate_data_file buc60803a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60803b.brep] b
+puts [checkshape b]
+
+bfuse result a b
+
+set square 1.86064e+07
+set 2dviewer 0
+
--- /dev/null
+
+puts "============"
+puts "BUC60839"
+puts "============"
+puts ""
+
+restore [locate_data_file BUC60839-1.brep] a
+puts [checkshape a]
+restore [locate_data_file BUC60839-2.brep] b
+puts [checkshape b]
+
+puts "Starting fuse operation"
+
+bfuse result a b
+
+set square 27341.6
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "BUC60841"
+puts "========"
+
+restore [locate_data_file buc60841a.brep] sh1
+puts [checkshape sh1]
+restore [locate_data_file buc60841b.brep] sh2
+puts [checkshape sh2]
+
+bfuse result sh1 sh2
+
+set square 890971
+set 2dviewer 1
--- /dev/null
+
+puts "============"
+puts "BUC60849"
+puts "============"
+puts ""
+
+restore [locate_data_file BUC60849.brep] result
+puts [checkshape result]
+
+set bndb [ lindex [bounding result] 3 ]
+
+if { $bndb > 100.000001 } {
+ puts "Faulty BUC60849 : Bounding box of spherical surface is created wroughly."
+} else {
+ puts "BUC60849 OK :Bounding box of spherical surface is created properly."
+}
+set square 125663
+set 3dviewer 2
--- /dev/null
+
+puts "============"
+puts "BUC60865"
+puts "BUC60864"
+puts "============"
+puts ""
+##########################
+## Section gives duplicate edges.
+##########################
+
+restore [locate_data_file BUC60865_sh6.brep] sh
+puts [checkshape sh]
+
+plane pl 1.1 0.99999 1 0 1 0
+mkface f pl
+bsection result sh f
+
+
+set nb_info [nbshapes result]
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full ed
+
+if { $ed == 5 } {
+ puts " BUC60865 : SECTION operation was made properly"
+} else {
+ puts "Faulty BUC60865: SECTION operation was made wrongly"
+}
+set length 4.5
+set 2dviewer 0
+
--- /dev/null
+
+puts "============"
+puts "BUC60881"
+puts "============"
+puts ""
+
+restore [locate_data_file BUC60881.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_1]
+
+bfuse result a_1 a_2
+
+set square 34069
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60899"
+puts "============"
+puts ""
+#####################################################
+## Execution of the script prism_sec.tcl gives exception "NumericError".
+#####################################################
+
+set n 2
+set dx 4
+set sx 1
+set sz 10
+set xc [dval (2*$dx+2*$sx)*$n/2]
+set zc -30
+set r [dval $xc*0.9]
+
+set x 0
+set y -50
+set z 0
+set pol "polyline w $x $y $z"
+for {set i 1} {$i <= $n} {incr i} {
+ set x [dval $x+$dx]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$sx]
+ set z [dval $z+$sz]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$dx]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$sx]
+ set z [dval $z-$sz]
+ set pol "$pol $x $y $z"
+}
+
+eval $pol
+circle c $xc 0 $zc $r
+mkedge c c
+
+prism cyl c 0 0 -$zc*2 inf
+prism crg w 0 -$y*2 0 inf
+
+bsection result crg cyl
+
+set length 15.1392
+set 2dviewer 0
+
+# checksection res
+# checkshape res
--- /dev/null
+
+puts "============"
+puts "BUC60899"
+puts "============"
+puts ""
+#####################################################
+## Execution of the script prism_sec.tcl gives exception "NumericError".
+#####################################################
+
+set n 2
+set dx 4
+set sx 1
+set sz 10
+set xc [dval (2*$dx+2*$sx)*$n/2]
+set zc -30
+set r [dval $xc*0.9]
+
+set x 0
+set y -50
+set z 0
+set pol "polyline w $x $y $z"
+for {set i 1} {$i <= $n} {incr i} {
+ set x [dval $x+$dx]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$sx]
+ set z [dval $z+$sz]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$dx]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$sx]
+ set z [dval $z-$sz]
+ set pol "$pol $x $y $z"
+}
+
+eval $pol
+polyline c $xc-$r -$r*2 $zc $xc+$r -$r*2 $zc $xc+$r $r*2 $zc $xc-$r $r*2 $zc $xc-$r -$r*2 $zc
+
+prism cyl c 0 0 -$zc*2 inf
+prism crg w 0 -$y*2 0 inf
+bsection result crg cyl
+
+#checksection res
+#checkshape res
+
+set nb_info [nbshapes result]
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full edgeness
+
+
+ #set fullness [ nbshapes res ]
+ #puts "$fullness"
+ #set qq [ lindex $fullness 0 ]
+ #set edgeness [ lindex $fullness 10 ]
+ # puts "$edgeness"
+
+if { $edgeness == 1 } {
+ puts "Shape is empty, it is Faulty result"
+} else {
+ puts "Shape is not empty, OK"
+}
+
+set length 162.299
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60901"
+puts "============"
+puts ""
+################################################################
+## We should get the edges forming a closed intersection line but we see breaks.
+################################################################
+
+set n 3
+set dx 1
+set sx 20
+set sz 10
+
+set xc [dval (2*$dx+2*$sx)*$n/2]
+set yc 0
+set zc [dval $sz*10]
+set nxc 0.5
+set nyc -0.3
+set nzc 1
+set r [dval $xc*0.9]
+
+set x 0
+set y [dval -$r*1.2]
+set z 0
+set pol "polyline w $x $y $z"
+for {set i 1} {$i <= $n} {incr i} {
+ set x [dval $x+$dx]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$sx]
+ set z [dval $z+$sz]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$dx]
+ set pol "$pol $x $y $z"
+ set x [dval $x+$sx]
+ set z [dval $z-$sz]
+ set pol "$pol $x $y $z"
+}
+
+eval $pol
+circle c $xc $yc $zc $nxc $nyc $nzc $r
+mkedge c c
+
+set lcyl [dval -$zc*2]
+set lcrg [dval -$y*2]
+
+prism cyl c 0 0 $lcyl
+prism crg w 0 $lcrg 0
+bsection result crg cyl
+
+set nb_info [nbshapes result]
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_vertices
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_edges
+
+if { $nb_vertices != $nb_edges } {
+ puts "Section is opened: Faulty shape"
+} else {
+ puts "Section is closed: OK"
+}
+
+set length 350.404
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60905"
+puts "============"
+puts ""
+#########################################################
+## shape contains open shells if sewing would be made with big tolerance invalid shape
+## will be produced, and visualization crashes.
+#########################################################
+
+restore [locate_data_file BUC60905.brep] a
+# checkshape a
+
+sewing result 10 a
+
+vinit
+vdisplay result
+
+# checkshape res
+
+set square 270868
+set 3dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60909"
+puts "============"
+puts ""
+
+box boite 200 200 200
+nexplode boite F
+profile cont S boite_4 F 0 50 X 50 Y 100 X -50
+featrevol boite cont boite_4 0 0 200 0 -1 0 1 1
+featperform revol result boite_1
+
+set square 265343
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "============"
+puts "BUC60927"
+puts "============"
+
+restore [locate_data_file BUC60927.brep] a
+
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_2 a_1
+
+set square 94795.3
+set 2dviewer 0
+
--- /dev/null
+
+puts "============"
+puts "BUC60930"
+puts "============"
+puts ""
+######################################
+## Exception ConstructionError in LocOpe_SplitShape.
+######################################
+
+restore [locate_data_file BUC60930_splitshape.brep] c
+explode c
+puts [checkshape c_1]
+puts [checkshape c_2]
+
+renamevar c_1 f
+renamevar c_2 e
+
+splitshape result f f e
+
+set square 13.3392
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60934"
+puts "============"
+
+restore [locate_data_file BUC60934.brep] a
+puts [checkshape a]
+
+mkplane result a
+
+set square 40303.1
+set 2dviewer 0
+
--- /dev/null
+
+puts "============"
+puts "BUC60942"
+puts "============"
+###############################################################
+## SplitShape algorithm modifies original shape (increases vertex tolerance of a plitting edge).
+###############################################################
+
+restore [locate_data_file BUC60942_splitshape.brep] c
+explode c
+puts [checkshape c_1]
+puts [checkshape c_2]
+
+renamevar c_1 f
+renamevar c_2 w
+
+set tol1 [maxtolerance w]
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol1 full MaxEdgeTol1
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol1 full MaxVertexTol1
+
+splitshape result f f w
+
+set tol2 [maxtolerance w]
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol2 full MaxEdgeTol2
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol2 full MaxVertexTol2
+
+
+if { $MaxEdgeTol1 < $MaxEdgeTol2 || $MaxVertexTol1 < $MaxVertexTol1 } {
+ puts "Faulty BUC60942: max tolerance of the input wire has been increased by about 10 times."
+} else {
+ puts "BUC60942 OK: Tolerance of shape is correct"
+}
+
+set square 37.7032
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "BUC60971"
+puts "CASE 2"
+puts "========"
+puts ""
+
+restore [locate_data_file buc60971.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_2 a_3
+set square 93698.1
+set 2dviewer 0
--- /dev/null
+
+puts "==========="
+puts "FRA62369"
+puts "==========="
+
+restore [locate_data_file fra62369a.brep] a
+puts [checkshape a]
+
+compound result
+
+set i 1
+repeat 100 {
+ plane p_$i 0 0 200+$i
+ mkface f_$i p_$i
+ bsection s_$i a f_$i -2d -a
+ compound s_$i result result
+ incr i
+}
+set length 3961.04
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "BUC61052"
+puts "OCC67"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC67.brep] sh
+puts [checkshape sh]
+
+explode sh e
+
+fillet result sh 5 sh_18
+
+set square 64281.8
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "BUC61053"
+puts "OCC68"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC68.brep] sh
+puts [checkshape sh]
+
+explode sh
+
+bfuse result sh_1 sh_2
+
+set square 3675.77
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "BUC61053"
+puts "OCC68"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC68.brep] sh
+puts [checkshape sh]
+
+explode sh
+
+bfuse result sh_2 sh_1
+set square 3675.77
+set 2dviewer 0
+
+
+
--- /dev/null
+puts "========================"
+puts " BUC60866 "
+puts " OCC77 "
+puts "========================"
+puts ""
+######################################################
+# The BRepFill_Pipe fails
+######################################################
+
+restore [locate_data_file buc60866a.rle] f
+puts [checkshape f]
+
+restore [locate_data_file buc60866b.rle] w
+puts [checkshape w]
+
+pipe result w f
+
+set square 1.12048e+07
+set 2dviewer 0
+
+
--- /dev/null
+puts "============"
+puts "BUC60875"
+puts "OCC78"
+puts "============"
+puts ""
+###############################
+## Pipe is created incorrectly on two wires
+###############################
+
+#datadir /disk4/QA/hotline/GRIDS/chl/data
+restore [locate_data_file BUC60875_wire.brep] w
+restore [locate_data_file BUC60875_profile.brep] p
+puts [checkshape w]
+puts [checkshape p]
+
+pipe result w p
+set square 10191.8
+set 2dviewer 0
--- /dev/null
+puts "============"
+puts "BUC60877"
+puts "OCC80"
+puts "============"
+puts ""
+##########################################################
+## The command "section" in Draw gives exception "attempt to access to null objec "
+##########################################################
+
+restore [locate_data_file BUC60877_lh.brep] sh
+puts [checkshape sh]
+
+plane pl 820 198 140 -1e-06 0 1
+mkface f pl -1000 500 -300 100
+
+if [catch {bsection result sh f } catch_result] {
+ puts "Faulty BUC60877: function SECTION works wrongly"
+} else {
+ puts "BUC60877 OK: function SECTION works properly"
+}
+set length 1358.63
+set 2dviewer 0
--- /dev/null
+puts "============"
+puts "BUC60907"
+puts "OCC81"
+puts "============"
+puts ""
+###############################
+## Section shell by plane gives overlapped edges
+###############################
+
+restore [locate_data_file BUC60907_px1.rle] sh
+puts [checkshape sh]
+
+plane f 60 0 0 1 0 0
+mkface f f
+bsection result sh f
+puts "Info: it should be 12 edges"
+
+set nb_info [nbshapes result]
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full ne
+
+if { $ne != 12 } {
+ puts "Faulty :Number of edges is wrong"
+} else {
+ puts "Number of edges is OK"
+}
+
+set length 33.6353
+set 2dviewer 0
--- /dev/null
+puts "============"
+puts "BUC60908"
+puts "OCC82"
+puts "============"
+puts ""
+###############################
+## Incomplete section of shell by plane
+###############################
+
+restore [locate_data_file BUC60907_px1.rle] sh
+puts [checkshape sh]
+
+plane f 0 14.8053 0 0 1 0
+mkface f f
+bsection result sh f
+
+set nb_info [nbshapes result]
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_verices
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_edges
+
+set nnv [expr $nb_verices-1]
+
+puts "VERTEX : $nb_verices, EDGE : $nb_edges"
+
+if { $nnv > $nb_edges } {
+ puts "Surplus of vertices, Faulty section"
+} else {
+ puts "Number of vertices correspond edges: OK"
+}
+set length 113.703
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " BUC60957 "
+puts " OCC86 "
+puts "========================"
+
+puts "Restoring the wires :"
+restore [locate_data_file OCC86a.brep] w1
+puts [checkshape w1]
+restore [locate_data_file OCC86b.brep] w2
+puts [checkshape w2]
+
+puts "Do Thrusection by following command: thrusections res 0 0 w1 w2 "
+
+thrusections result 0 0 w1 w2
+
+set length 102.832
+set 2dviewer 0
+
#if mass (length or square) is empty in test case then result should be an empty shape.
if { [string compare "$mass" "empty"] != 0 } {
if { $m == 0 } {
- puts "Error : The $command is not valid. The $prop is 0."
+ puts "Error : The command is not valid. The $prop is 0."
}
if { $mass > 0 } {
puts "The expected $prop is $mass"
} else {
if { $m != 0 } {
- puts "Error : The $command is not valid. The $prop is $m"
+ puts "Error : The command is not valid. The $prop is $m"
}
}
} else {
- puts "Error : The $command can not be build."
+ puts "Error : The command can not be build."
}
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+
+puts "================"
+puts "BUC60961"
+puts "OCC103"
+puts "================"
+puts ""
+
+circle c 0 0 10
+to3d c1 c
+
+offset o c -2
+catch {to3d result o}
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Tcl Exception: Error: file OCC104-2.brep could not be found"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "================"
+puts "BUC61007"
+puts "OCC104"
+puts "================"
+puts ""
+################################################################
+## These shapes are valid and seems that they have one size, but they volumes of the shapes are
+## quite different. This looks like a regression in comparing to C31.
+################################################################
+
+cpulimit 3000
+
+restore [locate_data_file OCC104-1.brep] sh1
+puts [checkshape sh1]
+regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full l1
+
+restore [locate_data_file OCC104-2.brep] sh2
+puts [checkshape sh2]
+regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full l2
+
+set diff [expr abs([expr $l2 - $l1])]
+
+if { $diff > 0.001} {
+ puts "Error : volume of OCC104-1.brep and OCC104-2.brep differ on the value $diff while the shape almost coinsident"
+} else {
+ puts "Volumes of OCC104-1.brep and OCC104-2.brep are right calculated (almost coinsident)"
+}
+
--- /dev/null
+
+puts "================"
+puts "BUC61026"
+puts "OCC105"
+puts "================"
+puts ""
+
+pload QAcommands
+
+restore [locate_data_file OCC105.brep] result
+puts [checkshape result]
+
+if [catch { OCC105 result} ] {
+ puts "Error : BUC61032"
+} else {
+ puts "BUC61032: OK"
+}
+
+set 3dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "BUC61032"
+puts "OCC106"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC106-1.draw] sh1
+#### checkshape sh1 # - not a topological shape
+restore [locate_data_file OCC106-2.draw] sh2
+#### checkshape sh2 # - not a topological shape
+
+trimv s1 sh1 -1000 1000
+trimv s2 sh2 -1000 1000
+
+if [catch {intersect res s1 s2} result] {
+set mistake 1
+} else {
+set mistake 0
+}
+
+if { $mistake == 0 } {
+ puts ""
+ set nom 0
+ set j 1
+ repeat 10 {
+ set che [whatis res_$j]
+ set che1 [whatis res_$j]
+ set err [lindex $che [expr [llength $che] - 1]]
+ set err1 [lindex $che1 [expr [llength $che1] - 2]]
+
+ if { $err != "curve" && $err1 != "3d"} {
+ break
+ } else {
+ set nom [expr $nom + 1]
+ }
+ incr j}
+ if { $nom == 0} {
+ puts "1) Faulty OCC106: Intersection was made WRONGLY"
+} else {
+ puts [format "1) OCC106 OK : Intersection command works properly: %s curves" $nom]
+ puts ""
+}
+} else {
+ puts "1) Faulty OCC106: Intersection was made WRONGLY"
+}
+
+if [catch {intersect rrs sh1 sh2} result] {
+set mistake 1
+} else {
+set mistake 0
+}
+
+if { $mistake == 0 } {
+ puts ""
+ set nom 0
+ set j 1
+ repeat 10 {
+ set che [whatis rrs_$j]
+ set che1 [whatis rrs_$j]
+ set err [lindex $che [expr [llength $che] - 1]]
+ set err1 [lindex $che1 [expr [llength $che1] - 2]]
+
+ if { $err != "curve" && $err1 != "3d"} {
+ break
+ } else {
+ set nom [expr $nom + 1]
+ }
+ incr j}
+ if { $nom == 0} {
+ puts "2) Faulty OCC106: Intersection was made WRONGLY"
+} else {
+ puts [format "2) OCC106 OK : Intersection command works properly: %s curves" $nom]
+}
+} else {
+ puts "2) Faulty OCC106: Intersection was made WRONGLY"
+}
+
--- /dev/null
+
+puts "================"
+puts "BUC61035"
+puts "OCC107"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC107-1.brep] ee
+puts [checkshape ee]
+restore [locate_data_file OCC107-2.brep] ff
+puts [checkshape ff]
+
+distmini dd1 ee ff
+
+mkcurve cc ee
+cvalue cc 0 x y z
+vertex vv x y z
+
+distmini dd2 vv ff
+
+set d1 [dset t dd1_val]
+set d2 [dset t dd2_val]
+
+if { [expr abs([expr $d1 - $d2])] > 0.1} then {
+ puts "Faulty :WRONG computation of distances."
+} else {
+ puts "All is OK"
+}
+
+
+
--- /dev/null
+
+puts "================"
+puts "OCC12"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC12.brep] f
+puts [checkshape f]
+
+mksurface su f
+clpoles su
+emptycopy f1 f
+vertex v 0 -170.63226587036002 82.2373635024
+don su v
+distmini d1 v f1
+if [expr [dval d1_val] > 0.01] {
+ set res "failed"
+ puts "Error : Result is incorrect"
+} else {
+ set res "OK"
+}
+puts "Info: test $res, distance=[dval d1_val]"
+
--- /dev/null
+
+puts "================"
+puts "OCC126"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC126-1.brep] sh1
+puts [checkshape sh1]
+
+restore [locate_data_file OCC126-2.brep] sh2
+puts [checkshape sh2]
+
+compound sh1 sh2 result
+
+set check_square 1
+set square 560.774
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC13"
+puts "================"
+puts ""
+##################################################
+## It is impossible to intersect two surfaces
+##################################################
+
+restore [locate_data_file OCC13-1.draw] su1
+############### checkshape su1 # is not a topological shape
+restore [locate_data_file OCC13-2.draw] su2
+############### checkshape su2 # is not a topological shape
+
+#Try to intersect two surfaces with tolerance 0.1
+#note that distance between shapes is about 0.005942345501409
+
+catch {intersect res su1 su2 0.1 } result
+set nom 0
+ set j 1
+ repeat 10 {
+ set che [whatis res_$j]
+ set che1 [whatis res_$j]
+ set err [lindex $che [expr [llength $che] - 1]]
+ set err1 [lindex $che1 [expr [llength $che1] - 2]]
+
+ if { $err != "curve" && $err1 != "3d"} {
+ break
+ } else {
+ set nom [expr $nom + 1]
+ }
+ incr j}
+if { $nom == 0} {
+ puts "Error : Intersection was made WRONGLY"
+}
+
+
--- /dev/null
+
+puts "================"
+puts "OCC130"
+puts "================"
+puts ""
+######################################################
+## Draw Environment: No intersection found between a specific surface and a line
+######################################################
+
+restore [locate_data_file OCC130.brep] sh
+puts [checkshape sh]
+
+line l -120 -100 400 0 0 1
+mksurface surf sh
+############## checkshape surf # - not a topological shape
+
+
+if [catch {intersect res l surf } result] {
+set mistake 1
+} else {
+set mistake 0
+}
+
+if { $mistake == 0} {
+ puts "OCC130 OK : intersection found between a specific surface and a line"
+ puts ""
+ set nom 0
+ set j 1
+ repeat 10 {
+ set che [whatis res_$j]
+ set err [lindex $che [expr [llength $che] - 1]]
+
+ if { $err != "point"} {
+ break
+ } else {
+ set nom [expr $nom + 1]
+ }
+ incr j}
+ if { $nom != 2 && $nom != 0} {
+ puts [format "Faulty OCC130: Intersection was made WRONGLY: %s points" $nom]
+} else {
+ puts [format "OCC130 OK : Intersection command works properly: %s points" $nom]
+}
+
+} else {
+ puts "Faulty OCC130 : NO intersection found between a specific surface and a line"
+}
+
--- /dev/null
+
+puts "================"
+puts "SAM1225"
+puts "OCC134"
+puts "================"
+puts ""
+####################################
+## Faces from attached file are impossible to extrude.
+####################################
+
+restore [locate_data_file OCC134-1.brep] sh
+puts [checkshape sh]
+
+prism result sh 100 100 100
+puts [checkshape result]
+
+set check_square 1
+set square 104057
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "SAM1225"
+puts "OCC134"
+puts "================"
+puts ""
+###########################################################
+## Faces from attached file are impossible to extrude.
+###########################################################
+
+restore [locate_data_file OCC134-2.brep] sh
+puts [checkshape sh]
+
+prism result sh 100 100 100
+puts [checkshape result]
+
+set check_square 1
+set square 271859
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC135"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC135.brep] sh
+puts [checkshape sh]
+
+sewing result 1 sh
+puts [checkshape result]
+
+set check_square 1
+set square 273837
+set 2dviewer 0
+
+
+
--- /dev/null
+
+puts "================"
+puts "OCC141"
+puts "================"
+puts ""
+###############################################
+## exception while do segment operation on BSpline curve.
+###############################################
+
+restore [locate_data_file OCC141.draw] result
+#### checkshape res # not a topological shape
+
+segment result -4.76283758432072e-05 1.06458532027221
+
+#let's the segment is displaied only
+
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC15"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC15.brep] result
+
+puts [checkshape result]
+
+vinit
+tclean result
+vdisplay result
+vsetdispmode result 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+#($tri != 5370,$nod != 2783)($tri != 5356,$nod != 2774)($tri != 5354,$nod != 2773),aki251103
+if { ($tri != 5643 || $nod != 2915) } {
+ puts "Shady OCC15 : shading problem may be, nb tri & nod were changed"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "================"
+puts "OCC150"
+puts "SAM1048"
+puts "OCC53"
+puts "================"
+puts ""
+################################################################
+## SAM1048. Crash with all memory exhausted at attempt to fuse two solids in the file attached.
+################################################################
+## Segmentation violation detected during Fuse operation
+################################################################
+
+puts ""
+puts "Bug's advancement"
+puts "#################"
+puts ""
+puts "Customer version Development version"
+puts "Status : CLOSED Status : CLOSED"
+puts "Resolution : LIMITATION Resolution : LIMITATION"
+puts "Leave as CLOSED LIMITATION Leave as CLOSED LIMITATION"
+puts ""
+
+restore [locate_data_file OCC150_compsolid_nofuse.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_1 sh_2
+puts [checkshape result]
+
+set check_square 1
+set square 700
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "================"
+puts "OCC150"
+puts "SAM1048"
+puts "OCC53"
+puts "================"
+puts ""
+################################################################
+## SAM1048. Crash with all memory exhausted at attempt to fuse two solids in the file attached.
+################################################################
+## Segmentation violation detected during Fuse operation
+################################################################
+puts ""
+puts "Bug's advancement"
+puts "#################"
+puts ""
+puts "Customer version Development version"
+puts "Status : CLOSED Status : CLOSED"
+puts "Resolution : LIMITATION Resolution : LIMITATION"
+puts "Leave as CLOSED LIMITATION Leave as CLOSED LIMITATION"
+puts ""
+
+restore [locate_data_file OCC150_compsolid_nofuse.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_2 sh_1
+puts [checkshape result]
+
+set check_square 1
+set square 700
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC151"
+puts "SAM1141"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC3-1.brep] sh1
+restore [locate_data_file OCC3-2.brep] sh2
+
+puts [checkshape sh1]
+puts [checkshape sh2]
+
+bfuse result sh1 sh2
+puts [checkshape result]
+
+set check_square 1
+set square 11400
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC151"
+puts "SAM1141"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC3-1.brep] sh1
+restore [locate_data_file OCC3-2.brep] sh2
+
+puts [checkshape sh1]
+puts [checkshape sh2]
+
+bfuse result sh2 sh1
+puts [checkshape result]
+
+set check_square 1
+set square 11400
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "================"
+puts "OCC152"
+puts "SAM1178"
+puts "================"
+puts ""
+#################################################################
+## SAM1178(#1871): Bad escaped result after a cut operation on the shape.
+#################################################################
+
+restore [locate_data_file OCC152.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bcut result sh_1 sh_2
+puts [checkshape result]
+
+set check_square 1
+set square 10
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "================"
+puts "OCC152"
+puts "SAM1178"
+puts "================"
+puts ""
+#################################################################
+## SAM1178(#1871): Bad escaped result after a cut operation on the shape.
+#################################################################
+
+restore [locate_data_file OCC152.brep] sh
+explode sh
+
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bcut result sh_2 sh_1
+puts [checkshape result]
+
+set check_square 1
+set square 10
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC16"
+puts "================"
+puts ""
+
+torus a 10 10
+mkface result a
+vinit
+vdisplay result
+vsetdispmode result 1
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri != 2592 || $nod != 1369 } {
+ puts "Faulty OCC16: here can be shading problem"
+}
+
+puts "If here is bug - face is displaied in wireframe mode"
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC60775"
+puts "OCC160"
+puts "(COMMON: A and B)"
+puts "========================"
+
+restore [locate_data_file buc60775a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60775b.brep] b
+puts [checkshape b]
+
+bcommon result a b
+puts [checkshape result]
+
+set nf [llength [explode result f]]
+if {$nf < 6} {
+ puts "Error : the resulting shape is unclosed!!!"
+}
+
+set check_square 1
+set square 94067.7
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60775"
+puts "OCC160"
+puts "(COMMON: B and A)"
+puts "========================"
+
+restore [locate_data_file buc60775a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60775b.brep] b
+puts [checkshape b]
+
+bcommon result b a
+puts [checkshape result]
+
+set nf [llength [explode result f]]
+if {$nf < 6} {
+ puts "Error : the resulting shape is unclosed!!!"
+}
+
+set check_square 1
+set square 94067.7
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC60775"
+puts "OCC160"
+puts "(FUSE: A and B)"
+puts "========================"
+
+restore [locate_data_file buc60775a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60775b.brep] b
+puts [checkshape b]
+
+bfuse result a b
+puts [checkshape result]
+
+set nf [llength [explode result f]]
+
+if {$nf < 6} {
+ puts "Error : the resulting shape is unclosed!!!"
+}
+
+set check_square 1
+set square 328116
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60775"
+puts "OCC160"
+puts "(FUSE: B and A)"
+puts "========================"
+
+restore [locate_data_file buc60775a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60775b.brep] b
+puts [checkshape b]
+
+bfuse result b a
+puts [checkshape result]
+
+set nf [llength [explode result f]]
+if {$nf < 6} {
+ puts "Error : the resulting shape is unclosed!!!"
+}
+
+set check_square 1
+set square 328116
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60775"
+puts "OCC160"
+puts "(CUT: A and B)"
+puts "========================"
+
+restore [locate_data_file buc60775a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60775b.brep] b
+puts [checkshape b]
+
+bcut result a b
+puts [checkshape result]
+
+set nf [llength [explode result f]]
+if {$nf < 6} {
+ puts "Error : the resulting shape is unclosed!!!"
+}
+
+set check_square 1
+set square 48129.6
+set 2dviewer 0
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error : the resulting shape is unclosed!!!"
+
+puts "========================"
+puts "BUC60775"
+puts "OCC160"
+puts "(CUT: B and A)"
+puts "========================"
+
+restore [locate_data_file buc60775a.brep] a
+puts [checkshape a]
+restore [locate_data_file buc60775b.brep] b
+puts [checkshape b]
+
+bcut result b a
+puts [checkshape result]
+
+set nf [llength [explode result f]]
+if {$nf < 6} {
+ puts "Error : the resulting shape is unclosed!!!"
+}
+
+set check_square 1
+set square 247636
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========"
+puts "OCC161"
+puts "========"
+puts ""
+###########################################################
+## The face provided in attachment has single wire that is misoriented, i.e has
+## internal part outside. The checkshape command in DRAW should report that error
+## situation, while it does not.
+###########################################################
+
+restore [locate_data_file OCC161.brep] result
+
+decho off
+set che [checkshape result]
+decho on
+
+if { [regexp {Faulty} $che] != 1 } {
+ puts "Faulty OCC161 : Checkshape command works wrongly"
+} else {
+ puts "OCC161 OK : Checkshape command works properly"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC162"
+puts "========"
+
+pload QAcommands
+pload XDE
+# Gauge for virtual memory
+if ![string compare $tcl_platform(platform) "windows"] {
+ proc VMem { memory } {
+ upvar $memory mem
+ regsub "^.*PeakVirtualSize: *\(\[0-9\]*\) KB.*$" \
+ [exec tlist [pid]] "\\1" mem
+ }
+} else {
+ proc VMem { memory } {
+ upvar $memory mem
+ set mem [lindex [exec ps -o vsz -p [pid]] 1]
+ }
+}
+
+set Mem0 ""
+set Mem1 ""
+VMem Mem0
+
+# vinit
+restore [locate_data_file OCC162.brep] s
+# vdisplay s
+
+OCC162 s
+
+VMem Mem1
+puts "... The peak memory consumed: [expr $Mem1 - $Mem0] KB"
+
+set MemoryLeakage 0
+set i_max 5
+for {set i 1} {${i} <= ${i_max}} {incr i} {
+ OCC162 s
+ VMem Mem2
+ set Delta [expr $Mem2 - $Mem1]
+ set MemoryLeakage [expr $MemoryLeakage + $Delta]
+ puts " $i delta memory consumed: $Delta KB"
+}
+
+set percent_max 5
+set percent [expr ${MemoryLeakage} / (double(${i_max}) * (${Mem1} - ${Mem0})) * 100.]
+puts "percent = ${percent}"
+
+if {${percent} > ${percent_max}} {
+ puts "OCC162: Error : There is memory leakage during sewing operation"
+} else {
+ puts "OCC162: OK"
+}
+
--- /dev/null
+
+puts "========"
+puts "OCC163"
+puts "========"
+puts ""
+###########################################################
+## The result of extrema command is not correct.
+## We have only two "max" extrema, but we should have "min" and "max".
+###########################################################
+
+restore [locate_data_file OCC130.brep] res
+
+puts [checkshape res]
+
+line l -120 -100 400 0 0 1
+mksurface s res
+
+set che [extrema l s]
+set err [llength $che]
+if { $err < 2} {
+ puts "Error OCC163 (amount): command extrema does NOT work properly"
+}
+
+set dum1 [dump [lindex $che 0]]
+set dum2 [dump [lindex $che 1]]
+
+if { $dum1 == $dum2} {
+ puts "Error OCC163 (dump): command extrema does NOT work properly"
+}
+
--- /dev/null
+
+puts "================"
+puts "OCC164"
+puts "SAM1478"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC164-1.brep] sh1
+restore [locate_data_file OCC164-2.brep] sh2
+puts [checkshape sh1]
+puts [checkshape sh2]
+
+bfuse result sh1 sh2
+puts [checkshape result]
+
+set check_square 1
+set square 344595
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "================"
+puts "OCC164"
+puts "SAM1478"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC164-1.brep] sh1
+restore [locate_data_file OCC164-2.brep] sh2
+puts [checkshape sh1]
+puts [checkshape sh2]
+
+bfuse result sh2 sh1
+puts [checkshape result]
+
+set check_square 1
+set square 344595
+set 2dviewer 0
+
+
--- /dev/null
+puts "========"
+puts "OCC165"
+puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
+puts "========"
+
+restore [locate_data_file offset_wire_019.brep] a
+puts [checkshape a]
+
+mkplane f a
+puts [checkshape f]
+
+set IsGood 1
+if [catch {mkoffset res1 f 1 1 } result] {
+ puts "Faulty OCC165 (case 1) : function MKOFFSET works wrongly"
+ set IsGood 0
+} else {
+ puts "OCC165 OK (case 1): function MKOFFSET works properly"
+ checkshape res1_1
+ mkplane pl1 res1_1
+ checkshape pl1
+}
+
+if [catch {mkoffset res2 f 1 -1 } result] {
+ puts "Faulty OCC165 (case 2) : function MKOFFSET works wrongly"
+ set IsGood 0
+} else {
+ puts "OCC165 OK (case 2): function MKOFFSET works properly"
+ checkshape res2_1
+ mkplane pl2 res2_1
+ checkshape pl2
+}
+
+if {$IsGood == 1} {
+ compound a res1_1 res2_1 res
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res1_1] full len
+
+ set good_len 1088.43
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 3) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res2_1] full len
+
+ set good_len 1075.87
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 4) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ if {$IsGood == 1} {
+ puts "OCC165 OK"
+ } else {
+ puts "OCC165 FAULTY"
+ }
+
+} else {
+ puts "OCC165 FAULTY"
+}
+
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO OCC12345 ALL: OCC165 Faulty"
+puts "========"
+puts "OCC165"
+puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
+puts "========"
+
+restore [locate_data_file offset_wire_019.brep] a
+puts [checkshape a]
+
+mkplane f a
+puts [checkshape f]
+
+set IsGood 1
+if [catch {mkoffset res1 f 1 4.8 } result] {
+ set IsGood 0
+} else {
+ puts "OCC165 OK (case 1): function MKOFFSET works properly"
+ puts [checkshape res1_1]
+ mkplane pl1 res1_1
+ puts [checkshape pl1]
+}
+
+if [catch {mkoffset res2 f 1 -2.9 } result] {
+ set IsGood 0
+} else {
+ puts "OCC165 OK (case 2): function MKOFFSET works properly"
+ puts [checkshape res2_1]
+ mkplane pl2 res2_1
+ puts [checkshape pl2]
+}
+
+if {$IsGood == 1} {
+ compound a res1_1 res2_1 res
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res1_1] full len
+
+ set good_len 1112.29
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ set IsGood 0
+ }
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res2_1] full len
+
+ set good_len 1063.91
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ set IsGood 0
+ }
+
+ if {$IsGood == 1} {
+ puts "OCC165 OK"
+ } else {
+ puts "OCC165 Faulty"
+ }
+
+} else {
+ puts "OCC165 Faulty"
+}
--- /dev/null
+
+puts "========"
+puts "OCC165"
+puts "========"
+
+restore [locate_data_file OCC165-2.brep] f
+puts [checkshape f]
+
+set IsGood 1
+if [catch {mkoffset res1 f 3 10 } result] {
+ puts "Faulty OCC165 (case 1) : function MKOFFSET works wrongly"
+ set IsGood 0
+} else {
+ #puts "OCC165 OK (case 1): function MKOFFSET works properly"
+ mkplane pl1_1 res1_1
+ puts [checkshape pl1_1]
+ mkplane pl1_2 res1_2
+ puts [checkshape pl1_2]
+ mkplane pl1_3 res1_3
+ puts [checkshape pl1_3]
+}
+
+if [catch {mkoffset res2 f 3 -10 } result] {
+ puts "Faulty OCC165 (case 2) : function MKOFFSET works wrongly"
+ set IsGood 0
+} else {
+ #puts "OCC165 OK (case 2): function MKOFFSET works properly"
+ mkplane pl2_1 res2_1
+ puts [checkshape pl2_1]
+ mkplane pl2_2 res2_2
+ puts [checkshape pl2_2]
+ mkplane pl2_3 res2_3
+ puts [checkshape pl2_3]
+}
+
+if {$IsGood == 1} {
+ compound f res1_1 res1_2 res1_3 res2_1 res2_2 res2_3 res
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res1_1] full len
+
+ set good_len 462.832
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 3) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res1_2] full len
+
+ set good_len 525.664
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 4) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res1_3] full len
+
+ set good_len 588.496
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 5) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res2_1] full len
+
+ set good_len 320
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 6) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res2_2] full len
+
+ set good_len 240
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 7) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops res2_3] full len
+
+ set good_len 160
+ set percent_max 0.1
+ set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]
+
+ puts "good_len = ${good_len}"
+ puts "length = ${len}"
+ puts "percent = ${percent}"
+
+ if {${percent} > ${percent_max}} {
+ puts "Faulty OCC165 (case 8) : function MKOFFSET works wrongly"
+ set IsGood 0
+ }
+
+ if {$IsGood == 1} {
+ puts "OCC165 OK"
+ } else {
+ puts "OCC165 FAULTY"
+ }
+
+} else {
+ puts "OCC165 FAULTY"
+}
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC17: here can be shading problem"
+
+puts "================"
+puts "OCC17"
+puts "================"
+puts ""
+
+#####################################################
+puts " Solid_14 will be the face which is unvisible during displaying entire solid."
+#####################################################
+
+restore [locate_data_file OCC17.brep] sh
+
+puts [checkshape sh]
+
+explode sh f
+renamevar sh_14 result
+tclean result
+vinit
+vdisplay result
+vsetdispmode result 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri != 100 && $nod != 94 } {
+ puts "Faulty OCC17: here can be shading problem"
+}
+
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========"
+puts "OCC175"
+puts "========"
+puts ""
+###########################################
+## ABug of a symmetry on this specific attached BREP shape.
+###########################################
+
+restore [locate_data_file OCC175.brep] result
+puts [checkshape result]
+
+regexp {SHAPE +: +([-0-9.+eE]+)} [nbshapes result] full col1
+
+tmirror result 0 0 0 0 1 0
+
+regexp {SHAPE +: +([-0-9.+eE]+)} [nbshapes result] full col2
+if { $col1 != $col2} {
+ puts "Error : Command mirror does NOT work properly. "
+}
+
+set check_square 1
+set square 13091.3
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC183 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file f1] b1
+puts [checkshape b1]
+
+restore [locate_data_file f4] b2
+puts [checkshape b2]
+
+bcommon result b1 b2
+puts [checkshape result]
+
+set check_square 1
+set square 315.159
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC183 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file so1] b1
+puts [checkshape b1]
+
+restore [locate_data_file so4] b2
+puts [checkshape b2]
+
+bfuse result b1 b2
+puts [checkshape result]
+
+set check_square 1
+set square 942.478
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC183 "
+puts "(case 3)"
+puts "========================"
+puts ""
+
+restore [locate_data_file so1] b1
+puts [checkshape b1]
+
+restore [locate_data_file so4] b2
+puts [checkshape b2]
+
+bcut result b1 b2
+puts [checkshape result]
+
+set check_square 1
+set square 863.938
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC183 "
+puts "(case 4)"
+puts "========================"
+puts ""
+
+restore [locate_data_file so1] b1
+puts [checkshape b1]
+
+restore [locate_data_file so2] b2
+puts [checkshape b2]
+
+bcommon result b1 b2
+puts [checkshape result]
+
+set check_square 1
+set square 392.699
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC183 "
+puts "(case 5)"
+puts "========================"
+puts ""
+
+restore [locate_data_file so4] b1
+puts [checkshape b1]
+
+restore [locate_data_file so2] b2
+puts [checkshape b2]
+
+bcommon result b1 b2
+puts [checkshape result]
+
+set check_square 1
+set square 198.863
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC183 "
+puts " CTS16184"
+puts "(case 6)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO900_cts16184a.rle] a
+puts [checkshape a]
+restore [locate_data_file cts16184b.brep] b
+puts [checkshape b]
+
+bop a b
+bopfuse result a b
+puts [checkshape -top result]
+
+set check_square 1
+set square 0.0892544
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "================"
+puts "OCC187"
+puts "SAM1230"
+puts "================"
+puts ""
+
+#################################################################
+## In time document with "1-exhaust.brep" imported shape saving exception "Access Violation"
+## raises because of wrong PColgp_HArray1 allocation.
+## StandardCSFDB_Allocate badly allocates memory blocks: bad address value retuned.
+#################################################################
+
+restore [locate_data_file OCC187_from_bug_description.brep] result
+
+set 2dviewer 0
--- /dev/null
+
+puts "============"
+puts "BUC60929"
+puts "OCC188"
+puts "============"
+
+restore [locate_data_file BUC60929.brep] a
+
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+puts [checkshape result]
+
+set check_square 1
+set square 3739.26
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "================"
+puts "OCC188"
+puts "================"
+puts ""
+
+restore [locate_data_file BUC60929.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+puts [checkshape result]
+
+set check_square 1
+set square 669659
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC20: here is shading problem"
+
+puts "================"
+puts "OCC20"
+puts "================"
+puts ""
+###############################
+## Face apearence in shading mode is wrong
+###############################
+
+pload QAcommands
+restore [locate_data_file OCC20.brep] result
+
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vsetdispmode result 1
+
+QASetViewCharac 5.1346924 95.358439 -4.910448 0.23495967 -0.302 0.923899 -0.7304302 0.5722587 0.372815 9.550874 -7.55706 -28.83166
+
+isos result 0
+triangles result
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri != 416 || $nod != 367 } {
+ puts "Faulty OCC20: here is shading problem"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty PRO20333: here is shading problem"
+
+puts "============"
+puts "PRO20333"
+puts ""
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+
+restore [locate_data_file pro20333a.brep] result
+puts [checkshape result]
+
+tclean result
+isos result 0
+incmesh result .1
+triangles result
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri != 107 || $nod != 109 } {
+ puts "Faulty PRO20333: here is shading problem"
+}
+
+set 3dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC211"
+puts "========"
+
+##########################################
+##Error of fillet prolongation.
+##########################################
+
+restore [locate_data_file OCC211.brep] a
+
+explode a e
+
+blend result a 10 a_24
+puts [checkshape result]
+
+set check_square 1
+set square 1.34399e+06
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC211"
+puts "========"
+
+##########################################
+##Error of fillet prolongation.
+##########################################
+
+restore [locate_data_file OCC211.brep] a
+
+explode a e
+
+blend result a 10 a_4
+puts [checkshape result]
+
+set check_square 1
+set square 1.34399e+06
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC217"
+puts "========"
+
+##########################################
+##nurbsconvert problem
+##########################################
+
+box b -5 -5 -5 10 10 10
+psphere s 6
+
+bfuse result s b
+puts [checkshape result]
+
+set check_square 1
+set square 618.85
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC227"
+puts "(case 1)"
+puts "========"
+
+##############################################################
+##Incorrect result with missing faces after a fuse operation beetween the box and the wedge.
+###############################################################
+
+restore [locate_data_file OCC227a.brep] a
+fsameparameter a
+updatetolerance a
+puts [checkshape a]
+
+restore [locate_data_file OCC227b.brep] b
+fsameparameter b
+updatetolerance b
+puts [checkshape b]
+
+bfuse result a b
+puts [checkshape result]
+
+set check_square 1
+set square 1583.92
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC227"
+puts "(case 2)"
+puts "========"
+
+##############################################################
+##Incorrect result with missing faces after a fuse operation beetween the box and the wedge.
+###############################################################
+
+restore [locate_data_file OCC227a.brep] a
+fsameparameter a
+updatetolerance a
+puts [checkshape a]
+
+restore [locate_data_file OCC227b.brep] b
+fsameparameter b
+updatetolerance b
+puts [checkshape b]
+
+bfuse result b a
+puts [checkshape result]
+
+set check_square 1
+set square 1583.92
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC228"
+puts "================"
+puts ""
+################################################
+## It's impossible to make common of the two shapes in the file attached.
+################################################
+
+cpulimit 4000
+
+restore [locate_data_file OCC228.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+
+set check_square 1
+set square 66231.3
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC247 "
+puts "========================"
+
+#################################################
+##Using of function "bop" with attached shapes calls exception.
+#################################################
+restore [locate_data_file OCC247a.brep] a
+restore [locate_data_file case_8_wire3.brep] b
+
+bop a b
+
+
+
+
+
\ No newline at end of file
--- /dev/null
+
+puts "================"
+puts "OCC252"
+puts "================"
+puts ""
+
+pload QAcommands
+
+restore [locate_data_file OCC252.brep] a
+
+puts [checkshape a]
+
+explode a w
+
+OCC252 result a_466 a 0
+
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full len
+
+if { ${len} <= 0 } {
+ puts "Error : OCC252"
+}
+
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC252"
+puts "================"
+puts ""
+
+pload QAcommands
+
+restore [locate_data_file OCC252.brep] a
+puts [checkshape a]
+
+explode a w
+
+OCC252 result a_466 a 1
+
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full len
+
+if { ${len} != 0 } {
+ puts "Error : OCC252"
+}
+
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC252"
+puts "================"
+puts ""
+
+pload QAcommands
+
+restore [locate_data_file OCC252.brep] a
+puts [checkshape a]
+
+explode a w
+
+OCC252 result a_466 a 2
+
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full len
+
+if { ${len} <= 0 } {
+ puts "Error : OCC252"
+}
+
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC254"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC254-1.brep] shape1
+puts [checkshape shape1]
+
+restore [locate_data_file OCC254-3.brep] shape3
+puts [checkshape shape3]
+
+common result shape1 shape3
+puts [checkshape result]
+
+set check_square 1
+set length 1231.07
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC256"
+puts "========"
+
+restore [locate_data_file OCC256.brep] result
+puts [checkshape result]
+
+tclean result
+vinit
+vdisplay result
+vsetdispmode result 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri != 66 && $nod != 66 } {
+ puts "Error : here is shading problem"
+}
+
+set 3dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: OCC257 - Error : xdelta= 3.6651128509496784"
+puts "TODO OCC12345 ALL: OCC257 - Error : ydelta= 5.840378793387278"
+puts "TODO OCC12345 ALL: OCC257 - Error : zdelta= 1.4898469085120623"
+
+puts "================"
+puts "OCC257"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC257.brep] result
+puts [checkshape result]
+
+set bb [bounding result]
+
+set list [split ${bb}]
+set listLength [llength ${list}]
+if { ${listLength} < 6 } {
+ puts "Error : listLength = ${listLength}"
+}
+
+set x1 [lindex ${list} 0]
+set y1 [lindex ${list} 1]
+set z1 [lindex ${list} 2]
+set x2 [lindex ${list} 3]
+set y2 [lindex ${list} 4]
+set z2 [lindex ${list} 5]
+
+set len [expr ${x2} - ${x1}]
+set width [expr ${y2} - ${y1}]
+set height [expr ${z2} - ${z1}]
+
+set R 180
+
+set xdelta [expr abs(${len} - ${R}) / ${R} * 100]
+set ydelta [expr abs(${width} - ${R}) / ${R} * 100]
+set zdelta [expr abs(${height} - ${R}) / ${R} * 100]
+
+set maxdelta 0.1
+
+if { ${xdelta} > ${maxdelta} } then {puts "OCC257 - Error : xdelta= ${xdelta}"}
+if { ${ydelta} > ${maxdelta} } then {puts "OCC257 - Error : ydelta= ${ydelta}"}
+if { ${zdelta} > ${maxdelta} } then {puts "OCC257 - Error : zdelta= ${zdelta}"}
+
+if { ${xdelta} <= ${maxdelta} && ${ydelta} <= ${maxdelta} && ${zdelta} <= ${maxdelta} } then {
+ puts "OCC257: OK"
+}
+
+set 3dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC258 "
+puts "(case 1)"
+puts "========================"
+
+restore [locate_data_file shading_143.brep] result
+puts [checkshape result]
+
+tclean result
+isos result 0
+vinit
+vdisplay result
+vsetdispmode result 1
+vfit
+triangles result
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri < 71 || $nod < 73 } {
+ puts "Error (case 1) : here is shading problem"
+}
+
+set 3dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC258 "
+puts "(case 2)"
+puts "========================"
+
+restore [locate_data_file shading_144.brep] result
+puts [checkshape result]
+
+tclean result
+isos result 0
+vinit
+vdisplay result
+vsetdispmode result 1
+vfit
+triangles result
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri < 70 || $nod < 72 } {
+ puts "Error (case 2) : here is shading problem"
+}
+
+set 3dviewer 0
+
+
--- /dev/null
+
+puts "========================"
+puts " OCC259 "
+puts "========================"
+puts ""
+######################################################
+##Inequality behaviour of checkshape -top on SunOS and IRIX.
+######################################################
+
+pcylinder b1 1 2
+
+dset r sqrt(2)/2
+box b2 -r -r 0 2*r 2*r 2
+trotate b2 0 0 0 0 0 1 135
+
+bfuse result b2 b1
+puts [checkshape -top result]
+
+set check_square 1
+set square 18.8496
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC266"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC266.brep] a
+puts [checkshape a]
+
+renamevar a edge
+explode edge e
+
+renamevar edge face
+explode face f
+
+chamf result face edge_10 face_3 A 1 45 edge_6 face_3 A 1 45 edge_11 face_3 A 1 45 edge_12 face_3 A 1 45 edge_13 face_3 A 1 45 edge_14 face_3 A 1 45 edge_8 face_3 A 1 45 edge_9 face_3 A 1 45
+puts [checkshape result]
+
+set check_square 1
+set square 48913
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "OCC268"
+puts "========"
+puts ""
+###########################################################
+## Using of command "lprops" for shapes that contain degenerated edges call exception.
+###########################################################
+
+restore [locate_data_file OCC268.brep] result
+puts [checkshape result]
+
+set check_square 1
+set length 56.6039
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC26"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC26.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_1 a_2
+
+set check_square 1
+set square 44819.9
+
+set 2dviewer 0
+
+
+
--- /dev/null
+
+puts "================"
+puts "OCC26"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC26.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_2 a_1
+
+set check_square 1
+set square 44819.8
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC276"
+puts "========"
+puts ""
+#########################################################
+##Bad performance of checkshape on faces with multiple wires
+#########################################################
+
+restore [locate_data_file OCC276.brep] result
+
+dchrono h2 reset
+dchrono h2 start
+
+puts [checkshape result]
+
+dchrono h2 stop
+set q2 [ dchrono h2 show ]
+regexp {CPU user time: ([-0-9.+eE]+) seconds} $q2 full z2
+if { [expr $z2 > 43] } {
+ puts "Elapsed time is more then 43 seconds - Faulty"
+} else {
+ puts "Elapsed time is less then 43 seconds - OK"
+}
+
+set 2dviewer 0
+
+
+
+
+
--- /dev/null
+
+puts "========"
+puts "OCC278"
+puts " (case 1)"
+puts "========"
+
+######################################################################
+##Command "checkshape" does not define self-crossing for some wires and assigns status "valid" for them.
+## NOTE akm: there is no actual intersection - it was a bug in displaying complicated curves (my patch deals with it)
+## NOTE akm: wire alone is only a curve in the space so it may intersect itself.
+## NOTE akm: bug after putting it on plane checkshape found the pb.
+#######################################################################
+
+restore [locate_data_file OCC278a.brep] a
+
+mkplane result a
+puts [checkshape result]
+
+set check_square 1
+set square 2914.99
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC278"
+puts " (case 2)"
+puts "========"
+
+######################################################################
+##Command "checkshape" does not define self-crossing for some wires and assigns status "valid" for them.
+## NOTE akm: there is no actual intersection - it was a bug in displaying complicated curves (my patch deals with it)
+## NOTE akm: wire alone is only a curve in the space so it may intersect itself.
+## NOTE akm: bug after putting it on plane checkshape found the pb.
+#######################################################################
+
+restore [locate_data_file OCC278b.brep] a
+
+mkplane result a
+puts [checkshape result]
+
+set check_square 1
+set square 22740
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC278"
+puts " (case 3)"
+puts "========"
+
+######################################################################
+##Command "checkshape" does not define self-crossing for some wires and assigns status "valid" for them.
+## NOTE akm: there is no actual intersection - it was a bug in displaying complicated curves (my patch deals with it)
+## NOTE akm: wire alone is only a curve in the space so it may intersect itself.
+## NOTE akm: bug after putting it on plane checkshape found the pb.
+#######################################################################
+
+restore [locate_data_file OCC278c.brep] a
+
+mkplane result a
+decho off
+set che [checkshape result]
+decho on
+
+if { [regexp "Faulty" $che] != 1 } {
+ puts "Error (case 3) : Checkshape command works wrongly"
+}
+
+set check_square 1
+set square 43.3075
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC27"
+puts "================"
+puts ""
+
+restore [locate_data_file shading_128.brep] a
+checkshape a
+
+explode a e
+blend result a 1 a_5 1 a_6 1 a_7 1 a_8
+puts [checkshape result]
+
+set check_square 1
+set square 155.846
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC27"
+puts "================"
+puts ""
+
+restore [locate_data_file shading_128.brep] a
+checkshape a
+
+explode a e
+explode a f
+chamf result a a_5 a_1 A 1 45 a_6 a_1 A 1 45 a_7 a_1 A 1 45 a_8 a_1 A 1 45
+puts [checkshape result]
+
+set check_square 1
+set square 154.145
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC28"
+puts "================"
+###############################################
+puts "Bug is limitation on currently version of topology (07.06.2002)."
+###############################################
+
+cpulimit 1200
+restore [locate_data_file OCC28.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_1 a_2
+puts [checkshape result]
+
+set check_square 1
+set square 483935
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC28"
+puts "================"
+###############################################
+puts "Bug is limitation on currently version of topology (07.06.2002)."
+###############################################
+
+cpulimit 1200
+restore [locate_data_file OCC28.brep] a
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_2 a_1
+puts [checkshape result]
+
+set check_square 1
+set square 483935
+set 2dviewer 0
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "================"
+puts "OCC31"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC31.brep] sh
+puts [checkshape sh]
+
+explode sh f
+
+explode sh_2 e
+
+chamf res1 sh sh_2_1 sh_2 7 7
+puts [checkshape res1]
+
+explode res1 f
+
+explode res1_5 e
+
+chamf res2 res1 res1_5_4 res1_5 7 7
+puts [checkshape res2]
+
+explode res2 f
+
+explode res2_4 e
+
+chamf result res2 res2_4_1 res2_4 7 7
+puts [checkshape result]
+
+set check_square 1
+set square 107634
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC313"
+puts "================"
+puts ""
+
+########################################################
+#### Exeption is raised in DRAW during command "restore" on attahed shape.
+########################################################
+
+restore [locate_data_file OCC313.brep] result
+
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60979"
+puts " OCC324 "
+puts "========================"
+puts ""
+#################################################################
+## Extrema between trimmed line and circle lead to exception.
+#################################################################
+
+restore [locate_data_file OCC359a.brep] el
+restore [locate_data_file OCC359b.brep] ec
+
+distmini dd el ec
+
+
--- /dev/null
+
+puts "================"
+puts "OCC35"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC35.brep] result
+decho off
+set info [checkshape result]
+decho on
+
+if { [regexp "Faulty" $info] != 1 } {
+ puts "Command checkshape works wrongly (should be faulty)"
+}
+
+set 2dviewer 0
+
+
+
+
--- /dev/null
+
+puts "========================"
+puts " OCC354 "
+puts "(case 1)"
+puts "========================"
+puts ""
+##################################################
+## neither chamfer nor blend is built in similar situation
+##################################################
+
+restore [locate_data_file OCC354a.brep] a
+
+explode a e
+
+blend result a 2 a_18
+puts [checkshape result]
+
+set check_square 1
+set square 593.527
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC354 "
+puts "(case 2)"
+puts "========================"
+puts ""
+##################################################
+## neither chamfer nor blend is built in similar situation
+##################################################
+
+restore [locate_data_file OCC354b.brep] a
+explode a f
+
+explode a_5 e
+
+donl a a_5_6
+
+chamf result a a_5_6 a_5 A 2 45
+puts [checkshape result]
+
+set check_square 1
+set square 589.268
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts " OCC366 "
+puts "========================"
+puts ""
+##################################################
+## Checkshape says that face is valid but it inludes selfintersecting wire
+##################################################
+
+restore [locate_data_file buc61006.brep] result
+
+decho off
+set che [checkshape result]
+decho on
+
+if { [regexp "Faulty" $che] != 1 } {
+ puts "Error : Checkshape command works wrongly"
+}
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts "BUC61027"
+puts " OCC368 "
+puts "========================"
+puts ""
+##############################################
+## Visualization is too slow.
+##############################################
+
+restore [locate_data_file OCC368.brep] result
+puts [checkshape result]
+
+tclean result
+isos result 0
+vinit
+dchrono h2 reset
+dchrono h2 start
+vdisplay result
+vsetdispmode result 1
+dchrono h2 stop
+
+regexp {CPU user time: +([-0-9.+eE]+)} [dchrono h2 show] full z2
+
+if { $z2 > 30 } {
+ puts "Error : Elapsed time is more then 30 seconds"
+}
+
+set 2dviewer 0
+
+
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC61034"
+puts " OCC371 "
+puts "========================"
+puts ""
+#################################################################
+##Intersection between two BSplineSurfaces, using IntPatch_Intersection, lead to infinite cycle.
+#################################################################
+
+restore [locate_data_file OCC371a.brep] a
+restore [locate_data_file OCC371b.brep] b
+
+mksurface gs1 a
+mksurface gs2 b
+trim trgs1 gs1 0.0 1.0 0.9698725179864 1.0
+trim trgs2 gs2 0.0 1.0 0.24333094700742 0.92374551772989
+
+#cpulimit 300
+intersect result trgs1 trgs2
+
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC61040"
+puts " OCC374 "
+puts "========================"
+puts ""
+####################################
+##Offset surface from bspline surface is not correct
+####################################
+restore [locate_data_file OCC374.draw] su
+
+offset su1 su 1
+
+mkface result su1
+
+set check_square 1
+set square 7960.45
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC61040"
+puts " OCC374 "
+puts "========================"
+puts ""
+####################################
+##Offset surface from bspline surface is not correct
+####################################
+restore [locate_data_file OCC374.draw] su
+
+offset su2 su -1
+
+mkface result su2
+
+set check_square 1
+set square 7181.83
+set 2dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC61049"
+puts " OCC376 "
+puts "========================"
+puts ""
+####################################
+##. Offset can not be created on the attached surface
+####################################
+
+restore [locate_data_file OCC376.rle] s
+
+offset r s 1
+
+mkface result s
+
+set check_square 1
+set square 1256.64
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC37"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC37.brep] sh
+explode sh
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_1 sh_2
+puts [checkshape result]
+
+set check_square 1
+set square 665013
+set 2dviewer 0
+
+
+
+
--- /dev/null
+
+puts "================"
+puts "OCC37"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC37.brep] sh
+explode sh
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+bfuse result sh_2 sh_1
+puts [checkshape result]
+
+set check_square 1
+set square 665013
+set 2dviewer 0
+
+
+
+
+
--- /dev/null
+
+puts "========================"
+puts " OCC380 "
+puts "========================"
+puts ""
+##############################
+##Incorrect result of common operation
+##############################
+
+restore [locate_data_file OCC380a.rle] a
+restore [locate_data_file OCC380b.rle] b
+
+bcommon result a b
+
+set check_square 1
+set square 21.154
+set 2dviewer 0
+
--- /dev/null
+
+puts "========================"
+puts " OCC380 "
+puts "========================"
+puts ""
+##############################
+##Incorrect result of common operation
+##############################
+
+restore [locate_data_file OCC380a.rle] a
+restore [locate_data_file OCC380b.rle] b
+
+bcommon result b a
+
+set check_square 1
+set square 21.154
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC3"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC3-1.brep] a
+restore [locate_data_file OCC3-2.brep] b
+puts [checkshape a]
+puts [checkshape b]
+
+bfuse result a b
+puts [checkshape result]
+
+set check_square 1
+set square 11400
+set 2dviewer 0
--- /dev/null
+
+puts "================"
+puts "OCC3"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC3-1.brep] a
+restore [locate_data_file OCC3-2.brep] b
+puts [checkshape a]
+puts [checkshape b]
+
+bfuse result b a
+puts [checkshape result]
+
+set check_square 1
+set square 11400
+set 2dviewer 0
+
--- /dev/null
+
+puts "================"
+puts "OCC4"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC4.brep] sh
+puts [checkshape sh]
+
+explode sh e
+
+fillet result sh 15 sh_14
+puts [checkshape result]
+
+set square 1
+set 2dviewer 0
+
+
--- /dev/null
+
+puts "================"
+puts "OCC41"
+puts "================"
+puts ""
+
+puts "Isos lines may be drawn incorrectly"
+psphere result 10 -90
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "================"
+puts "OCC42"
+puts "================"
+puts ""
+###############################################
+## BRepAlgo_Sewing does not sew attached shape with any tolerance.
+###############################################
+
+pload XDE
+
+# 1. retriesve shape
+restore [locate_data_file OCC42.brep] sh
+puts [checkshape sh]
+
+# 2. perform sewing
+set toler 80
+sewing result $toler sh
+
+# 3. Verify result of sewing
+puts [checkshape result]
+
+# Retrieve free wires from result shape
+catch { fbclose result $toler $toler } resOfCatch
+
+# Amount of free open wires must be equal 0
+set open_wires [explode result_o W]
+if { [llength $open_wires] != 0} {
+ puts "Error : There are free open wires"
+}
+
+# Amount of free closed wires must be equal 1
+set closed_wires [explode result_c W]
+if { [llength $closed_wires] != 1} {
+ puts "Error : Amount of free closed wires is not equal 1"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts " OCC432 "
+puts "========================"
+puts ""
+############################################
+## Regression in dev regarding C40: exception during checkshape
+############################################
+
+restore [locate_data_file OCC432.brep] result
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC444"
+puts "========"
+puts ""
+######################################
+## Exception in '2dextrema' command if distance = 0.
+######################################
+
+restore [locate_data_file OCC444a.draw] a
+restore [locate_data_file OCC444a.draw] b
+
+extrema a b
+
+
--- /dev/null
+
+puts "========================"
+puts " OCC466 "
+puts "========================"
+puts ""
+
+restore [locate_data_file OCC466.brep] res
+puts [checkshape res]
+
+nurbsconvert result res
+
+set check_square 1
+set square 693.577
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Tcl Exception: result is not a topological shape!!!"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "========================"
+puts " OCC469 "
+puts "========================"
+puts ""
+######################################################
+## It's impossible to fuse the two shapes in the file attached. #2740, SAM1493
+######################################################
+
+restore [locate_data_file OCC469.brep] a
+explode a
+
+checkshape a_1
+checkshape a_2
+
+bfuse result a_1 a_2
+puts [checkshape result]
+
+set check_square 1
+set square 10
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC498: Wrong 3d point from offset surface by parameters"
+
+puts "========="
+puts " OCC498 "
+puts "========="
+puts ""
+######################################
+## Wrong 3d point from offset surface by parameters
+######################################
+
+restore [locate_data_file OCC498.draw] su
+
+set u1 4.71238898038469
+set u2 7.85398163397449
+
+svalue su 0 $u1 x1 y1 z1
+vertex v1 x1 y1 z1
+
+svalue su 0 $u2 x2 y2 z2
+vertex v2 x2 y2 z2
+
+set newU1 [expr $u1 - 1e-11]
+set newU2 [expr $u2 + 1e-11]
+
+svalue su 0 $newU1 x1 y1 z1
+vertex vv1 x1 y1 z1
+
+svalue su 0 $newU2 x2 y2 z2
+vertex vv2 x2 y2 z2
+
+distmini d v1 vv1
+regexp {([-0-9.+eE]+)} [dump d_val] full err1
+
+distmini d v2 vv2
+regexp {([-0-9.+eE]+)} [dump d_val] full err2
+
+if { $err1 > 1.e-7 || $err2 > 1.e-7} {
+ puts "Faulty OCC498: Wrong 3d point from offset surface by parameters "
+} else {
+ puts "OCC498 OK: Correct 3d point from offset surface by parameters"
+}
+
+
+
+
+
+
+
--- /dev/null
+
+puts "========"
+puts "OCC49"
+puts "========"
+
+pload QAcommands
+
+pcylinder c 10 20
+
+set result [OCC49 c]
+
+if {$result == 1} {
+ puts "OCC49: OK"
+} else {
+ puts "Error : OCC49"
+}
+
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC49"
+puts "========"
+
+pload QAcommands
+
+pcylinder c 10 20
+box b 10 10 10
+bcut b_c_cut b c
+checkshape b_c_cut
+
+set result [OCC49 b_c_cut]
+
+if {$result == 1} {
+ puts "Error : OCC49"
+} else {
+ puts "OCC49: OK"
+}
+
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "OCC50"
+puts "========"
+puts ""
+###################################################################
+## the algorithm which allows to calculate and build the fillet presents probably a bug: when
+## blending on all edges, the applied algorithm is posting errors and failure during fillet computation.
+###################################################################
+
+restore [locate_data_file OCC50.brep] a
+puts [checkshape a]
+
+explode a e
+
+blend result a 1 a_17 1 a_5 1 a_1 1 a_2 1 a_16 1 a_20 1 a_3 1 a_11 1 a_10 1 a_4
+puts [checkshape result]
+
+set check_square 1
+set square 7677.49
+set 2dviewer 0
--- /dev/null
+
+puts "========="
+puts " OCC505 "
+puts "========="
+puts ""
+#####################################
+## BRepExtrema_DistShapeShape throws an exception.
+#####################################
+
+restore [locate_data_file OCC505a.brep] su1
+puts [checkshape su1]
+
+restore [locate_data_file OCC505b.brep] su2
+puts [checkshape su2]
+
+distmini d su1 su2
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "================"
+puts "OCC54"
+puts "================"
+puts ""
+####################################################
+## Exception is raised during command "small" in DRAW on attached shape.
+####################################################
+
+#cpulimit 9000
+# true CPU limit! cpulimit 2000
+cpulimit 100
+restore [locate_data_file OCC54.brep] result
+
+puts [checkshape result]
+
+set 3dviewer 0
--- /dev/null
+
+puts "========================"
+puts "BUC60637"
+puts "========================"
+
+restore [locate_data_file buc60637a.brep] result
+fsameparameter result
+
+set check_square 1
+set square 144.866
+set 2dviewer 0
--- /dev/null
+
+puts "=========="
+puts "BUC60652"
+puts "Case 1"
+puts "=========="
+
+pload QAcommands
+
+restore [locate_data_file buc60652a.brep] result
+puts [checkshape result]
+BUC60652 result
+
+set check_square 1
+set square 19614.8
+set 2dviewer 0
--- /dev/null
+
+puts "=========="
+puts "BUC60652"
+puts "Case 2"
+puts "=========="
+
+pload QAcommands
+
+restore [locate_data_file buc60652b.brep] result
+puts [checkshape result]
+BUC60652 result
+
+set check_square 1
+set square 29961
+set 2dviewer 0
+
--- /dev/null
+
+puts "==========="
+puts "BUC60652"
+puts "Case 3"
+puts "==========="
+
+pload QAcommands
+
+restore [locate_data_file buc60652c.brep] result
+puts [checkshape result]
+BUC60652 result
+
+set check_square 1
+set square 77815.1
+set 2dviewer 0
--- /dev/null
+
+puts "=========="
+puts "BUC60652"
+puts "Case 4"
+puts "=========="
+
+pload QAcommands
+
+restore [locate_data_file shading_104.brep] result
+puts [checkshape result]
+BUC60652 result
+
+set check_square 1
+set square 119134
+set 2dviewer 0
--- /dev/null
+
+puts "==================="
+puts "BUG60667"
+puts "==================="
+
+restore [locate_data_file buc60667a.brep] result
+fsameparameter result
+puts [checkshape result]
+
+set check_square 1
+set square 6.5285
+set 2dviewer 0
+
--- /dev/null
+
+puts "==========="
+puts "BUC60707"
+puts "==========="
+puts ""
+#################################################
+## Fillets created in CasCade version 3 do not display as shaded surfaces.
+#################################################
+restore [locate_data_file buc60707a.brep] result
+puts [checkshape result]
+
+tclean result
+incmesh result .1
+triangles result
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full Maxtriangl
+
+if { $Maxtriangl < 1 } {
+ puts "Error : inside mesh for shading wasn't build"
+}
+
+set 3dviewer 0
+
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60729"
+puts "========================"
+
+pload QAcommands
+
+if [catch {BUC60729} ] {
+ puts "BUC60729: Error"
+} else {
+ puts "BUC60729: OK"
+}
+
+set 3dviewer 1
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========================"
+puts "BUC60755"
+puts "========================"
+
+restore [locate_data_file buc60755a.brep] a
+puts [checkshape a]
+
+#########################################
+# "tcopy" command of a valid shape give a no-valid shape.
+#########################################
+
+tcopy a result
+puts [checkshape result]
+
+set check_square 1
+set square 623.832
+set 2dviewer 0
+
+
+
+
--- /dev/null
+
+puts "============="
+puts "BUC60769"
+puts "============="
+
+restore [locate_data_file buc60769a.brep] result
+puts [checkshape result]
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "========================"
+puts "BUC60825"
+puts "========================"
+
+pload QAcommands
+
+line aLine 0 0 0 0 0 1
+mkedge aEdge1 aLine
+restore [locate_data_file buc60825.brep] aEdge2
+puts [checkshape aEdge2]
+
+distmini d aEdge1 aEdge2
+regexp {NB RESULTS +: +([-0-9.+eE]+)} [BUC60825 aEdge1 aEdge2] full ext
+if { $ext != 0 } {
+ puts "Error : The extrema has not been calculated."
+}
+
+
+
+
--- /dev/null
+
+puts "========"
+puts "BUC60828"
+puts "========"
+puts ""
+
+catch {BUC60828}
+
+
+
+
--- /dev/null
+
+puts "========"
+puts "BUC60842"
+puts "========"
+
+pload QAcommands
+vinit
+
+if [catch {BUC60842} catch_result] {
+ puts "Faulty BUC60842"
+} else {
+ puts "BUC60842 OK"
+}
+
+set 3dviewer 1
+
--- /dev/null
+
+puts "============"
+puts "BUC60848"
+puts "============"
+puts ""
+
+pload QAcommands
+
+restore [locate_data_file BUC60848.brep] a
+puts [checkshape a]
+
+tcopy a res
+
+set Flag 0
+
+set Res [ catch { BUC60848 a } ]
+if { $Res != 0 } {
+ invert a
+ set Flag 1
+ puts ""
+}
+
+if { $Flag == 1 } {
+ set Res [ catch { BUC60848 a } ]
+ if { $Res != 0 } {
+ set Flag 2
+ }
+ puts ""
+}
+
+if { $Flag == 2 } {
+ puts "TEST FINISHED. RESULT IS BAD. Faulty"
+ puts ""
+}
+
+if { $Flag == 1 } {
+ puts "TEST FINISHED. RESULT IS OK. SHAPE HAS BEEN INVERTED."
+ puts ""
+}
+
+if { $Flag == 0 } {
+ puts "TEST FINISHED. RESULT IS OK."
+ puts ""
+}
+
--- /dev/null
+
+puts "========"
+puts "BUC60852"
+puts "BUC60923"
+puts "========"
+
+pload QAcommands
+
+set bndbox_X1 0
+set bndbox_Y1 0
+set bndbox_Z1 0
+set bndbox_X2 30
+set bndbox_Y2 10
+set bndbox_Z2 20
+
+set point_1_1_X -20
+set point_1_1_Y -5
+set point_1_1_Z 10
+set point_1_2_X 50
+set point_1_2_Y 15
+set point_1_2_Z 10
+
+vertex vertex_1_1 $point_1_1_X $point_1_1_Y $point_1_1_Z
+vertex vertex_1_2 $point_1_2_X $point_1_2_Y $point_1_2_Z
+
+edge edge_1 vertex_1_1 vertex_1_2
+
+puts ""
+
+set point_2_1_X -20
+set point_2_1_Y -10
+set point_2_1_Z 10
+set point_2_2_X 50
+set point_2_2_Y -10
+set point_2_2_Z 10
+
+vertex vertex_2_1 $point_2_1_X $point_2_1_Y $point_2_1_Z
+vertex vertex_2_2 $point_2_2_X $point_2_2_Y $point_2_2_Z
+
+edge edge_2 vertex_2_1 vertex_2_2
+
+puts ""
+
+box bndbox $bndbox_X1 $bndbox_Y1 $bndbox_Z1 $bndbox_X2 $bndbox_Y2 $bndbox_Z2
+
+
+line line_1 $point_1_1_X $point_1_1_Y $point_1_1_Z [ expr { $point_1_1_X - $point_1_2_X } ] [ expr { $point_1_1_Y - $point_1_2_Y } ] [ expr { $point_1_1_Z - $point_1_2_Z } ]
+
+line line_2 $point_2_1_X $point_2_1_Y $point_2_1_Z [ expr { $point_2_1_X - $point_2_2_X } ] [ expr { $point_2_1_Y - $point_2_2_Y } ] [ expr { $point_2_1_Z - $point_2_2_Z } ]
+
+puts ""
+
+set result1 [BUC60852 edge_1 $bndbox_X1 $bndbox_Y1 $bndbox_Z1 $bndbox_X2 $bndbox_Y2 $bndbox_Z2]
+if {${result1} != "Line that lies on edge intersects the box\n"} {
+ puts "BUC60852: Error; (case 1)"
+} else {
+ puts "BUC60852: OK; (case 1)"
+}
+
+puts ""
+
+set result2 [BUC60852 edge_2 $bndbox_X1 $bndbox_Y1 $bndbox_Z1 $bndbox_X2 $bndbox_Y2 $bndbox_Z2]
+if {${result2} != "Line that lies on edge does not intersect the box\n"} {
+ puts "BUC60852: Error; (case 2)"
+} else {
+ puts "BUC60852: OK; (case 2)"
+}
+
--- /dev/null
+puts "TODO OCC12345 ALL: BUC60854: Error"
+
+puts "========"
+puts "BUC60854"
+puts "========"
+
+pload QAcommands
+
+plane test_plane
+mkface test_face test_plane 0 1 0 1
+
+vertex test_vertex_1 0 0.5 0
+vertex test_vertex_2 1 0.5 0
+edge test_edge test_vertex_1 test_vertex_2
+
+splitshape test_shape test_face test_face test_edge
+
+explode test_shape f
+
+renamevar test_shape_1 test_face
+
+vertex test_vertex_3 0.2 0.5 0
+vertex test_vertex_4 0.8 0.5 0
+edge test_edge_1 test_vertex_3 test_vertex_4
+
+vertex test_vertex_5 0 1 0
+edge test_edge_2 test_vertex_5 test_vertex_3
+
+vertex test_vertex_6 1 1 0
+edge test_edge_3 test_vertex_4 test_vertex_6
+
+BUC60854 result test_shape test_face test_edge_2 test_edge_3 @ test_edge test_edge_1
+
+erase test_plane
+
+regexp {FACE +: +([-0-9.+eE]+)} [numshapes result] full FACE_num
+
+if {${FACE_num} != 3} {
+ puts "BUC60854: Error"
+}
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "BUC60868"
+puts "========"
+puts ""
+
+pload QAcommands
+
+restore [locate_data_file buc60868.brep] sh
+puts [checkshape sh]
+
+BUC60868 result sh
+puts [checkshape result]
+
+set len [llength [explode result w]]
+if { $len != 3 } {
+ puts "Error : the number of curves is $len, but it should be 3."
+}
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "BUC60870"
+puts "========"
+
+pload QAcommands
+
+vertex vertex_1 0 0 0
+vertex vertex_2 0 1 0
+vertex vertex_3 0 0.3 1
+
+edge edge_1 vertex_1 vertex_2
+
+set result [BUC60870 test_result edge_1 vertex_3 2.0]
+
+if {[llength ${result}] < 4} {
+ puts "BUC60870: Error; must be 3 solutions"
+} else {
+ set MinimumDistance [dval test_result_val]
+ set TheorMinimumDistance 1.0
+ set percent_max 1.0
+ set percent [expr abs(${MinimumDistance} - ${TheorMinimumDistance}) / ${TheorMinimumDistance} * 100.]
+ if {${percent} > ${percent_max}} {
+ puts "MinimumDistance=${MinimumDistance}"
+ puts "TheorMinimumDistance=${TheorMinimumDistance}"
+ puts "percent=${percent}"
+ puts "percent_max=${percent_max}"
+ puts "BUC60870: Error; bad value of minimum distance"
+ } else {
+ puts "BUC60870: OK"
+ }
+}
+
+set 2dviewer 0
+
--- /dev/null
+
+puts "========"
+puts "BUC60889"
+puts "BUC60947"
+puts "========"
+
+pload QAcommands
+
+set bndbox_X1 0
+set bndbox_Y1 0
+set bndbox_Z1 0
+set bndbox_X2 30
+set bndbox_Y2 10
+set bndbox_Z2 20
+
+set point_1_1_X -30
+set point_1_1_Y -10
+set point_1_1_Z 5
+set point_1_2_X -30
+set point_1_2_Y -10
+set point_1_2_Z 15
+
+set point_1_3_X -15
+set point_1_3_Y -5
+set point_1_3_Z 5
+
+set dx_1 [ expr { $point_1_3_X - $point_1_1_X } ]
+set dy_1 [ expr { $point_1_3_Y - $point_1_1_Y } ]
+set dz_1 [ expr { $point_1_3_Z - $point_1_1_Z } ]
+
+point point_1_1 $point_1_1_X $point_1_1_Y $point_1_1_Z
+point point_1_2 $point_1_2_X $point_1_2_Y $point_1_2_Z
+polyline p_line_1 $point_1_1_X $point_1_1_Y $point_1_1_Z $point_1_2_X $point_1_2_Y $point_1_2_Z
+vertex vertex_1_1 $point_1_1_X $point_1_1_Y $point_1_1_Z
+vertex vertex_1_2 $point_1_3_X $point_1_3_Y $point_1_3_Z
+edge edge_1 vertex_1_1 vertex_1_2
+
+puts ""
+
+set point_2_1_X 30
+set point_2_1_Y 10
+set point_2_1_Z -5
+set point_2_2_X 30
+set point_2_2_Y 10
+set point_2_2_Z -15
+
+set point_2_3_X 0
+set point_2_3_Y 10
+set point_2_3_Z -5
+
+set dx_2 [ expr { $point_2_3_X - $point_2_1_X } ]
+set dy_2 [ expr { $point_2_3_Y - $point_2_1_Y } ]
+set dz_2 [ expr { $point_2_3_Z - $point_2_1_Z } ]
+
+point point_2_1 $point_2_1_X $point_2_1_Y $point_2_1_Z
+point point_2_2 $point_2_2_X $point_2_2_Y $point_2_2_Z
+polyline p_line_2 $point_2_1_X $point_2_1_Y $point_2_1_Z $point_2_2_X $point_2_2_Y $point_2_2_Z
+vertex vertex_2_1 $point_2_1_X $point_2_1_Y $point_2_1_Z
+vertex vertex_2_2 $point_2_3_X $point_2_3_Y $point_2_3_Z
+edge edge_2 vertex_2_1 vertex_2_2
+
+puts ""
+
+box bndbox $bndbox_X1 $bndbox_Y1 $bndbox_Z1 $bndbox_X2 $bndbox_Y2 $bndbox_Z2
+
+
+line line_1_1 $point_1_1_X $point_1_1_Y $point_1_1_Z $dx_1 $dy_1 $dz_1
+line line_1_2 $point_1_2_X $point_1_2_Y $point_1_2_Z $dx_1 $dy_1 $dz_1
+
+line line_2_1 $point_2_1_X $point_2_1_Y $point_2_1_Z $dx_2 $dy_2 $dz_2
+line line_2_2 $point_2_2_X $point_2_2_Y $point_2_2_Z $dx_2 $dy_2 $dz_2
+
+puts ""
+
+set result1 [BUC60889 point_1_1 point_1_2 edge_1 $bndbox_X1 $bndbox_Y1 $bndbox_Z1 $bndbox_X2 $bndbox_Y2 $bndbox_Z2]
+
+if {${result1} != "The band intersects the box\n"} {
+ puts "BUC60889: Error; (case 1)"
+} else {
+ puts "BUC60889: OK; (case 1)"
+}
+
+puts ""
+
+set result2 [BUC60889 point_2_1 point_2_2 edge_2 $bndbox_X1 $bndbox_Y1 $bndbox_Z1 $bndbox_X2 $bndbox_Y2 $bndbox_Z2]
+
+if {${result2} != "The band lies out of the box\n"} {
+ puts "BUC60889: Error; (case 2)"
+} else {
+ puts "BUC60889: OK; (case 2)"
+}
+
+
--- /dev/null
+
+puts "============"
+puts "BUC60895"
+puts "============"
+puts ""
+##############################################################
+##If give command "sameparameter edge" on attached edge in the DRAW this command hang.
+##############################################################
+
+restore [locate_data_file BUC60895.brep] result
+
+fsameparameter result
+puts [checkshape result]
+
+set check_square 1
+set length 12.6012
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "BUC60897"
+puts "========"
+
+pload QAcommands
+
+if [catch { set result [BUC60897] } ] {
+ puts "BUC60897: Error; (case 1)"
+} else {
+ set len [llength ${result}]
+ if {${len} < 21} {
+ puts "length = ${len}"
+ puts "BUC60897: Error; (case 2)"
+ } else {
+ set circle_X [lindex ${result} 3]
+ set circle_Y [lindex ${result} 5]
+ set circle_R [lindex ${result} 7]
+ set tangency1_X [lindex ${result} 11]
+ set tangency1_Y [lindex ${result} 13]
+ set tangency2_X [lindex ${result} 17]
+ set tangency2_Y [lindex ${result} 19]
+
+ set x1 [expr abs(${tangency1_X} - ${circle_X})]
+ set y1 [expr abs(${tangency1_Y} - ${circle_Y})]
+ set R1 [expr sqrt(${x1} * ${x1} + ${y1} * ${y1})]
+
+ set x2 [expr abs(${tangency2_X} - ${circle_X})]
+ set y2 [expr abs(${tangency2_Y} - ${circle_Y})]
+ set R2 [expr sqrt(${x2} * ${x2} + ${y2} * ${y2})]
+
+ set maxdelta 1.0
+ set delta_R1 [expr abs(${R1} - ${circle_R}) / ${circle_R} * 100.]
+ set delta_R2 [expr abs(${R2} - ${circle_R}) / ${circle_R} * 100.]
+
+ if {${delta_R1} > ${maxdelta}} {
+ puts "circle_X = ${circle_X}"
+ puts "circle_Y = ${circle_Y}"
+ puts "circle_R = ${circle_R}"
+ puts "tangency1_X = ${tangency1_X}"
+ puts "tangency1_Y = ${tangency1_Y}"
+ puts "x1 = ${x1}"
+ puts "y1 = ${y1}"
+ puts "R1 = ${R1}"
+ puts "delta_R1 = ${delta_R1}"
+ puts "maxdelta = ${maxdelta}"
+ puts "BUC60897: Error; (case 3)"
+ } else {
+ puts "BUC60897: OK; (case 1)"
+ }
+
+ if {${delta_R2} > ${maxdelta}} {
+ puts "circle_X = ${circle_X}"
+ puts "circle_Y = ${circle_Y}"
+ puts "circle_R = ${circle_R}"
+ puts "tangency2_X = ${tangency2_X}"
+ puts "tangency2_Y = ${tangency2_Y}"
+ puts "x2 = ${x2}"
+ puts "y2 = ${y2}"
+ puts "R2 = ${R2}"
+ puts "delta_R2 = ${delta_R2}"
+ puts "maxdelta = ${maxdelta}"
+ puts "BUC60897: Error; (case 4)"
+ } else {
+ puts "BUC60897: OK; (case 2)"
+ }
+
+ }
+}
+
+set 3dviewer 0
+
+
--- /dev/null
+
+puts "============"
+puts "BUC60911"
+puts "============"
+
+#####################################################
+## Bad value of the volume of the shape.
+#####################################################
+
+restore [locate_data_file BUC60911.brep] result
+invert result
+
+set check_square 1
+set square 16353.8
+set 2dviewer 0
--- /dev/null
+
+puts "========"
+puts "BUC60924"
+puts "========"
+puts ""
+
+##################################################
+## ShapeAnalysisStd_Curve::IsPlanar works incorrectly with a conic curve.
+##################################################
+
+pload QAcommands
+
+ellipse el 0 0 1 20 10
+
+set result1 [BUC60924 el 0 0 1]
+
+if {${result1} != "The curve is planar !\n"} {
+ puts "BUC60924: Error"
+} else {
+ puts "BUC60924: OK"
+}
+
+set 3dviewer 1
+
--- /dev/null
+
+puts "==========="
+puts " BUC60955"
+puts "==========="
+
+puts "Restoring face from file"
+restore [locate_data_file buc60955.brep] result
+puts [checkshape result]
+
+build3d result
+
+set check_square 1
+set square 8464.65
+set 2dviewer 0
+
--- /dev/null
+
+puts "==========="
+puts " BUC60960"
+puts "==========="
+
+proc do_offsets {i} {
+ global c c1 c2 c3 c4 c5
+
+ set poles {{0 0 1} {0 1 1} {1 1 1} {1 0 1} {2 0 1} {2 -1 1} {1 -1 1} \
+ {1 -2 1} {0 -2 1} {0 -1 1} {-1 -1 1} {-1 0 1}}
+ set knots {{0 1} {1 1} {2 1} {3 1} {4 1} {5 1} {6 1} {7 1} {8 1} {9 1} \
+ {10 1} {11 1} {12 1}}
+ eval 2dpbsplinecurve c 3 [llength $knots] [join $knots] [join $poles]
+
+
+ if [catch {offset c1 c 0.1}] {puts "while creating c1 at step $i"}
+ if [catch {offset c2 c 0.2}] {puts "while creating c2 at step $i"}
+ if [catch {offset c3 c 0.3}] {puts "while creating c3 at step $i"}
+ if [catch {offset c4 c 0.4}] {puts "while creating c4 at step $i"}
+ if [catch {offset c5 c 0.5}] {puts "while creating c5 at step $i"}
+ if [catch {offset c6 c 0.6}] {puts "while creating c6 at step $i"}
+ if [catch {offset c7 c 0.7}] {puts "while creating c7 at step $i"}
+ if [catch {offset c8 c 0.8}] {puts "while creating c8 at step $i"}
+}
+
+for {set i 0} {$i < 10} {incr i} {
+ do_offsets $i
+}
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60965"
+puts "========================"
+
+restore [locate_data_file buc60965-c.draw] c
+restore [locate_data_file buc60965-s.draw] s
+
+project result c s
+
+regexp {The+ length+ result+ is +([-0-9.+eE]+)} [length result] full len
+set y [expr 3.e5+int(1.e5*($len-round($len)))]
+
+if { $y != 314196.0 } {
+ puts "Results is incorrect"
+}
+
+set 2dviewer 0
+
+
+
+
+
+
--- /dev/null
+
+puts "========"
+puts "BUC60967"
+puts "========"
+puts ""
+
+restore [locate_data_file buc60967.draw] bs2
+
+to3d result bs2
+
+set 3dviewer 0
+
+
+
--- /dev/null
+
+puts "========================"
+puts "BUC60968"
+puts "========================"
+
+restore [locate_data_file buc60968-c.draw] c
+restore [locate_data_file buc60968-s1.draw] s1
+
+set che [extrema c s1]
+set err [llength $che]
+if { $err == 0} {
+ puts "Error : command extrema does NOT work properly"
+}
+
+
+
--- /dev/null
+
+puts "========="
+puts "BUC61006"
+puts "========="
+puts ""
+#########################################################
+## Checkshape says that face is valid but it inludes selfintersecting wire.
+#########################################################
+
+restore [locate_data_file buc61006.brep] result
+decho off
+set ch [checkshape result]
+decho on
+
+if {![string compare $ch "This shape seems to be valid"]} {
+ puts "Error : the checkshape command returns incorrect result."
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error : here is shading problem"
+
+puts "============"
+puts "FRA62476"
+puts ""
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+puts ""
+
+restore [locate_data_file fra62476a.brep] result
+puts [checkshape result]
+
+tclean result
+incmesh result .1
+triangles result
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri != 93 && $nod != 56 } {
+ puts "Error : here is shading problem"
+}
+
+set 3dviewer 0
+
+
+
--- /dev/null
+
+puts "=========="
+puts "FRA62476"
+puts ""
+puts "=================================="
+puts "It takes visual check for this BUG"
+puts "=================================="
+puts ""
+
+restore [locate_data_file fra62476b.brep] result
+puts [checkshape result]
+
+tclean result
+incmesh result .1
+triangles result
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri !=239 && $nod != 145 } {
+ puts "Shady FRA62476: here may be shading problem, number tri & nod
+ are changed"
+}
+
+set 3dviewer 0
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The command is not valid. The volume is 0."
+puts "TODO OCC12345 ALL: Error : The volume of result shape is 0"
+
+puts "================"
+puts "BUC61023"
+puts "OCC65"
+puts "================"
+puts ""
+###############################################
+## Possibility to make a revolution to have a solid with a volume=0 m3
+###############################################
+
+restore [locate_data_file OCC65.brep] sh
+puts [checkshape sh]
+
+revol result sh 0 0 0 0 0 1 360
+
+puts [checkshape result]
+
+set check_square 1
+set volume 10
+set 2dviewer 0
+
+
+
--- /dev/null
+
+puts "================"
+puts "OCC7"
+puts "================"
+puts ""
+#########################################################
+## Extrema_ExtPElS throw the exception "gp_VectorWithNullMagnitude".
+#########################################################
+
+ptorus tor 3 1
+explode tor f
+vertex vv 0 3 0
+
+distmini result vv tor_1
+set info [dump result]
+
+if { [regexp "TShape # 1 : EDGE" $info] != 1
+ || [regexp "TShape # 2 : VERTEX" $info] != 1
+ || [regexp "TShape # 3 : VERTEX" $info] != 1 } {
+ puts "Error : Result is incorrect"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "============"
+puts "BUC60861"
+puts "OCC75"
+puts "============"
+puts ""
+puts "(case 1)"
+###############################
+## Incorrect work of section Shell-Shell.
+###############################
+
+restore [locate_data_file BUC60861_gap.brep] ss
+checkshape ss
+
+plane pl1 25680.2288 21428 9995 1 0 0
+mkface f1 pl1 -4000 8000 -5000 5000
+bsection result ss f1 -a
+
+set good_len 9265
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full tol
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full len
+if { [expr 1.*abs(${good_len} - $len)] > $tol } {
+ puts "Error : Length is bad"
+}
+
+set 2dviewer 0
+
+
+
+
--- /dev/null
+puts "============"
+puts "BUC60861"
+puts "OCC75"
+puts "============"
+puts ""
+puts "case 2"
+###############################
+## Incorrect work of section Shell-Shell.
+###############################
+
+restore [locate_data_file BUC60861_gap1.brep] ss
+checkshape ss
+
+plane pl1 25680.2288 21428 9995 1 0 0
+mkface f1 pl1 -1 11 -5 5
+bsection result ss f1 -a
+
+set good_len 10.0009
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full tol
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full len
+if { [expr 1.*abs(${good_len} - $len)] > $tol } {
+ puts "Error : len is bad"
+}
+
+set 2dviewer 0
+
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error : Volume of OCC76-1.brep is calculated wrongly becuase 3020.94 value must be but 3050.41 is"
+puts "TODO OCC12345 ALL: Error : Volume of OCC76-2.brep is calculated wrongly because 9871.39 value must be but 10153.6 is"
+
+puts "================"
+puts "OCC76"
+puts "================"
+puts ""
+
+restore [locate_data_file shading_177.brep] sh1
+puts [checkshape sh1]
+regexp {Mass +: +([-0-9.+eE]+)} [vprops sh1] full l1
+
+restore [locate_data_file OCC76-2.brep] sh2
+puts [checkshape sh2]
+regexp {Mass +: +([-0-9.+eE]+)} [vprops sh2] full l2
+
+if { [expr abs([expr $l1 - 3020.94])] > 0.00999} {
+ puts "Error : Volume of OCC76-1.brep is calculated wrongly becuase 3020.94 value must be but $l1 is"
+} else {
+ puts " Volume of OCC76-1.brep is right calculated"
+}
+
+if { [expr abs([expr $l2 - 9871.39 ])] > 0.00999} {
+ puts "Error : Volume of OCC76-2.brep is calculated wrongly because 9871.39 value must be but $l2 is"
+} else {
+ puts " Volume of OCC76-2.brep is right calculated"
+}
--- /dev/null
+puts "================"
+puts "OCC8"
+puts "================"
+puts ""
+###################################################
+## BRepTools_WireExplorere gives not all edges from a wire
+###################################################
+
+pload XDE
+restore [locate_data_file OCC8.brep] result
+
+puts [checkshape result]
+
+explode result w
+set info [expwire result_1 sh]
+
+if { [regexp "BRepTools_WireExplorer donne 16 Edges" $info] != 1 } {
+ puts "Error : BRepTools_WireExplorer gives WRONG number of edges."
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "BUC60963"
+puts "OCC88"
+puts "========"
+puts ""
+######################################################
+# BUC60963. can not project vertex to face
+######################################################
+
+restore [locate_data_file OCC88.brep] sh
+
+set che [checkshape sh]
+
+explode sh f
+puts [checkshape sh_1]
+puts [checkshape sh_2]
+
+mksurface surf1 sh_1
+mksurface surf2 sh_2
+puts "Make line from pos(135; 11; 0) with dir (0;0;1) "
+line l 135 11 0 0 0 1
+
+intersect res1 l surf1
+intersect res2 l surf2
+#set first1 [whatis res1]
+#set second1 [whatis res2]
+
+puts "Try to intersect with (135;10.9995;0) (0;0;1)"
+line ll 135 10.9995 0 0 0 1
+intersect res_1 ll surf1
+intersect res_2 ll surf2
+#set first2 [whatis res_1]
+#set second2 [whatis res_2]
+
+proc CalculatePercent {value good_value} {
+ if {${good_value} == 0. && ${value} == 0.} {
+ set percent 0.
+ } else {
+ set percent [expr abs(${value} - ${good_value}) / double(${good_value}) * 100.]
+ }
+ return ${percent}
+}
+
+set IsGood 1
+set percent_max 0.1
+if {[info exists res1] == 0} {
+ puts "Faulty OCC88 (case 2)"
+ set IsGood 0
+}
+if {[info exists res2] == 1} {
+ puts "Faulty OCC88 (case 3)"
+ set IsGood 0
+}
+
+if {[info exists res_1] == 0} {
+ puts "Faulty OCC88 (case 4)"
+ set IsGood 0
+}
+if {[info exists res_2] == 1} {
+ puts "Faulty OCC88 (case 5)"
+ set IsGood 0
+}
+
+if {${IsGood} == 1} {
+ set dump_list1 [split [dump res1] " :,\n"]
+ set x1 [lindex ${dump_list1} 10]
+ set y1 [lindex ${dump_list1} 12]
+ set z1 [lindex ${dump_list1} 14]
+
+ set dump_list2 [split [dump res_1] " :,\n"]
+ set x2 [lindex ${dump_list2} 10]
+ set y2 [lindex ${dump_list2} 12]
+ set z2 [lindex ${dump_list2} 14]
+
+ set x_percent [CalculatePercent ${x1} ${x2}]
+ set y_percent [CalculatePercent ${y1} ${y2}]
+ set z_percent [CalculatePercent ${z1} ${z2}]
+
+ puts "x1 = ${x1}"
+ puts "x2 = ${x2}"
+ puts "x_percent = ${x_percent}\n"
+
+ puts "y1 = ${y1}"
+ puts "y2 = ${y2}"
+ puts "y_percent = ${y_percent}\n"
+
+ puts "z1 = ${z1}"
+ puts "z2 = ${z2}"
+ puts "z_percent = ${z_percent}\n"
+
+ if {${x_percent} > ${percent_max}} {
+ puts "OCC88 Faulty (case 6)"
+ set IsGood 0
+ }
+ if {${y_percent} > ${percent_max}} {
+ puts "OCC88 Faulty (case 7)"
+ set IsGood 0
+ }
+ if {${z_percent} > ${percent_max}} {
+ puts "OCC88 Faulty (case 8)"
+ set IsGood 0
+ }
+}
+
+if {${IsGood} == 1} {
+ puts "OCC88 OK"
+}
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC9"
+
+puts "================"
+puts "OCC9"
+puts "================"
+puts ""
+
+pload QAcommands
+restore [locate_data_file OCC9-path.draw] d
+############### checkshape d # is not a topological shape
+restore [locate_data_file OCC9-cur1.draw] b
+############### checkshape b # is not a topological shape
+restore [locate_data_file OCC9-cur2.draw] c
+############### checkshape c # is not a topological shape
+
+## compute radius
+cvalue b 0 x y z
+cvalue b 0 P0
+vertex V [dval x] [dval y] [dval z]
+
+mkedge E d
+distmini dm V E
+
+## make pipe
+OCC9 res d b c [dval dm_val]
+
+## check parametrization
+
+# puts "Path 0: [dval x] [dval y] [dval z]"
+
+# cvalue b 1 x y z
+# cvalue b 1 P1
+# puts "Path 1: [dval x] [dval y] [dval z]"
+
+# svalue res 0 0 x y z
+# svalue res 0 0 S0
+# puts "Surf 0 0: [dval x] [dval y] [dval z]"
+
+# svalue res 0 1 x y z
+# svalue res 0 1 S1
+# puts "Surf 0 1: [dval x] [dval y] [dval z]"
+
+set n 1
+set sum 0
+for {set i -470} {$i < 240} {incr i 25} {
+# cvalue d $i "P$n"
+# svalue res 0 $i "S$n"
+# puts "donly res P$n S$n"
+ incr n
+ # puts "n = $n i = $i"
+
+ ####cvalue d $i x y z
+ cvalue b $i x y z
+ svalue res 0 $i xs ys zs
+ set dist [expr sqrt (\
+ ( [dval x ] - [dval xs ] ) * ( [dval x ] - [dval xs ] )\
+ + ( [dval y ] - [dval ys ] ) * ( [dval y ] - [dval ys ] )\
+ + ( [dval z ] - [dval zs ] ) * ( [dval z ] - [dval zs ] )\
+ ) ]
+ set sum [expr $sum + $dist ]
+ puts "1-st Dist at $i : $dist"
+
+ ####cvalue d $i x y z
+ cvalue c $i x y z
+ ####svalue res 0 $i xs ys zs
+ svalue res 1 $i xs ys zs
+ set dist [expr sqrt (\
+ ( [dval x ] - [dval xs ] ) * ( [dval x ] - [dval xs ] )\
+ + ( [dval y ] - [dval ys ] ) * ( [dval y ] - [dval ys ] )\
+ + ( [dval z ] - [dval zs ] ) * ( [dval z ] - [dval zs ] )\
+ ) ]
+ set sum [expr $sum + $dist ]
+ puts "2-nd Dist at $i : $dist"
+
+}
+####puts "\n Avg dist on $n intervals: [expr $sum / $n ]"
+set Avg_dist [expr $sum / (2 * $n) ]
+puts "\n Avg dist on $n intervals: ${Avg_dist}"
+
+set check_dist [dval dm_val]
+puts "\n check_dist = ${check_dist}"
+if { ${Avg_dist} > ${check_dist} } {
+ puts "\n Faulty OCC9"
+} else {
+ puts "\n OCC9: OK"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Faulty OCC9"
+
+puts "================"
+puts "OCC9"
+puts "================"
+puts ""
+
+pload QAcommands
+restore [locate_data_file OCC9-path.draw] d
+############### checkshape d # is not a topological shape
+restore [locate_data_file OCC9-cur1.draw] b
+############### checkshape b # is not a topological shape
+restore [locate_data_file OCC9-cur2.draw] c
+############### checkshape c # is not a topological shape
+
+## compute radius
+cvalue b 0 x y z
+cvalue b 0 P0
+vertex V [dval x] [dval y] [dval z]
+
+mkedge E d
+distmini dm V E
+
+## make pipe
+set tolerance 0.0001
+OCC9 res d b c [dval dm_val] ${tolerance}
+
+## check parametrization
+
+# puts "Path 0: [dval x] [dval y] [dval z]"
+
+# cvalue b 1 x y z
+# cvalue b 1 P1
+# puts "Path 1: [dval x] [dval y] [dval z]"
+
+# svalue res 0 0 x y z
+# svalue res 0 0 S0
+# puts "Surf 0 0: [dval x] [dval y] [dval z]"
+
+# svalue res 0 1 x y z
+# svalue res 0 1 S1
+# puts "Surf 0 1: [dval x] [dval y] [dval z]"
+
+set n 1
+set sum 0
+for {set i -470} {$i < 240} {incr i 25} {
+# cvalue d $i "P$n"
+# svalue res 0 $i "S$n"
+# puts "donly res P$n S$n"
+ incr n
+ # puts "n = $n i = $i"
+
+ ####cvalue d $i x y z
+ cvalue b $i x y z
+ svalue res 0 $i xs ys zs
+ set dist [expr sqrt (\
+ ( [dval x ] - [dval xs ] ) * ( [dval x ] - [dval xs ] )\
+ + ( [dval y ] - [dval ys ] ) * ( [dval y ] - [dval ys ] )\
+ + ( [dval z ] - [dval zs ] ) * ( [dval z ] - [dval zs ] )\
+ ) ]
+ set sum [expr $sum + $dist ]
+ puts "1-st Dist at $i : $dist"
+
+ ####cvalue d $i x y z
+ cvalue c $i x y z
+ ####svalue res 0 $i xs ys zs
+ svalue res 1 $i xs ys zs
+ set dist [expr sqrt (\
+ ( [dval x ] - [dval xs ] ) * ( [dval x ] - [dval xs ] )\
+ + ( [dval y ] - [dval ys ] ) * ( [dval y ] - [dval ys ] )\
+ + ( [dval z ] - [dval zs ] ) * ( [dval z ] - [dval zs ] )\
+ ) ]
+ set sum [expr $sum + $dist ]
+ puts "2-nd Dist at $i : $dist"
+
+}
+####puts "\n Avg dist on $n intervals: [expr $sum / $n ]"
+set Avg_dist [expr $sum / (2 * $n) ]
+puts "\n Avg dist on $n intervals: ${Avg_dist}"
+
+set check_dist ${tolerance}
+puts "\n check_dist = ${check_dist}"
+if { ${Avg_dist} > ${check_dist} } {
+ puts "\n Faulty OCC9"
+} else {
+ puts "\n OCC9: OK"
+}
+
+set 2dviewer 0
--- /dev/null
+if { [info exist check_square] } {
+ if { [info exists square] } {
+ set prop "square"
+ set mass $square
+ regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m
+ }
+
+ if { [info exists volume] } {
+ set prop "volume"
+ set mass $volume
+ regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full m
+ }
+
+ if { [info exists length] } {
+ set prop "length"
+ set mass $length
+ regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full m
+ puts "checksection"
+ puts [checksection result]
+ }
+
+ #if mass (length or square) is empty in test case then result should be an empty shape.
+ if { [string compare "$mass" "empty"] != 0 } {
+ if { $m == 0 } {
+ puts "Error : The command is not valid. The $prop is 0."
+ }
+ if { $mass > 0 } {
+ puts "The expected $prop is $mass"
+ }
+ #check of change of square is < 1%
+ if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
+ puts "Error : The $prop of result shape is $m"
+ }
+ } else {
+ if { $m != 0 } {
+ puts "Error : The command is not valid. The $prop is $m"
+ }
+ }
+}
+if { [info exists nb_v_good] } {
+ regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v
+ if { ${nb_v} != ${nb_v_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_v_good} vertexes instead of ${nb_v}"
+ } else {
+ puts "Result shape contains ${nb_v} vertexes"
+ }
+}
+
+if { [info exists nb_e_good] } {
+ regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e
+ if { ${nb_e} != ${nb_e_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_e_good} edges instead of ${nb_e}"
+ } else {
+ puts "Result shape contains ${nb_e} edges"
+ }
+}
+
+if { [info exists nb_w_good] } {
+ regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w
+ if { ${nb_w} != ${nb_w_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_w_good} wires instead of ${nb_w}"
+ } else {
+ puts "Result shape contains ${nb_w} wires"
+ }
+}
+
+if { [info exists nb_f_good] } {
+ regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f
+ if { ${nb_f} != ${nb_f_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_f_good} faces instead of ${nb_f}"
+ } else {
+ puts "Result shape contains ${nb_f} faces"
+ }
+}
+
+if { [info exists nb_sh_good] } {
+ regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh
+ if { ${nb_sh} != ${nb_sh_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_sh_good} shells instead of ${nb_sh}"
+ } else {
+ puts "Result shape contains ${nb_sh} shells"
+ }
+}
+
+if { [info exists nb_sol_good] } {
+ regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol
+ if { ${nb_sol} != ${nb_sol_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_sol_good} solids instead of ${nb_sol}"
+ } else {
+ puts "Result shape contains ${nb_sol} solids"
+ }
+}
+
+if { [info exists nb_compsol_good] } {
+ regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol
+ if { ${nb_compsol} != ${nb_compsol_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_compsol_good} compsolids instead of ${nb_compsol}"
+ } else {
+ puts "Result shape contains ${nb_compsol} compsolids"
+ }
+}
+
+if { [info exists nb_compound_good] } {
+ regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound
+ if { ${nb_compound} != ${nb_compound_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_compound_good} compounds instead of ${nb_compound}"
+ } else {
+ puts "Result shape contains ${nb_compound} compounds"
+ }
+}
+
+if { [info exists nb_shape_good] } {
+ regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape
+ if { ${nb_shape} != ${nb_shape_good} } {
+ puts "Error : Result shape is WRONG because it must contains ${nb_shape_good} shapes instead of ${nb_shape}"
+ } else {
+ puts "Result shape contains ${nb_shape} shapes"
+ }
+}
+
--- /dev/null
+puts "TODO OCC12345 ALL: StepFile Error"
+
+puts "========================"
+puts "BUC60992"
+puts "OCC98"
+puts "OCC133"
+puts "========================"
+puts ""
+#####################################################
+## BUC60992. STEP file cannot be translated to Open CASCADE.
+##Loading phase returns error status (though no exception raised).
+## Perhaps file is invalid (several fail messages have been output when loading).
+#####################################################
+
+stepread [locate_data_file stepBF3.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
+
+
--- /dev/null
+puts "TODO OCC12345 ALL: Exception Raised while reading Step File"
+puts "TODO OCC12345 ALL: Tcl Exception"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "========================"
+puts "BUC60991"
+puts "OCC97"
+puts "OCC133"
+puts "========================"
+puts ""
+#######################################################
+##Exception when translating a STEP file to Open CASCADE (loading phase).
+#######################################################
+
+stepread [locate_data_file buc60990.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Exception Raised while reading Step File"
+puts "TODO OCC12345 ALL: Tcl Exception"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "========================"
+puts "BUC60990"
+puts "OCC96"
+puts "OCC133"
+puts "========================"
+puts ""
+###########################################################
+## Exception when translating a STEP file to Open CASCADE (loading phase).
+###########################################################
+
+stepread [locate_data_file buc60990.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts "BUC60989"
+puts "OCC95"
+puts "OCC133"
+puts "========================"
+
+##########################################################
+## Exception when translating a STEP file to Open CASCADE (shape healing phase).
+## Exception is inside 2D intersector.
+##########################################################
+
+stepread [locate_data_file demo2.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC167"
+puts "========"
+
+stepread [locate_data_file OCC167.step] a *
+
+tpcompound result
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC171"
+puts "========"
+puts ""
+
+stepread [locate_data_file bm2_id_t4-A.stp] a1 *
+
+tpcompound result
+
+set 2dviewer 0
+
--- /dev/null
+puts "=========="
+puts "PRO19854"
+puts "=========="
+puts "Incorrect translation of one entity from STEP file in optimaze mode of C30."
+
+stepread [locate_data_file id_turbine-B.stp] a *
+
+puts [checkshape a_1]
+puts [checkshape a_1 r]
+
+renamevar a_1 result
+
+tpdraw 2637
+
+puts [checkshape tp_2637]
+puts [checkshape tp_2637 r]
+
+set 2dviewer 0
+
--- /dev/null
+puts "=========="
+puts "PRO19895"
+puts "=========="
+
+#############################################################################
+## There is wrong tolerance after reading of the model in optimaze mode (C30). Retrive entity number 2139 from file
+## "bm4_db_punch_a.stp" and will obtaine tolerance. It is very big and isolains extend from entity.
+#############################################################################
+
+stepread [locate_data_file bm4_db_punch_a.stp] a *
+
+tpcompound b
+isos b 0
+isos b 3
+tpcompound result
+
+tpdraw 2139
+
+puts [checkshape tp_2139]
+puts [checkshape tp_2139 r]
+
+set MaxTolerance [ lindex [ split [ lindex [tolerance tp_2139] 1 ] = ] 1 ]
+puts "MaxTolerance = $MaxTolerance"
+if { $MaxTolerance > 1 } {
+ puts "Error : Tolerance of shape is more then 1.0"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "================"
+puts "PRO20361"
+puts "case 1"
+puts "================"
+
+param read.step.product.mode OFF
+
+stepread [locate_data_file PRO20361-2.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
--- /dev/null
+puts "================"
+puts "PRO20361"
+puts "case 2"
+puts "================"
+
+param read.step.product.mode OFF
+stepread [locate_data_file PRO20361-1.stp] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "================"
+puts "PRO20361"
+puts "case 3"
+puts "================"
+
+param read.step.product.mode OFF
+stepread [locate_data_file PRO20361-3.stp] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "========================"
+puts "PRO20362"
+puts "========================"
+
+stepread [locate_data_file PRO20362.stp] a *
+
+explode a_1 f
+renamevar a_1 result
+
+puts [checkshape a_1_1]
+puts [checkshape a_1_1 r]
+
+set l [explode a_1_1 e]
+set n [llength $l]
+if { $n != 4 } {
+ puts "Error : The amount of edges in FIRST face is more than four"
+}
+
+puts [checkshape a_1_2]
+puts [checkshape a_1_2 r]
+
+set i [explode a_1_2 e]
+set m [llength $i]
+if { $m != 4 } {
+ puts "Faulty : The amount of edges in SECOND face is more than four"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC222"
+puts "========"
+puts ""
+
+#############################################
+##Regression in dev as compare C40 (bad tolerance after fixshape)
+#############################################
+
+stepread [locate_data_file trj3_s1-ac-214.stp] a *
+
+tpcompound result
+
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxFace
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxEdge
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxVertex
+
+if { $MaxFace > 1 || $MaxEdge > 1 || $MaxVertex > 1 } {
+ puts "Error : Tolerance of shape is more then 1.0"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC233"
+puts "========"
+puts "Problem during translation in dev in optimaze mode .Debug mode is OK)"
+
+stepread [locate_data_file Samtech_bottle.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC272"
+puts "========"
+
+cpulimit 7200
+
+stepread [locate_data_file 612319029MB-HEAD-CYLINDER.stp] a *
+
+tpcompound result
+if { [llength [whatis result]] == 3 } {
+ puts "Error : There is no result"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC272"
+puts "========"
+
+stepread [locate_data_file test-m020306-v1.stp] a *
+
+tpcompound result
+if { [llength [whatis result]] == 3 } {
+ puts "Error : There is no result"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC272"
+puts "========"
+
+
+stepread [locate_data_file test-m020306-v2.stp] a *
+
+tpcompound result
+if { [llength [whatis result]] == 3 } {
+ puts "Error : There is no result"
+}
+puts [checkshape result]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC29"
+puts "========"
+puts ""
+
+stepread [locate_data_file OCC29.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error on Record"
+
+puts "========"
+puts "OCC205"
+puts "OCC348"
+puts "BUC61003"
+puts "========"
+######################################
+## puts "Crash on importing STEP file"
+## CS_CONROD.stp
+######################################
+
+vinit
+stepread [locate_data_file BUC61003-1.stp] a *
+
+tpcompound result
+puts [checkshape result]
+
+vdisplay result
+vsetdispmode 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri == 0 || $nod == 0 } {
+ puts "Error : here is shading problem"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error on Record"
+
+puts "========"
+puts "OCC205"
+puts "OCC348"
+puts "BUC61003"
+puts "========"
+######################################
+## puts "Crash on importing STEP file"
+## CS_EXHAUST.stp
+######################################
+
+vinit
+stepread [locate_data_file BUC61003-2.stp] a *
+
+tpcompound result
+puts [checkshape result]
+
+vdisplay result
+vsetdispmode 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri == 0 || $nod == 0 } {
+ puts "Error : here is shading problem"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: Error on Record"
+
+puts "========"
+puts "OCC205"
+puts "OCC348"
+puts "BUC61003"
+puts "========"
+######################################
+## puts "Crash on importing STEP file"
+## JC_TOY_CAR.stp
+######################################
+
+cpulimit 4000
+
+vinit
+stepread [locate_data_file BUC61003-3.stp] a *
+
+tpcompound result
+puts [checkshape result]
+
+vdisplay result
+vsetdispmode 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri == 0 || $nod == 0 } {
+ puts "Error : here is shading problem"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "TODO OCC12345 ALL: Error on Record"
+
+puts "========"
+puts "OCC205"
+puts "OCC348"
+puts "BUC61003"
+puts "========"
+######################################
+## puts "Crash on importing STEP file"
+## JC_TURBINE.stp
+######################################
+cpulimit 7000
+
+vinit
+stepread [locate_data_file BUC61003-4.stp] a *
+
+tpcompound result
+puts [checkshape result]
+
+vdisplay result
+vsetdispmode 1
+vfit
+
+set info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $info full tri
+regexp { +([-0-9.+eE]+) +nodes} $info full nod
+
+if { $tri == 0 || $nod == 0 } {
+ puts "Error : here is shading problem"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC365"
+puts "========"
+puts ""
+
+cpulimit 3000
+
+stepread [locate_data_file BUC61004.stp] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
--- /dev/null
+puts "================"
+puts "OCC46"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC46.brep] sh
+explode sh e
+regexp {Mass +: +([-0-9.+eE]+)} [lprops sh_4] full l1
+regexp {Mass +: +([-0-9.+eE]+)} [lprops sh_7] full l2
+regexp {Mass +: +([-0-9.+eE]+)} [lprops sh_9] full l3
+
+set res1 [expr $l1+$l2+$l3]
+puts $res1
+
+#write stepfile
+######################################################################
+catch {exec rm ${imagedir}/sss.step}
+stepwrite a sh ${imagedir}/sss.step
+stepread ${imagedir}/sss.step ss *
+
+tpcompound result
+
+explode result e
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result_4] full t1
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result_7] full t2
+regexp {Mass +: +([-0-9.+eE]+)} [lprops result_9] full t3
+
+set res2 [expr $t1+$t2+$t3]
+puts $res2
+
+if {[expr abs([expr $res1 - $res2])] > 0.0001} then {
+ puts "Error : large difference between shapes"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "================"
+puts "OCC51"
+puts "================"
+puts ""
+
+puts " write STEP and IGES file "
+box b 12 34 56
+
+######################################################################
+catch {exec rm ${imagedir}/box.step}
+catch {exec rm ${imagedir}/box.igs}
+
+stepwrite a b ${imagedir}/box.step
+
+brepiges b ${imagedir}/box.igs
+####################################################
+dall
+puts " Read STEP file "
+stepread ${imagedir}/box.step a *
+
+puts " Read IGES file "
+igesbrep ${imagedir}/box.igs b *
+
+compound a_1 b_1 result
+puts [checkshape result]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts " OCC55 "
+puts "========================"
+########################################
+## After reading from STEP file invalid shape was obtained.
+########################################
+
+cpulimit 2000
+
+stepread [locate_data_file OCC55.stp] a *
+
+tpcompound result
+puts [checkshape result]
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts "BUC60624"
+puts "========================"
+
+stepread [locate_data_file buc60624a.stp] a *
+
+tpcompound result
+puts [checkshape result]
+
+set 2dviewer 0
--- /dev/null
+puts "========================"
+puts "BUC60809"
+puts "========================"
+
+################################################################
+### Reading file teststp.stp produces a sphere without restriction which is not usable in the viewer
+################################################################
+
+param read.step.product.mode OFF
+stepread [locate_data_file BUC60809.stp] a *
+
+tpcompound result
+puts [checkshape result]
+puts [checkshape result r]
+
+set 2dviewer 0
+
+
+
--- /dev/null
+puts "==========="
+puts "BUC60810"
+puts "==========="
+
+#################################################
+## Reading file sample.stp crashes.
+#################################################
+
+stepread [locate_data_file BUC60810.stp] a *
+
+tpcompound result
+
+set 2dviewer 0
--- /dev/null
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*"
+puts "TODO OCC12345 ALL: Faulty OCC294"
+puts "TODO OCC12345 ALL: Error : OCC294"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+puts "========================"
+puts " BUC60906 "
+puts "========================"
+
+cpulimit 3000
+pload QAcommands
+
+stepread [locate_data_file Samtech_carcasse_gauche_simpl3.stp] a *
+
+tpcompound com
+
+set AllEdgesList [explode com e]
+set list [split ${AllEdgesList}]
+set NumbEdges [llength ${list}]
+set delta 0.03
+set IsSmallEdges 0
+
+set IsOK 1
+
+for {set i 1} {${i} <= ${NumbEdges}} {incr i} {
+ set i_tolerance [maxtolerance com_${i}]
+ set i_list [split ${i_tolerance} "\n\t"]
+ set i_listLength [llength ${i_list}]
+ if { ${i_listLength} < 7 } then {
+ puts "BUC60906 - Error : i = ${i}"
+ puts "BUC60906 - Error : i_listLength = ${i_listLength}"
+ }
+ set i_EdgeList [lindex ${i_list} 3]
+ set i_MaxEdgeTolerance [lindex [split ${i_EdgeList}] [expr [llength [split ${i_EdgeList}] ] - 2] ]
+ #puts "i_MaxEdgeTolerance = ${i_MaxEdgeTolerance}"
+ if { ${i_MaxEdgeTolerance} > ${delta} } then {
+ set IsSmallEdges 1
+ puts "Remove ${i}-th small edge with a tolerance of ${delta} mm"
+
+ if [catch { OCC294 shape_result com com_${i} } result] {
+ puts "Error : OCC294"
+ set IsOK 0
+ break
+ }
+
+ renamevar shape_result com
+ }
+}
+if { ${IsOK} == 1 } {
+ if { ${IsSmallEdges} == 0 } {
+ puts "Error : here are not small edges"
+ set IsOK 0
+ }
+}
+
+if { ${IsOK} == 1 } {
+ set fullness [nbshapes com]
+ regexp {VERTEX +: +([-0-9.+eE]+)} $fullness full vert
+ regexp {EDGE +: +([-0-9.+eE]+)} $fullness full edg
+ if { $edg == 0 || $vert == 0 } {
+ puts "Error : it is Faulty result"
+ set IsOK 0
+ }
+}
+
+if { ${IsOK} == 1 } {
+ fixshape result com ${delta}
+ puts [ checkshape result]
+ puts [checkshape result r]
+}
+
+set 2dviewer 0
--- /dev/null
+puts "========================"
+puts "BUC60948"
+puts "========================"
+
+restore [locate_data_file pump4.brep] a_1
+puts [checkshape a_1]
+
+#####################################################################
+catch {exec rm ${imagedir}/buc60948.stp}
+stepwrite a a_1 ${imagedir}/buc60948.stp
+
+dall
+
+stepread ${imagedir}/buc60948.stp a *
+
+tpcompound result
+puts [checkshape result]
+
+set 2dviewer 0
+
+
+
--- /dev/null
+puts "================"
+puts "OCC125"
+puts "================"
+puts ""
+##################################
+## Exception during usage ShapeFix_Shell class.
+##################################
+
+restore [locate_data_file OCC125-1.brep] shell1
+
+fixshape result shell1 1e-7
+puts [checkshape result]
+
+set square 282.743
+
+set prop "square"
+set mass $square
+regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m
+
+if { [string compare "$mass" "empty"] != 0 } {
+ if { $m == 0 } {
+ puts "Error : The command is not valid. The $prop is 0."
+ }
+ if { $mass > 0 } {
+ puts "The expected $prop is $mass"
+ }
+ #check of change of square is < 1%
+ if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
+ puts "Error : The $prop of result shape is $m"
+ }
+} else {
+ if { $m != 0 } {
+ puts "Error : The command is not valid. The $prop is $m"
+ }
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "================"
+puts "OCC125"
+puts "================"
+puts ""
+##################################
+## Exception during usage ShapeFix_Shell class.
+##################################
+
+restore [locate_data_file OCC125-2.brep] shell2
+
+fixshape result shell2 1e-7
+puts [checkshape result]
+
+set square 282.743
+
+set prop "square"
+set mass $square
+regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m
+
+if { [string compare "$mass" "empty"] != 0 } {
+ if { $m == 0 } {
+ puts "Error : The command is not valid. The $prop is 0."
+ }
+ if { $mass > 0 } {
+ puts "The expected $prop is $mass"
+ }
+ #check of change of square is < 1%
+ if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
+ puts "Error : The $prop of result shape is $m"
+ }
+} else {
+ if { $m != 0 } {
+ puts "Error : The command is not valid. The $prop is $m"
+ }
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC168"
+puts "OCC279"
+puts "========"
+puts "Fix missing seam don't add seam "
+puts ""
+
+restore [locate_data_file OCC168.brep] a
+
+fixshape result a 1e-7
+puts [checkshape result]
+
+set square 992.596
+
+set prop "square"
+set mass $square
+regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m
+
+if { [string compare "$mass" "empty"] != 0 } {
+ if { $m == 0 } {
+ puts "Error : The command is not valid. The $prop is 0."
+ }
+ if { $mass > 0 } {
+ puts "The expected $prop is $mass"
+ }
+ #check of change of square is < 1%
+ if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
+ puts "Error : The $prop of result shape is $m"
+ }
+} else {
+ if { $m != 0 } {
+ puts "Error : The command is not valid. The $prop is $m"
+ }
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC169"
+puts "========"
+puts ""
+
+restore [locate_data_file OCC169.brep] a
+
+fixshape result a 1e-7
+puts [checkshape result]
+
+set square 6.27959
+
+set prop "square"
+set mass $square
+regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m
+
+if { [string compare "$mass" "empty"] != 0 } {
+ if { $m == 0 } {
+ puts "Error : The command is not valid. The $prop is 0."
+ }
+ if { $mass > 0 } {
+ puts "The expected $prop is $mass"
+ }
+ #check of change of square is < 1%
+ if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
+ puts "Error : The $prop of result shape is $m"
+ }
+} else {
+ if { $m != 0 } {
+ puts "Error : The command is not valid. The $prop is $m"
+ }
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC184"
+puts "========"
+#
+## Bad IGES/BREP translation
+#
+puts "FaceBrep must be identical FaceIGES!!!"
+puts "========"
+
+restore [locate_data_file OCC184.brep] FaceBrep
+puts [checkshape FaceBrep]
+
+set dum1 [nbshapes FaceBrep]
+regexp {VERTEX +: +([-0-9.+eE]+)} $dum1 full nb_v1
+regexp {EDGE +: +([-0-9.+eE]+)} $dum1 full nb_e1
+regexp {WIRE +: +([-0-9.+eE]+)} $dum1 full nb_w1
+regexp {FACE +: +([-0-9.+eE]+)} $dum1 full nb_f1
+regexp {SHELL +: +([-0-9.+eE]+)} $dum1 full nb_sh1
+regexp {SOLID +: +([-0-9.+eE]+)} $dum1 full nb_sol1
+regexp {COMPSOLID +: +([-0-9.+eE]+)} $dum1 full nb_compsol1
+regexp {COMPOUND +: +([-0-9.+eE]+)} $dum1 full nb_compound1
+regexp {SHAPE +: +([-0-9.+eE]+)} $dum1 full nb_shape1
+
+regexp {Mass +: +([-0-9.+eE]+)} [sprops FaceBrep] full square1
+
+catch {exec rm ${imagedir}/OCC184.igs}
+brepiges FaceBrep ${imagedir}/OCC184.igs
+catch {exec chmod 777 ${imagedir}/OCC184.igs}
+
+igesbrep ${imagedir}/OCC184.igs FaceIGES *
+
+sewing result FaceIGES
+puts [checkshape result]
+
+set dum2 [nbshapes result]
+regexp {VERTEX +: +([-0-9.+eE]+)} $dum2 full nb_v2
+regexp {EDGE +: +([-0-9.+eE]+)} $dum2 full nb_e2
+regexp {WIRE +: +([-0-9.+eE]+)} $dum2 full nb_w2
+regexp {FACE +: +([-0-9.+eE]+)} $dum2 full nb_f2
+regexp {SHELL +: +([-0-9.+eE]+)} $dum2 full nb_sh2
+regexp {SOLID +: +([-0-9.+eE]+)} $dum2 full nb_sol2
+regexp {COMPSOLID +: +([-0-9.+eE]+)} $dum2 full nb_compsol2
+regexp {COMPOUND +: +([-0-9.+eE]+)} $dum2 full nb_compound2
+regexp {SHAPE +: +([-0-9.+eE]+)} $dum2 full nb_shape2
+
+regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full square2
+
+
+if { ${nb_v2} != ${nb_v1}
+ || ${nb_e2} != ${nb_e1}
+ || ${nb_w2} != ${nb_w1}
+ || ${nb_f2} != ${nb_f1}
+ || ${nb_sh2} != ${nb_sh1}
+ || ${nb_sol2} != ${nb_sol1}
+ || ${nb_compsol2} != ${nb_compsol2}
+ || ${nb_compound2} != ${nb_compound1}
+ || ${nb_shape2} != ${nb_shape2} } {
+ puts "Error : Number of shapes is faulty"
+}
+
+if { ${square2} != ${square1} } {
+ puts "Error : "Square is not valid"
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "================"
+puts "OCC2"
+puts "================"
+puts ""
+
+restore [locate_data_file OCC46.brep] result
+puts [checkshape result]
+
+set l [lindex [statshape result] 5]
+
+if { $l != "EDGE"} then {
+ puts "Error : Output of statshape is incorrect."
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC314"
+puts "========"
+puts ""
+
+param write.iges.brep.mode BRep
+
+restore [locate_data_file OCC314.brep] a1
+regexp { +Face +: +Min +([-0-9.+eE]+)} [maxtolerance a1] full MinFace1
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a1] full MaxFace1
+regexp { +Edge +: +Min +([-0-9.+eE]+)} [maxtolerance a1] full MinEdge1
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a1] full MaxEdge1
+regexp { +Vertex +: +Min +([-0-9.+eE]+)} [maxtolerance a1] full MinVertex1
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a1] full MaxVertex1
+
+######################################################################
+catch {exec rm ${imagedir}/OCC314.igs}
+brepiges a1 ${imagedir}/OCC314.igs
+
+igesbrep ${imagedir}/OCC314.igs a2 *
+
+tpcompound a2
+
+regexp { +Face +: +Min +([-0-9.+eE]+)} [maxtolerance a2] full MinFace2
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a2] full MaxFace2
+regexp { +Edge +: +Min +([-0-9.+eE]+)} [maxtolerance a2] full MinEdge2
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a2] full MaxEdge2
+regexp { +Vertex +: +Min +([-0-9.+eE]+)} [maxtolerance a2] full MinVertex2
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a2] full MaxVertex2
+
+
+if { $MinFace2 > $MinFace1 } {
+ puts "Error : MinFace Tolerance is increased"
+}
+
+if { $MaxFace2 > $MaxFace1 } {
+ puts "Error : MaxFace Tolerance is increased"
+}
+
+if { $MinEdge2 > $MinEdge1 } {
+ puts "Error : MinEdge Tolerance is increased"
+}
+
+if { $MaxEdge2 > $MaxEdge1 } {
+ puts "Error : MaxEdge Tolerance is increased"
+}
+
+if { $MinVertex2 > $MinVertex1 } {
+ puts "Error : MinVertex Tolerance is increased"
+}
+
+if { $MaxVertex2 > $MaxVertex1 } {
+ puts "Error : MaxVertex Tolerance is increased"
+}
+
+renamevar a2 result
+
+set 2dviewer 0
+
--- /dev/null
+puts "========"
+puts "OCC321"
+puts "========"
+puts ''
+##############################################################
+##Crash during importation of IGES file on SUN, on other platforms message
+## "Syntax error during importation"
+##############################################################
+
+stepread [locate_data_file OCC321.stp] a *
+
+tpcompound a
+puts [checkshape a]
+puts [checkshape a r]
+
+######################################################################
+catch {exec rm ${imagedir}/OCC321.iges}
+
+brepiges a ${imagedir}/OCC321.iges
+dall
+
+igesbrep ${imagedir}/OCC321.iges b *
+
+tpcompound result
+puts [checkshape result]
+
+set 2dviewer 0
+
--- /dev/null
+puts "================"
+puts "OCC34"
+puts "================"
+puts ""
+###################################################
+## After work of function fixmeassingseam on attached face result is invalid.
+###################################################
+
+restore [locate_data_file OCC34.brep] sh
+
+fixshape result sh 1.e-7 1
+
+puts [checkshape result]
+set square 116.889
+
+set prop "square"
+set mass $square
+regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m
+
+if { [string compare "$mass" "empty"] != 0 } {
+ if { $m == 0 } {
+ puts "Error : The command is not valid. The $prop is 0."
+ }
+ if { $mass > 0 } {
+ puts "The expected $prop is $mass"
+ }
+ #check of change of square is < 1%
+ if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
+ puts "Error : The $prop of result shape is $m"
+ }
+} else {
+ if { $m != 0 } {
+ puts "Error : The command is not valid. The $prop is $m"
+ }
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts " OCC396 "
+puts "========================"
+
+cpulimit 3000
+
+restore [locate_data_file OCC396.brep] a
+
+regexp { +Face +: +Min +([-0-9.+eE]+)} [maxtolerance a] full MinFace1
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a] full MaxFace1
+regexp { +Edge +: +Min +([-0-9.+eE]+)} [maxtolerance a] full MinEdge1
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a] full MaxEdge1
+regexp { +Vertex +: +Min +([-0-9.+eE]+)} [maxtolerance a] full MinVertex1
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a] full MaxVertex1
+
+fixshape result a 1.e-7 0.1
+
+regexp { +Face +: +Min +([-0-9.+eE]+)} [maxtolerance result] full MinFace2
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxFace2
+regexp { +Edge +: +Min +([-0-9.+eE]+)} [maxtolerance result] full MinEdge2
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxEdge2
+regexp { +Vertex +: +Min +([-0-9.+eE]+)} [maxtolerance result] full MinVertex2
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxVertex2
+
+if { $MinFace2 > $MinFace1 } {
+ puts "Error : MinFace Tolerance is increased"
+}
+
+if { $MaxFace2 > $MaxFace1 } {
+ puts "Error : MaxFace Tolerance is increased"
+}
+
+if { $MinEdge2 > $MinEdge1 } {
+ puts "Error : MinEdge Tolerance is increased"
+}
+
+if { $MaxEdge2 > $MaxEdge1 } {
+ puts "Error : MaxEdge Tolerance is increased"
+}
+
+if { $MinVertex2 > $MinVertex1 } {
+ puts "Error : MinVertex Tolerance is increased"
+}
+
+if { $MaxVertex2 > $MaxVertex1 } {
+ puts "Error : MaxVertex Tolerance is increased"
+}
+
+set 2dviewer 0
--- /dev/null
+puts "========"
+puts "OCC445"
+puts "========"
+puts ""
+
+restore [locate_data_file OCC501.brep] a
+
+fixshape result a 1e-7
+
+puts [checkshape result]
+set volume 477547
+
+set prop "volume"
+set mass $volume
+regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full m
+
+if { [string compare "$mass" "empty"] != 0 } {
+ if { $m == 0 } {
+ puts "Error : The command is not valid. The $prop is 0."
+ }
+ if { $mass > 0 } {
+ puts "The expected $prop is $mass"
+ }
+ #check of change of volume is < 1%
+ if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
+ puts "Error : The $prop of result shape is $m"
+ }
+} else {
+ if { $m != 0 } {
+ puts "Error : The command is not valid. The $prop is $m"
+ }
+}
+
+set 2dviewer 0
+
--- /dev/null
+puts "========================"
+puts " OCC470 "
+puts "========================"
+
+restore [locate_data_file OCC470.brep] a
+
+regexp { +Face +: +Min +([-0-9.+eE]+)} [maxtolerance a] full MinFace1
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a] full MaxFace1
+regexp { +Edge +: +Min +([-0-9.+eE]+)} [maxtolerance a] full MinEdge1
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a] full MaxEdge1
+regexp { +Vertex +: +Min +([-0-9.+eE]+)} [maxtolerance a] full MinVertex1
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance a] full MaxVertex1
+
+fixshape result a 1.e-7 0.1
+
+regexp { +Face +: +Min +([-0-9.+eE]+)} [maxtolerance result] full MinFace2
+regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxFace2
+regexp { +Edge +: +Min +([-0-9.+eE]+)} [maxtolerance result] full MinEdge2
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxEdge2
+regexp { +Vertex +: +Min +([-0-9.+eE]+)} [maxtolerance result] full MinVertex2
+regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance result] full MaxVertex2
+
+if { $MinFace2 > $MinFace1 } {
+ puts "Error : MinFace Tolerance is increased"
+}
+
+if { $MaxFace2 > $MaxFace1 } {
+ puts "Error : MaxFace Tolerance is increased"
+}
+
+if { $MinEdge2 > $MinEdge1 } {
+ puts "Error : MinEdge Tolerance is increased"
+}
+
+if { $MaxEdge2 > $MaxEdge1 } {
+ puts "Error : MaxEdge Tolerance is increased"
+}
+
+if { $MinVertex2 > $MinVertex1 } {
+ puts "Error : MinVertex Tolerance is increased"
+}
+
+if { $MaxVertex2 > $MaxVertex1 } {
+ puts "Error : MaxVertex Tolerance is increased"
+}
+
+set 2dviewer 0
+