From dfdfa61fb5a7cfde38696f4d1678d15712689007 Mon Sep 17 00:00:00 2001 From: apv Date: Wed, 9 Aug 2017 17:54:16 +0300 Subject: [PATCH] Update of tests database Test for 0023838: Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell) Test for 0023866: GccAna_Circ2d3Tan does not find a circle Test for 0023925: BRepFeat_SplitShape produces invalid shape Test for 0023942: Pipe algorithms unrobust to number rounding Test for 0025385: steep increase in tolerance by intersection Test for 0025395: SIGSEGV in BRepOffsetAPI_MakeThickSolid Test for 0025458: can a sweep be used to create 1-fold tori (using a closed wire as path) Test for 0025478: Fillets can not touch Test for 0025481: Edge must not contain obsolete curve representations Test for 0025515: Boolean operation become worse for unknown reason. Test for 0025521: Fillet creates shell with bad orientation of SubShape Test for 0025551: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface Test for 0025586: Poor mesh quality, or failure of meshing for closed extruded surfaces with holes Test for 0025626: Loft of ellipses shows wrinkle near seam edge Test for 0025628: BRepMesh fails to mesh face with open wire, considered as correct by checkshape Test for 0025693: Wire of BSplines fails bopcheck Test for 0025730: result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0 Test for 0025738: BRepMesh fails to produce correct mesh for the face Test for 0025776: HLR returns intersecting edges in OutLineV of helical sweep Test for 0025798: BRepFeat_SplitShape returns invalid result Test for 0025817: crescent face is not meshed Test for 0025827: BRepMesh does not synchronize parameters of glued vertices on small edges Test for 0025837: Bad triangulation when IGES loaded in meters Test for 0025852: Text to BRep algorithm produces bad faces for circled symbols Test for 0025856: BRepOffsetAPI_ThruSections returns an invalid shape if one wire contains degenerated edges Test for 0025879: result of blend fails the bopcheck Test for 0025967: Shape Healing fails to correct a face with missing poles and pcurves Test for 0026052: Missing pcurves are computed incorrectly on two connected faces laying on the same surface Test for 0025061: BRepMesh should skip internal wires with self intersections to produce mesh for the shape anyway Test for 0024490: Computed surface properties differ substantially depending on NaturalRestriction flag Test for 0024568: Split shape produces an invalid result Test for 0024692: fuseedge corruption of spherical edge Test for 0024772: Intersection of cylinder and cone produces incorrect results Test for 0024954: BRepBuilderAPI_MakeFace adds wire with aribitary orientation Test for 0025104: Prism from BSpline curve can not be chamfered Test for 0025206: Fillet creates edge with C0 continuity Test for 0025979: fillet creates faces with non-closed wires Test for 0025983: Fusion of sweep and its mirror invalid Test for 0025994: Boolean fuse result in invalid result. Test for 0026034: Result of revolution aborts the bopcheck if translated Test for 0026077: nurbsconvert of psphere fails the bopargcheck Test for 0025989: toridial surface gets damaged in STEP export --- tests/boolean/bfuse_complex/F5 | 4 +- tests/bugs/heal/bug25967 | 19 +++++++ tests/bugs/heal/bug26052 | 56 +++++++++++++++++++++ tests/bugs/mesh/bug25061 | 19 +++++++ tests/bugs/mesh/bug25551 | 33 +++++++++++++ tests/bugs/mesh/bug25586_1 | 45 +++++++++++++++++ tests/bugs/mesh/bug25586_2 | 45 +++++++++++++++++ tests/bugs/mesh/bug25586_3 | 45 +++++++++++++++++ tests/bugs/mesh/bug25628 | 32 ++++++++++++ tests/bugs/mesh/bug25738 | 31 ++++++++++++ tests/bugs/mesh/bug25817 | 34 +++++++++++++ tests/bugs/mesh/bug25827 | 20 ++++++++ tests/bugs/mesh/bug25837_1 | 25 ++++++++++ tests/bugs/mesh/bug25837_2 | 27 ++++++++++ tests/bugs/modalg_7/bug23838 | 28 +++++++++++ tests/bugs/modalg_7/bug23925 | 22 +++++++++ tests/bugs/modalg_7/bug23942 | 87 +++++++++++++++++++++++++++++++++ tests/bugs/modalg_7/bug24490 | 40 +++++++++++++++ tests/bugs/modalg_7/bug24568 | 19 +++++++ tests/bugs/modalg_7/bug24692 | 31 ++++++++++++ tests/bugs/modalg_7/bug24772 | 45 +++++++++++++++++ tests/bugs/modalg_7/bug24954_1 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_2 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_3 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_4 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_5 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_6 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_7 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_8 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug24954_9 | 53 ++++++++++++++++++++ tests/bugs/modalg_7/bug25104 | 18 +++++++ tests/bugs/modalg_7/bug25206 | 31 ++++++++++++ tests/bugs/modalg_7/bug25385 | 24 +++++++++ tests/bugs/modalg_7/bug25395_1 | 18 +++++++ tests/bugs/modalg_7/bug25395_2 | 49 +++++++++++++++++++ tests/bugs/modalg_7/bug25458 | 34 +++++++++++++ tests/bugs/modalg_7/bug25478_1 | 22 +++++++++ tests/bugs/modalg_7/bug25478_2 | 25 ++++++++++ tests/bugs/modalg_7/bug25521 | 19 +++++++ tests/bugs/modalg_7/bug25626 | 23 +++++++++ tests/bugs/modalg_7/bug25730 | 28 +++++++++++ tests/bugs/modalg_7/bug25776 | 36 ++++++++++++++ tests/bugs/modalg_7/bug25798 | 27 ++++++++++ tests/bugs/modalg_7/bug25856_1 | 22 +++++++++ tests/bugs/modalg_7/bug25856_2 | 20 ++++++++ tests/bugs/modalg_7/bug25879 | 20 ++++++++ tests/bugs/modalg_7/bug25979 | 16 ++++++ tests/bugs/modalg_7/bug25983 | 24 +++++++++ tests/bugs/modalg_7/bug25994 | 18 +++++++ tests/bugs/modalg_7/bug26034 | 21 ++++++++ tests/bugs/modalg_7/bug26077_1 | 18 +++++++ tests/bugs/modalg_7/bug26077_2 | 57 +++++++++++++++++++++ tests/bugs/moddata_3/bug23866 | 35 +++++++++++++ tests/bugs/moddata_3/bug25481 | 45 +++++++++++++++++ tests/bugs/moddata_3/bug25693_1 | 17 +++++++ tests/bugs/moddata_3/bug25693_2 | 24 +++++++++ tests/bugs/step/bug25989 | 41 ++++++++++++++++ tests/bugs/vis/bug25852 | 25 ++++++++++ 58 files changed, 1939 insertions(+), 2 deletions(-) create mode 100644 tests/bugs/heal/bug25967 create mode 100644 tests/bugs/heal/bug26052 create mode 100644 tests/bugs/mesh/bug25061 create mode 100644 tests/bugs/mesh/bug25551 create mode 100644 tests/bugs/mesh/bug25586_1 create mode 100644 tests/bugs/mesh/bug25586_2 create mode 100644 tests/bugs/mesh/bug25586_3 create mode 100644 tests/bugs/mesh/bug25628 create mode 100644 tests/bugs/mesh/bug25738 create mode 100644 tests/bugs/mesh/bug25817 create mode 100644 tests/bugs/mesh/bug25827 create mode 100644 tests/bugs/mesh/bug25837_1 create mode 100644 tests/bugs/mesh/bug25837_2 create mode 100644 tests/bugs/modalg_7/bug23838 create mode 100755 tests/bugs/modalg_7/bug23925 create mode 100644 tests/bugs/modalg_7/bug23942 create mode 100644 tests/bugs/modalg_7/bug24490 create mode 100644 tests/bugs/modalg_7/bug24568 create mode 100644 tests/bugs/modalg_7/bug24692 create mode 100644 tests/bugs/modalg_7/bug24772 create mode 100644 tests/bugs/modalg_7/bug24954_1 create mode 100644 tests/bugs/modalg_7/bug24954_2 create mode 100644 tests/bugs/modalg_7/bug24954_3 create mode 100644 tests/bugs/modalg_7/bug24954_4 create mode 100644 tests/bugs/modalg_7/bug24954_5 create mode 100644 tests/bugs/modalg_7/bug24954_6 create mode 100644 tests/bugs/modalg_7/bug24954_7 create mode 100644 tests/bugs/modalg_7/bug24954_8 create mode 100644 tests/bugs/modalg_7/bug24954_9 create mode 100644 tests/bugs/modalg_7/bug25104 create mode 100644 tests/bugs/modalg_7/bug25206 create mode 100644 tests/bugs/modalg_7/bug25385 create mode 100644 tests/bugs/modalg_7/bug25395_1 create mode 100644 tests/bugs/modalg_7/bug25395_2 create mode 100755 tests/bugs/modalg_7/bug25458 create mode 100755 tests/bugs/modalg_7/bug25478_1 create mode 100755 tests/bugs/modalg_7/bug25478_2 create mode 100755 tests/bugs/modalg_7/bug25521 create mode 100644 tests/bugs/modalg_7/bug25626 create mode 100755 tests/bugs/modalg_7/bug25730 create mode 100755 tests/bugs/modalg_7/bug25776 create mode 100644 tests/bugs/modalg_7/bug25798 create mode 100755 tests/bugs/modalg_7/bug25856_1 create mode 100755 tests/bugs/modalg_7/bug25856_2 create mode 100755 tests/bugs/modalg_7/bug25879 create mode 100644 tests/bugs/modalg_7/bug25979 create mode 100644 tests/bugs/modalg_7/bug25983 create mode 100644 tests/bugs/modalg_7/bug25994 create mode 100644 tests/bugs/modalg_7/bug26034 create mode 100644 tests/bugs/modalg_7/bug26077_1 create mode 100644 tests/bugs/modalg_7/bug26077_2 create mode 100644 tests/bugs/moddata_3/bug23866 create mode 100644 tests/bugs/moddata_3/bug25481 create mode 100755 tests/bugs/moddata_3/bug25693_1 create mode 100755 tests/bugs/moddata_3/bug25693_2 create mode 100644 tests/bugs/step/bug25989 create mode 100644 tests/bugs/vis/bug25852 diff --git a/tests/boolean/bfuse_complex/F5 b/tests/boolean/bfuse_complex/F5 index 2100a64377..192bb9641c 100644 --- a/tests/boolean/bfuse_complex/F5 +++ b/tests/boolean/bfuse_complex/F5 @@ -1,10 +1,10 @@ # Original bug : pro10658 # Date : 24mar98 -puts "TODO ALL: Error : The area of result shape is" + restore [locate_data_file CTO900_pro10658a.rle] a restore [locate_data_file pro10658b.rle] b bfuse result a b -checkprops result -s 8231.06 +checkprops result -s 8636.79 checkview -display result -2d -otherwise { a b } -s -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/heal/bug25967 b/tests/bugs/heal/bug25967 new file mode 100644 index 0000000000..2bd5904203 --- /dev/null +++ b/tests/bugs/heal/bug25967 @@ -0,0 +1,19 @@ +puts "TODO OCC25967 ALL: Error : is WRONG because number of EDGE entities in shape" + +puts "========" +puts "OCC25967" +puts "========" +puts "" +######################################################################## +# Shape Healing fails to correct a face with missing poles and pcurves +######################################################################## + +restore [locate_data_file bug25967_face-no-sh-fwd.brep] f + +fixshape result f +pcurve result +checknbshapes result -edge 4 + +v2d +2dfit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/heal/bug26052 b/tests/bugs/heal/bug26052 new file mode 100644 index 0000000000..3d6b21406f --- /dev/null +++ b/tests/bugs/heal/bug26052 @@ -0,0 +1,56 @@ +puts "TODO OCC26052 ALL: Faulty shapes in variables faulty_1 to faulty_" + +puts "========" +puts "OCC26052" +puts "========" +puts "" +############################################################################################## +# Missing pcurves are computed incorrectly on two connected faces laying on the same surface +############################################################################################## + +cylinder c 10 +circle c1 0 0 0 10 +circle c2 0 0 0 10 +circle c3 0 0 10 10 +circle c4 0 0 10 10 +line l1 10 0 0 0 0 1 +line l2 -10 0 0 0 0 1 +trim c1 c1 0 pi +trim c2 c2 pi 2*pi +trim c3 c3 0 pi +trim c4 c4 pi 2*pi +trim l1 l1 0 10 +trim l2 l2 0 10 +vertex v1 10 0 0 +vertex v2 -10 0 0 +vertex v3 10 0 10 +vertex v4 -10 0 10 +mkedge ec1 c1 v1 v2 +mkedge ec2 c2 v2 v1 +mkedge ec3 c3 v3 v4 +mkedge ec4 c4 v4 v3 +mkedge el1 l1 v1 v3 +mkedge el2 l2 v2 v4 +shape w1 W +#orientation ec3 R +#orientation el1 R +add ec1 w1 +add el2 w1 +add ec3 w1 +add el1 w1 +shape w2 W +#orientation el1 F +#orientation el2 R +#orientation ec4 R +add ec2 w2 +add el1 w2 +add ec4 w2 +add el2 w2 +mkface f1 c w1 +mkface f2 c w2 +shape s Sh +add f1 s +add f2 s +fixshape result s + +checkshape result diff --git a/tests/bugs/mesh/bug25061 b/tests/bugs/mesh/bug25061 new file mode 100644 index 0000000000..f97cb70108 --- /dev/null +++ b/tests/bugs/mesh/bug25061 @@ -0,0 +1,19 @@ +puts "TODO OCC25061 ALL: ERROR: OCC25061 is reproduced." + +puts "========" +puts "OCC25061" +puts "========" +puts "" +#################################################################################################### +# BRepMesh should skip internal wires with self intersections to produce mesh for the shape anyway +#################################################################################################### + +restore [locate_data_file bug25061_a.brep] a + +incmesh a 0.1 +set bug_info [tricheck a] + +if {[string trim $bug_info] == "face 1 has no triangulation"} { + puts "ERROR: OCC25061 is reproduced. Mesh is not created." +} + diff --git a/tests/bugs/mesh/bug25551 b/tests/bugs/mesh/bug25551 new file mode 100644 index 0000000000..74e2f39fd4 --- /dev/null +++ b/tests/bugs/mesh/bug25551 @@ -0,0 +1,33 @@ +puts "TODO OCC25551 ALL: Error: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface" + +puts "================" +puts "OCC25551" +puts "================" +puts "" +####################################################################################### +# BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface +####################################################################################### + +restore [locate_data_file bug25551_m-a-i-B6.brep] res + +explode res f + +triangles res_2 + +set ExpectedArea 0.208305 +set tol_abs 0.00001 + +set prop [ sprops res_2] +regexp {Mass\s*:\s*([0-9.e+-]+)} $prop prop_s Area + +if { [expr abs($Area - $ExpectedArea)] > $tol_abs } { + puts "OK: BRepMesh not produce internal nodes outside the face interior based on distorted BSpline surface" +} else { + puts "Error: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface" +} + +smallview +donly res_2 +top +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/mesh/bug25586_1 b/tests/bugs/mesh/bug25586_1 new file mode 100644 index 0000000000..a9efa460e2 --- /dev/null +++ b/tests/bugs/mesh/bug25586_1 @@ -0,0 +1,45 @@ +puts "TODO OCC25586 ALL: Error : The area of result shape is" + +puts "=========" +puts "OCC25586" +puts "=========" +puts "" +######################################################### +# Poor mesh quality, or failure of meshing for closed extruded surfaces with holes +######################################################### + +restore [locate_data_file bug25586_circle_extrusion.brep] result + +checkprops result -s 1. + +checkview -display result -2d -path ${imagedir}/${test_image}-axo.png + +vinit +vdisplay result +vfit +vsetdispmode 1 +checkview -screenshot -3d -path ${imagedir}/${test_image}-3d.png + +vfront +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-front.png + +vback +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-back.png + +vleft +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-left.png + +vright +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-right.png + +vtop +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-top.png + +vbottom +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-bottom.png diff --git a/tests/bugs/mesh/bug25586_2 b/tests/bugs/mesh/bug25586_2 new file mode 100644 index 0000000000..28049775a3 --- /dev/null +++ b/tests/bugs/mesh/bug25586_2 @@ -0,0 +1,45 @@ +puts "TODO OCC25586 ALL: Error : The area of result shape is" + +puts "=========" +puts "OCC25586" +puts "=========" +puts "" +######################################################### +# Poor mesh quality, or failure of meshing for closed extruded surfaces with holes +######################################################### + +restore [locate_data_file bug25586_cylindrical_with_circle_hole.brep] result + +checkprops result -s 1. + +checkview -display result -2d -path ${imagedir}/${test_image}-axo.png + +vinit +vdisplay result +vfit +vsetdispmode 1 +checkview -screenshot -3d -path ${imagedir}/${test_image}-3d.png + +vfront +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-front.png + +vback +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-back.png + +vleft +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-left.png + +vright +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-right.png + +vtop +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-top.png + +vbottom +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-bottom.png diff --git a/tests/bugs/mesh/bug25586_3 b/tests/bugs/mesh/bug25586_3 new file mode 100644 index 0000000000..18c4c7bcf0 --- /dev/null +++ b/tests/bugs/mesh/bug25586_3 @@ -0,0 +1,45 @@ +puts "TODO OCC25586 ALL: Error : The area of result shape is" + +puts "=========" +puts "OCC25586" +puts "=========" +puts "" +######################################################### +# Poor mesh quality, or failure of meshing for closed extruded surfaces with holes +######################################################### + +restore [locate_data_file bug25586_quasi_closed.brep] result + +checkprops result -s 1. + +checkview -display result -2d -path ${imagedir}/${test_image}-axo.png + +vinit +vdisplay result +vfit +vsetdispmode 1 +checkview -screenshot -3d -path ${imagedir}/${test_image}-3d.png + +vfront +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-front.png + +vback +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-back.png + +vleft +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-left.png + +vright +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-right.png + +vtop +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-top.png + +vbottom +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-bottom.png diff --git a/tests/bugs/mesh/bug25628 b/tests/bugs/mesh/bug25628 new file mode 100644 index 0000000000..5fbde32180 --- /dev/null +++ b/tests/bugs/mesh/bug25628 @@ -0,0 +1,32 @@ +puts "TODO CR25628 ALL: Error: Number of triangles is equal to 0" +puts "TODO CR25628 ALL: Error: Number of nodes is equal to 0" +puts "TODO CR25628 ALL: Error: BRepMesh fails to mesh face with open wire, considered as correct by checkshape" + +puts "=========" +puts "CR25628" +puts "=========" +puts "" +############################################################################################## +# BRepMesh fails to mesh face with open wire, considered as correct by checkshape +############################################################################################## + +pload XDE + +stepread [locate_data_file bug25628_twr_hull.stp] a * +renamevar a_1 a +explode a f + +checkshape a_36 + +set Log [incmesh a_36 0.1] +if {[regexp "OpenWire" ${Log}] == 1} { + puts "Error: BRepMesh fails to mesh face with open wire, considered as correct by checkshape" +} + +checktrinfo a_1 -tri -nod + +smallview +donly a_36 +left +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}-2d.png diff --git a/tests/bugs/mesh/bug25738 b/tests/bugs/mesh/bug25738 new file mode 100644 index 0000000000..b19789c574 --- /dev/null +++ b/tests/bugs/mesh/bug25738 @@ -0,0 +1,31 @@ +puts "TODO CR25738 ALL: Not connected mesh inside face" +puts "TODO CR25738 ALL: Error: BRepMesh fails to produce correct mesh for the face" + +puts "=========" +puts "CR25738" +puts "=========" +puts "" +###################################################### +# BRepMesh fails to produce correct mesh for the face +###################################################### + +restore [locate_data_file bug25738_face1736.brep] a + +incmesh a 1 -a 20 + +front +fit +isos a 0 +triangles a + +trinfo a + +set info [tricheck a] +set pattern "Free_links +(\[0-9\]+) +Cross_face_errors +(\[0-9\]+) +Async_edges +(\[0-9\]+) +Free_nodes +(\[0-9\]+)" +regexp "${pattern}" $info full freelinks crossfaces asyncedges freenodes + +if { $freenodes > 0 } { + puts "Error: BRepMesh fails to produce correct mesh for the face" +} + +checkview -screenshot -2d -path ${imagedir}/${test_image}-2d.png diff --git a/tests/bugs/mesh/bug25817 b/tests/bugs/mesh/bug25817 new file mode 100644 index 0000000000..01bd6d8a1c --- /dev/null +++ b/tests/bugs/mesh/bug25817 @@ -0,0 +1,34 @@ +puts "=========" +puts "CR25817" +puts "=========" +puts "" +############################# +# crescent face is not meshed +############################# + +restore [locate_data_file bug25817_mesh-missing-cresent.brep] c + +tclean c + +set Log [incmesh c 0.1] +if {[regexp "NoError" ${Log}] == 0} { + puts "Error: face is not meshed" +} + +tricheck c + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}-1.png + +explode c F + +set Log [incmesh c_4 0.1] +if {[regexp "NoError" ${Log}] == 0} { + puts "Error: crescent face is not meshed" +} + +clear +donly c_4 +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}-2.png diff --git a/tests/bugs/mesh/bug25827 b/tests/bugs/mesh/bug25827 new file mode 100644 index 0000000000..365214fdee --- /dev/null +++ b/tests/bugs/mesh/bug25827 @@ -0,0 +1,20 @@ +puts "TODO CR25827 ALL: Faulty shapes in variables faulty_" + +puts "=========" +puts "CR25827" +puts "=========" +puts "" +############################################################################ +# BRepMesh does not synchronize parameters of glued vertices on small edges +############################################################################ + +restore [locate_data_file bug25827_result_valid.brep] r + +checkshape r + +incmesh r 0.01 -a 10 -relative -parallel + +checkshape r + +checkview -display r -2d -path ${imagedir}/${test_image}-2d.png +checkview -display r -3d -path ${imagedir}/${test_image}-3d.png diff --git a/tests/bugs/mesh/bug25837_1 b/tests/bugs/mesh/bug25837_1 new file mode 100644 index 0000000000..7919a9b28f --- /dev/null +++ b/tests/bugs/mesh/bug25837_1 @@ -0,0 +1,25 @@ +puts "=========" +puts "CR25837" +puts "=========" +puts "" +###################################################### +# Bad triangulation when IGES loaded in meters +###################################################### + +pload XDE + +param xstep.cascade.unit MM +newmodel + +igesbrep [locate_data_file bug25837_S.igs] result * + +vinit +vdisplay result +vfit +vsetdispmode 1 + +set x 200 +set y 200 +checkcolor $x $y 0 0 0 + +checkview -screenshot -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/mesh/bug25837_2 b/tests/bugs/mesh/bug25837_2 new file mode 100644 index 0000000000..9060f9a0d0 --- /dev/null +++ b/tests/bugs/mesh/bug25837_2 @@ -0,0 +1,27 @@ +puts "TODO CR25837 ALL: Error : Colors are not equal in default coordinate and in the near coordinates too" + +puts "=========" +puts "CR25837" +puts "=========" +puts "" +###################################################### +# Bad triangulation when IGES loaded in meters +###################################################### + +pload XDE + +param xstep.cascade.unit M +newmodel + +igesbrep [locate_data_file bug25837_S.igs] result * + +vinit +vdisplay result +vfit +vsetdispmode 1 + +set x 200 +set y 200 +checkcolor $x $y 0 0 0 + +checkview -screenshot -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23838 b/tests/bugs/modalg_7/bug23838 new file mode 100644 index 0000000000..075daa18b6 --- /dev/null +++ b/tests/bugs/modalg_7/bug23838 @@ -0,0 +1,28 @@ +puts "TODO OCC23838 Windows: OSD_Exception_ACCESS_VIOLATION" +puts "TODO OCC23838 Linux: segmentation violation" +puts "TODO OCC23838 ALL:TEST INCOMPLETE" + +puts "============" +puts "OCC23838" +puts "============" +puts "" +####################################################### +# Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell) +####################################################### + +restore [locate_data_file bug23838_profile.brep] prof +restore [locate_data_file bug23838_SpineAndSupport.brep] comp + +explode comp +renamevar comp_1 supp +renamevar comp_2 spine + +mksweep spine +setsweep -DX supp +addsweep prof + +buildsweep result -R + +checkshape result + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23925 b/tests/bugs/modalg_7/bug23925 new file mode 100755 index 0000000000..dd1a0d5dd2 --- /dev/null +++ b/tests/bugs/modalg_7/bug23925 @@ -0,0 +1,22 @@ +puts "============" +puts "OCC23925" +puts "============" +puts "" +####################################################################### +# BRepFeat_SplitShape produces invalid shape +####################################################################### + +restore [locate_data_file bug23925_E.brep] e +restore [locate_data_file bug23925_F.brep] f + +splitshape result f f e + +set nb_F [ llength [explode result F] ] + +if { ${nb_F} == 2 } { + puts "OK: BRepFeat_SplitShape produces good shape" +} else { + puts "Error: BRepFeat_SplitShape produces invalid shape" +} + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug23942 b/tests/bugs/modalg_7/bug23942 new file mode 100644 index 0000000000..b528027177 --- /dev/null +++ b/tests/bugs/modalg_7/bug23942 @@ -0,0 +1,87 @@ +puts "TODO OCC23942 ALL: is not equal" + +puts "========" +puts "OCC23942" +puts "========" +puts "" +######################################################### +# Pipe algorithms unrobust to number rounding +######################################################### + +# +### 1 +# +interpol c [locate_data_file bug23942_points.txt] +tuyau r_1 c 5 + +decho off +dlog reset +dlog on + +dump r_1 + +set info_1 [dlog get] +dlog reset +dlog off +decho on + +regexp {Degrees :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_1} full X Degrees_1 +regexp {NbPoles :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_1} full X NbPoles_1 +regexp {NbKnots :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_1} full UKnots_1 VKnots_1 +puts "Degrees_1 = ${Degrees_1}" +puts "NbPoles_1 = ${NbPoles_1}" +puts "UKnots_1 = ${UKnots_1}" +puts "VKnots_1 = ${VKnots_1}" + +# +### 2 +# +save c ${imagedir}/cc +restore ${imagedir}/cc +tuyau r_2 cc 5 + +decho off +dlog reset +dlog on + +dump r_2 + +set info_2 [dlog get] +dlog reset +dlog off +decho on + +regexp {Degrees :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_2} full X Degrees_2 +regexp {NbPoles :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_2} full X NbPoles_2 +regexp {NbKnots :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_2} full UKnots_2 VKnots_2 +puts "Degrees_2 = ${Degrees_2}" +puts "NbPoles_2 = ${NbPoles_2}" +puts "UKnots_2 = ${UKnots_2}" +puts "VKnots_2 = ${VKnots_2}" + +# +### 3 +# +if {${Degrees_1} != ${Degrees_2}} { + puts "Error : Degrees_1 is not equal Degrees_2" +} else { + puts "OK : Degrees_1 is equal Degrees_2" +} +if {${NbPoles_1} != ${NbPoles_2}} { + puts "Error : NbPoles_1 is not equal NbPoles_2" +} else { + puts "OK : NbPoles_1 is equal NbPoles_2" +} +if {${UKnots_1} != ${UKnots_2}} { + puts "Error : UKnots_1 is not equal UKnots_2" +} else { + puts "OK : UKnots_1 is equal UKnots_2" +} +if {${VKnots_1} != ${VKnots_2}} { + puts "Error : VKnots_1 is not equal VKnots_2" +} else { + puts "OK : VKnots_1 is equal VKnots_2" +} + +checkview -display r_1 -2d -path ${imagedir}/${test_image}_1.png +checkview -display r_2 -2d -path ${imagedir}/${test_image}_2.png diff --git a/tests/bugs/modalg_7/bug24490 b/tests/bugs/modalg_7/bug24490 new file mode 100644 index 0000000000..7236f761c8 --- /dev/null +++ b/tests/bugs/modalg_7/bug24490 @@ -0,0 +1,40 @@ +puts "========" +puts "OCC24490" +puts "========" +puts "" +######################################################################################### +# Computed surface properties differ substantially depending on NaturalRestriction flag +######################################################################################### + +restore [locate_data_file bug24490_face_naturalrestriction_flag.brep] ff +restore [locate_data_file bug24490_face_naturalrestriction_noflag.brep] fn + +# Get information from model ff +set bug_info [sprops ff] +set ff_area [lindex $bug_info 2] +set ff_CG_X [lindex $bug_info 9] +set ff_CG_Y [lindex $bug_info 12] +set ff_CG_Z [lindex $bug_info 15] + +# Get information from model ff +set bug_info [sprops fn] +set fn_area [lindex $bug_info 2] +set fn_CG_X [lindex $bug_info 9] +set fn_CG_Y [lindex $bug_info 12] +set fn_CG_Z [lindex $bug_info 15] + +# Verification +if {$ff_area != $fn_area} { + puts "ERROR: OCC24490 is reproduced. Areas of identical shapes are different." +} + +if {$ff_CG_X != $fn_CG_X} { + puts "ERROR: OCC24490 is reproduced. Center of gravity (X) of identical shapes are different." +} + +if {$ff_CG_Y != $fn_CG_Y} { + puts "ERROR: OCC24490 is reproduced. Center of gravity (Y) of identical shapes are different." +} +if {$ff_CG_Z != $fn_CG_Z} { + puts "ERROR: OCC24490 is reproduced. Center of gravity (Z) of identical shapes are different." +} diff --git a/tests/bugs/modalg_7/bug24568 b/tests/bugs/modalg_7/bug24568 new file mode 100644 index 0000000000..80a20eaa1d --- /dev/null +++ b/tests/bugs/modalg_7/bug24568 @@ -0,0 +1,19 @@ +puts "========" +puts "OCC24568" +puts "========" +puts "" +########################################## +# Split shape produces an invalid result +########################################## + +restore [locate_data_file bug24568_face.brep] face +restore [locate_data_file bug24568_wire.brep] wire + +splitshape result face face wire + +checkshape result + +smallview +donly result +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png \ No newline at end of file diff --git a/tests/bugs/modalg_7/bug24692 b/tests/bugs/modalg_7/bug24692 new file mode 100644 index 0000000000..a8ed1ba535 --- /dev/null +++ b/tests/bugs/modalg_7/bug24692 @@ -0,0 +1,31 @@ +puts "TODO OCC24692 ALL: Faulty shapes in variables faulty_1 to faulty_" + +puts "========" +puts "OCC24692" +puts "========" +puts "" +######################################### +# fuseedge corruption of spherical edge +######################################### + +# Object_1 +pcylinder cyl 10 40 +box abox 10 40 25 +ttranslate abox 0 -20 5 +bop cyl abox +bopfuse fuse1 + +# Object_2 +psphere asphere 7 +ttranslate asphere 0 0 3 +box abox2 5 30 25 +ttranslate abox2 -2 -15 -11 +bop abox2 asphere +bopfuse fuse2 + +# Object_Result +bop fuse1 fuse2 +bopcut result +fuseedge result + +checkshape result_1 diff --git a/tests/bugs/modalg_7/bug24772 b/tests/bugs/modalg_7/bug24772 new file mode 100644 index 0000000000..fa20fad11e --- /dev/null +++ b/tests/bugs/modalg_7/bug24772 @@ -0,0 +1,45 @@ +puts "========" +puts "OCC24772" +puts "========" +puts "" +################################################################ +# Intersection of cylinder and cone produces incorrect results +################################################################ + +restore [locate_data_file bug24772_s1.draw] s1 +restore [locate_data_file bug24772_s2.draw] s2 + +smallview +X+Y +fit +zoom 6 + +set bug_info [intersect r s1 s2] + +if {[llength $bug_info] != 4} { +# puts "ERROR: OCC24722 is reproduced." +} else { + # snapshot r_1 + clear + display s1 + display s2 + display r_1 + xwd $imagedir/${casename}_r_1.png + # snapshot r_2 + clear + display s1 + display s2 + display r_2 + xwd $imagedir/${casename}_r_2.png + # snapshot r_3 + clear + display s1 + display s2 + display r_3 + xwd $imagedir/${casename}_r_3.png + # snapshot r_4 + clear + display s1 + display s2 + display r_4 + xwd $imagedir/${casename}_r_4.png +} diff --git a/tests/bugs/modalg_7/bug24954_1 b/tests/bugs/modalg_7/bug24954_1 new file mode 100644 index 0000000000..32c61d84bf --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_1 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p 9.08 8.62 3.75 1.87 3.04 9. 4.26 1.37 -0.08 9.08 8.62 3.75 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_2 b/tests/bugs/modalg_7/bug24954_2 new file mode 100644 index 0000000000..8930232b37 --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_2 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p -1.15 3.42 1.95 4.54 3.13 1.36 2.97 -3.14 2.08 -1.15 3.42 1.95 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_3 b/tests/bugs/modalg_7/bug24954_3 new file mode 100644 index 0000000000..655ba3c66c --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_3 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p -4.62 0.1 0.75 -4.12 4.64 -2.91 -1.55 -1.07 4.48 -4.62 0.1 0.75 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_4 b/tests/bugs/modalg_7/bug24954_4 new file mode 100644 index 0000000000..26c9790271 --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_4 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p -2.92 -4.7 -2.87 4.73 1.75 1.76 3.14 -1.23 2.74 -2.92 -4.7 -2.87 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_5 b/tests/bugs/modalg_7/bug24954_5 new file mode 100644 index 0000000000..b61e4d5996 --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_5 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p -4.05 3.84 0.17 4.22 3.55 3.19 -1.32 -1.44 -1.57 -4.05 3.84 0.17 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_6 b/tests/bugs/modalg_7/bug24954_6 new file mode 100644 index 0000000000..de63e7074a --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_6 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p -2.36 -1.62 0.17 3.26 -1.05 -3.8 2.75 -4.01 4.95 -2.36 -1.62 0.17 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_7 b/tests/bugs/modalg_7/bug24954_7 new file mode 100644 index 0000000000..217ae8830c --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_7 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p 4.72 2.03 -2.52 -4.78 1.89 -3.82 -1.42 4.56 1.55 4.72 2.03 -2.52 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_8 b/tests/bugs/modalg_7/bug24954_8 new file mode 100644 index 0000000000..adce12875a --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_8 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p 2.02 -1.4 -3.75 -2.93 -1.87 1.72 -5. -0.18 0.39 2.02 -1.4 -3.75 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug24954_9 b/tests/bugs/modalg_7/bug24954_9 new file mode 100644 index 0000000000..435cda41bf --- /dev/null +++ b/tests/bugs/modalg_7/bug24954_9 @@ -0,0 +1,53 @@ +puts "========" +puts "OCC24954" +puts "========" +puts "" +################################################################ +# BRepBuilderAPI_MakeFace adds wire with aribitary orientation +################################################################ + +polyline p 1.21 0.16 4.2 3.12 4.16 0.93 -2.33 -2.55 2.41 1.21 0.16 4.2 +wire w p +mkplane f w + +# Verify orientation of shapes +set bug_info [whatis p] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis w] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} +set bug_info [whatis f] +if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: Input data is incorrect." +} + +# Explode face (f) and verify wire orientation +puts "Checks wires:" +set wire_name_list [explode f w] +set while_count 0 +while {$while_count < [llength $wire_name_list]} { + set bug_info [whatis [lindex $wire_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $wire_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} + +# Explode face (f) and verify edge orientation +puts "Checks edges:" +set edge_name_list [explode f e] +set while_count 0 +while {$while_count < [llength $edge_name_list]} { + set bug_info [whatis [lindex $edge_name_list $while_count]] + if {[lindex $bug_info 5] != "FORWARD"} { + puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation." + } else { + puts " [lindex $edge_name_list $while_count] has FORWARD orientation." + } + set while_count [expr {$while_count + 1}] +} diff --git a/tests/bugs/modalg_7/bug25104 b/tests/bugs/modalg_7/bug25104 new file mode 100644 index 0000000000..0fc04ce388 --- /dev/null +++ b/tests/bugs/modalg_7/bug25104 @@ -0,0 +1,18 @@ +puts "TODO OCC25104 ALL: ERROR: OCC25104 is reproduced." + +puts "========" +puts "OCC25104" +puts "========" +puts "" +########################################################## +# 0025104: Prism from BSpline curve can not be chamfered +########################################################## + +restore [locate_data_file bug25104_whale2-draw-path.brep] path + +prism Extrude001 path 0. 0. 5. + +set bug_info [string trim [bopcheck Extrude001]] +if {$bug_info != "This shape seems to be OK."} { + puts "ERROR: OCC25104 is reproduced. Prism has been created with errors." +} diff --git a/tests/bugs/modalg_7/bug25206 b/tests/bugs/modalg_7/bug25206 new file mode 100644 index 0000000000..5a269d4153 --- /dev/null +++ b/tests/bugs/modalg_7/bug25206 @@ -0,0 +1,31 @@ +puts "TODO OCC25206 ALL: ERROR: OCC25206 is reproduced." + +puts "========" +puts "OCC25206" +puts "========" +puts "" +########################################## +# Fillet creates edge with C0 continuity +########################################## + +restore [locate_data_file bug25206_lampe-1-draw-Fusion.brep] Fusion + +explode Fusion E +set edges [explode Fusion E] +blend Fillet Fusion 25 Fusion_4 25 Fusion_5 25 Fusion_6 25 Fusion_7 25 Fusion_8 25 Fusion_9 25 Fusion_10 25 Fusion_11 25 Fusion_12 +explode Fillet E +renamevar Fillet_8 E8 +set bug_info [dump E8] + +# Find section "VKnots" in dump and cut it +set bug_info [string trim [string range $bug_info [string first "VKnots" $bug_info] [expr {[string length $bug_info] - 1}]]] + +# Get value for VKnots #7 +set VKnots_7 [lindex $bug_info 29] +# Get value for VKnots #8 +set VKnots_8 [lindex $bug_info 33] + +# Check CO continuity +if {$VKnots_7 == 8 && $VKnots_8 == 9} { + puts "ERROR: OCC25206 is reproduced. CO continuity has been detected." +} diff --git a/tests/bugs/modalg_7/bug25385 b/tests/bugs/modalg_7/bug25385 new file mode 100644 index 0000000000..a2bbcf7efb --- /dev/null +++ b/tests/bugs/modalg_7/bug25385 @@ -0,0 +1,24 @@ +puts "TODO OCC25385 ALL: is not equal to expected" + +puts "============" +puts "OCC25385" +puts "============" +puts "" +####################################################################### +# steep increase in tolerance by intersection +####################################################################### + +restore [locate_data_file bug25385_shell2.brep] s + +regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance s] full MaxTol_s_1 + +plane p 28.5 0 0 1 0 0 0 1 0 +mkface f p +bop s f +bopsection r + +regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance s] full MaxTol_s_2 + +set tol_abs_MaxTol 0.0001 +set tol_rel_MaxTol 0.0001 +checkreal "MaxTolerance " ${MaxTol_s_2} ${MaxTol_s_1} ${tol_abs_MaxTol} ${tol_rel_MaxTol} diff --git a/tests/bugs/modalg_7/bug25395_1 b/tests/bugs/modalg_7/bug25395_1 new file mode 100644 index 0000000000..7e3ccccf02 --- /dev/null +++ b/tests/bugs/modalg_7/bug25395_1 @@ -0,0 +1,18 @@ +puts "TODO OCC25395 ALL: ERROR. offsetperform operation not done." + +puts "========" +puts "OCC25395" +puts "========" +puts "" +####################################################### +# SIGSEGV in BRepOffsetAPI_MakeThickSolid +####################################################### + +restore [locate_data_file bug25395_thickness2-s1.brep] s1 + +explode s1 F +offsetparameter 1e-7 p a +offsetload s1 1 s1_2 s1_3 s1_4 +offsetperform Thickness + +checkview -display Thickness -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug25395_2 b/tests/bugs/modalg_7/bug25395_2 new file mode 100644 index 0000000000..8cb879e616 --- /dev/null +++ b/tests/bugs/modalg_7/bug25395_2 @@ -0,0 +1,49 @@ +puts "TODO OCC25395 ALL: Standard_ConstructionError" +puts "TODO OCC25395 ALL:TEST INCOMPLETE" + +puts "========" +puts "OCC25395" +puts "========" +puts "" +####################################################### +# SIGSEGV in BRepOffsetAPI_MakeThickSolid +####################################################### + +ellipse Ellipse-curve 0 0 0 100.87 22 +mkedge Ellipse-edge Ellipse-curve 0 6.28318530718 +wire Ellipse-wire Ellipse-edge +mkplane Ellipse Ellipse-wire +ttranslate Ellipse 0 -27 184.5 + +explode Ellipse E +wire Sweep-0-spine Ellipse_1 +mksweep Sweep-0-spine + +setsweep -CF + +circle Circle-curve 0 0 0 18 +mkedge Circle-edge Circle-curve 0 0 +wire Circle Circle-edge +trotate Circle 0 0 0 0 -1 0 90 +ttranslate Circle 0 -70 202.5 + +addsweep Circle + +buildsweep Sweep -C -S + +box Box001 300 90 300 +ttranslate Box001 -150 -27 0 + +bcut Cut031 Sweep Box001 + +box Box002 300 100 30 +ttranslate Box002 -150 -100 202.5 + +bcut Cut032 Cut031 Box002 +explode Cut032 F + +offsetparameter 1e-7 p a +offsetload Cut032 1 Cut032_3 Cut032_2 Cut032_4 +offsetperform Thickness + +checkview -display Thickness -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug25458 b/tests/bugs/modalg_7/bug25458 new file mode 100755 index 0000000000..0bd80926ea --- /dev/null +++ b/tests/bugs/modalg_7/bug25458 @@ -0,0 +1,34 @@ +puts "TODO OCC25458 ALL: Error : 1-fold tori is bad" + +puts "============" +puts "OCC25458" +puts "============" +puts "" +########################################################################### +## can a sweep be used to create 1-fold tori (using a closed wire as path) +########################################################################### + +restore [locate_data_file bug25458_sweep-torus1-draw-Wire.brep] Wire + +explode Wire E +wire Sweep-0-spine Wire_1 + +mksweep Sweep-0-spine +setsweep -FR + +circle Circle-curve 0 0 0 10 +mkedge Circle-edge Circle-curve 0 0 +wire Circle Circle-edge +trotate Circle 0 0 0 1 0 0 90 +ttranslate Circle 40.1121575545 0 36.5930306315 + +addsweep Circle +buildsweep Sweep -C -S + +set info [bopcheck Sweep] + +if { [regexp "This shape seems to be OK" ${info}] != 1 } { + puts "Error : 1-fold tori is bad" +} + +checkview -display Sweep -3d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug25478_1 b/tests/bugs/modalg_7/bug25478_1 new file mode 100755 index 0000000000..be467eb7e4 --- /dev/null +++ b/tests/bugs/modalg_7/bug25478_1 @@ -0,0 +1,22 @@ +puts "TODO OCC25478 ALL: Error: Fillets can not touch" + +puts "============" +puts "OCC25478" +puts "============" +puts "" +######################## +# Fillets can not touch +######################## + +box Box 10 10 10 +explode Box E + +catch { blend Fillet Box 5 Box_1 5 Box_3 } msg + +if { [info exist Fillet] == 0 } { + puts "Error: Fillets can not touch" +} else { + puts "OK: Fillets can touch" +} + +checkview -display Fillet -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug25478_2 b/tests/bugs/modalg_7/bug25478_2 new file mode 100755 index 0000000000..de2a08e955 --- /dev/null +++ b/tests/bugs/modalg_7/bug25478_2 @@ -0,0 +1,25 @@ +puts "TODO OCC25478 ALL: Error: Fillets can not touch" + +puts "============" +puts "OCC25478" +puts "============" +puts "" +######################## +# Fillets can not touch +######################## + +box Box001 10 10 10 +box Box002 10 10 12 +ttranslate Box002 5 5 -1 +bcut Cut Box001 Box002 +explode Cut E + +catch { blend Fillet002 Cut 2.5 Cut_13 2.5 Cut_17 2.5 Cut_18 } msg + +if { [info exist Fillet002] == 0 } { + puts "Error: Fillets can not touch" +} else { + puts "OK: Fillets can touch" +} + +checkview -display Fillet002 -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug25521 b/tests/bugs/modalg_7/bug25521 new file mode 100755 index 0000000000..7823fc0bc8 --- /dev/null +++ b/tests/bugs/modalg_7/bug25521 @@ -0,0 +1,19 @@ +puts "TODO OCC25521 ALL: Faulty shapes in variables faulty_1 to" + +puts "============" +puts "OCC25521" +puts "============" +puts "" +###################################################### +# Fillet creates shell with bad orientation of SubShape +###################################################### + +restore [locate_data_file bug25521_fillet-suborient3-draw-s1.brep] s1 + +ttranslate s1 0 0 3 +explode s1 E +blend Fillet s1 2 s1_4 + +checkshape Fillet + +checkview -display Fillet -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug25626 b/tests/bugs/modalg_7/bug25626 new file mode 100644 index 0000000000..694ca66b7f --- /dev/null +++ b/tests/bugs/modalg_7/bug25626 @@ -0,0 +1,23 @@ +puts "TODO OCC25626 ALL: Error : is WRONG because number of EDGE entities" +puts "TODO OCC25626 ALL: Error : is WRONG because number of WIRE entities" + +puts "============" +puts "OCC25626" +puts "============" +puts "" +############################################################################ +# Loft of ellipses shows wrinkle near seam edge +############################################################################ + +restore [locate_data_file bug25626_loft-el1-draw-Loft-00-section.brep] Loft-00-section +restore [locate_data_file bug25626_loft-el1-draw-Loft-01-section.brep] Loft-01-section +restore [locate_data_file bug25626_loft-el1-draw-Loft-02-section.brep] Loft-02-section + +thrusections Loft 0 0 Loft-00-section Loft-01-section Loft-02-section + +checkshape Loft + +checknbshapes Loft -wire 1 -edge 3 + +checkview -display Loft -2d -path ${imagedir}/${test_image}-2d.png +checkview -display Loft -3d -path ${imagedir}/${test_image}-3d.png diff --git a/tests/bugs/modalg_7/bug25730 b/tests/bugs/modalg_7/bug25730 new file mode 100755 index 0000000000..18ad471f84 --- /dev/null +++ b/tests/bugs/modalg_7/bug25730 @@ -0,0 +1,28 @@ +puts "TODO OCC25730 ALL: result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0" + +puts "============" +puts "OCC25730" +puts "============" +puts "" +############################################################################################# +## result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0 +############################################################################################# + +restore [locate_data_file bug25730_thickness8-draw-fillet001.brep] Fillet001 + +explode Fillet001 F + +offsetparameter 1e-7 p a +offsetload Fillet001 -1 Fillet001_4 +offsetperform Thickness + +if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Fillet001]] == 1 } { + puts "Error : result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0" +} + +if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Thickness]] == 1 } { + puts "Error : result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0" +} + +checkview -display Fillet001 -2d -path ${imagedir}/${test_image}-Fillet001-2d.png +checkview -display Thickness -2d -path ${imagedir}/${test_image}-Thickness-2d.png diff --git a/tests/bugs/modalg_7/bug25776 b/tests/bugs/modalg_7/bug25776 new file mode 100755 index 0000000000..e3bf7a8b85 --- /dev/null +++ b/tests/bugs/modalg_7/bug25776 @@ -0,0 +1,36 @@ +puts "TODO OCC25776 ALL: Error : Number of edges is WRONG" + +puts "============" +puts "OCC25776" +puts "============" +puts "" +############################################################## +## HLR returns intersecting edges in OutLineV of helical sweep +############################################################## + +restore [locate_data_file bug25776_shape2dhelix1-draw-Shape.brep] Shape + +hprj Shape2DView_proj 0 0 0 1 0 0 0 1 0 +houtl Shape2DView_outl Shape +hfill Shape2DView_outl Shape2DView_proj 0 +hload Shape2DView_outl +hsetprj Shape2DView_proj +hupdate +hhide +hres2d + +# vol_2 and vol_3 - bad edges +checknbshapes vol -edge 9 -m "Number of edges" + +smallview +top +donly vol +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}-2d.png + +vinit +vsetdispmode 1 +vdisplay Shape +vright +vfit +checkview -screenshot -3d -path ${imagedir}/${test_image}-3d-right.png diff --git a/tests/bugs/modalg_7/bug25798 b/tests/bugs/modalg_7/bug25798 new file mode 100644 index 0000000000..8ffbc6f1c0 --- /dev/null +++ b/tests/bugs/modalg_7/bug25798 @@ -0,0 +1,27 @@ +puts "TODO OCC25798 ALL: Faulty shapes in variables faulty_1 to" + +puts "============" +puts "OCC25798" +puts "============" +puts "" +############################################## +# BRepFeat_SplitShape returns invalid result +############################################## + +restore [locate_data_file bug25798_Pump2.brep] p + +explode p +checkshape p +whatis p + +renamevar p_1 f +checkshape f +explode f + +splitshape result f_4 f_4 p_5 + +whatis result +checkshape result +tolerance result + +checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug25856_1 b/tests/bugs/modalg_7/bug25856_1 new file mode 100755 index 0000000000..d91653ad68 --- /dev/null +++ b/tests/bugs/modalg_7/bug25856_1 @@ -0,0 +1,22 @@ +puts "TODO OCC25856 ALL: Faulty shapes in variables faulty_1 to" + +puts "============" +puts "OCC25856" +puts "============" +puts "" +############################################################################################# +# BRepOffsetAPI_ThruSections returns an invalid shape if one wire contains degenerated edges +############################################################################################# + +restore [locate_data_file bug25856_threeWires.brep] t + +explode t + +thrusections -N r 0 0 t_1 t_2 +checkshape r + +fixshape rr r +checkshape rr + +checkview -display r -2d -path ${imagedir}/${test_image}_1.png +checkview -display rr -2d -path ${imagedir}/${test_image}_2.png diff --git a/tests/bugs/modalg_7/bug25856_2 b/tests/bugs/modalg_7/bug25856_2 new file mode 100755 index 0000000000..6689ab3e30 --- /dev/null +++ b/tests/bugs/modalg_7/bug25856_2 @@ -0,0 +1,20 @@ +puts "============" +puts "OCC25856" +puts "============" +puts "" +############################################################################################# +# BRepOffsetAPI_ThruSections returns an invalid shape if one wire contains degenerated edges +############################################################################################# + +restore [locate_data_file bug25856_threeWires.brep] t + +explode t + +thrusections -N r 0 0 t_1 t_2 t_3 +checkshape r + +fixshape rr r +checkshape rr + +checkview -display r -2d -path ${imagedir}/${test_image}_1.png +checkview -display rr -2d -path ${imagedir}/${test_image}_2.png diff --git a/tests/bugs/modalg_7/bug25879 b/tests/bugs/modalg_7/bug25879 new file mode 100755 index 0000000000..a2a8b1834a --- /dev/null +++ b/tests/bugs/modalg_7/bug25879 @@ -0,0 +1,20 @@ +puts "TODO OCC25879 ALL: Error : result of blend fails the bopcheck" + +puts "============" +puts "OCC25879" +puts "============" +puts "" +###################################################### +# result of blend fails the bopcheck +###################################################### + +box Box 10 10 10 +explode Box E + +blend Fillet Box 1 Box_1 1 Box_2 1 Box_3 1 Box_4 1 Box_5 1 Box_6 1 Box_7 1 Box_8 1 Box_9 1 Box_10 1 Box_11 1 Box_12 + +if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Fillet]] == 1 } { + puts "Error : result of blend fails the bopcheck" +} + +checkview -display Fillet -2d -path ${imagedir}/${test_image}-2d.png diff --git a/tests/bugs/modalg_7/bug25979 b/tests/bugs/modalg_7/bug25979 new file mode 100644 index 0000000000..773338f511 --- /dev/null +++ b/tests/bugs/modalg_7/bug25979 @@ -0,0 +1,16 @@ +puts "TODO OCC25979 ALL: Faulty shapes in variables faulty_1 to faulty_" + +puts "========" +puts "OCC25979" +puts "========" +puts "" +############################################## +# fillet creates faces with non-closed wires +############################################## + +restore [locate_data_file bug25979_fillet-missingface1-tcl-Fillet005.brep] Fillet005 + +explode Fillet005 E +blend Fillet003 Fillet005 1.27 Fillet005_1 1.27 Fillet005_2 1.27 Fillet005_3 1.27 Fillet005_4 1.27 Fillet005_5 1.27 Fillet005_7 1.27 Fillet005_8 1.27 Fillet005_10 1.27 Fillet005_11 1.27 Fillet005_12 1.27 Fillet005_13 1.27 Fillet005_14 1.27 Fillet005_15 1.27 Fillet005_16 1.27 Fillet005_17 1.27 Fillet005_18 1.27 Fillet005_19 1.27 Fillet005_20 1.27 Fillet005_21 1.27 Fillet005_22 1.27 Fillet005_23 1.27 Fillet005_24 1.27 Fillet005_25 1.27 Fillet005_26 1.27 Fillet005_27 1.27 Fillet005_28 1.27 Fillet005_29 1.27 Fillet005_30 1.27 Fillet005_31 1.27 Fillet005_33 1.27 Fillet005_34 1.27 Fillet005_35 1.27 Fillet005_36 1.27 Fillet005_37 1.27 Fillet005_38 1.27 Fillet005_39 1.27 Fillet005_40 1.27 Fillet005_41 1.27 Fillet005_42 1.27 Fillet005_43 1.27 Fillet005_44 1.27 Fillet005_46 1.27 Fillet005_47 1.27 Fillet005_48 1.27 Fillet005_49 1.27 Fillet005_50 + +checkshape Fillet003 diff --git a/tests/bugs/modalg_7/bug25983 b/tests/bugs/modalg_7/bug25983 new file mode 100644 index 0000000000..9eb515cdb2 --- /dev/null +++ b/tests/bugs/modalg_7/bug25983 @@ -0,0 +1,24 @@ +puts "TODO OCC25983 ALL: Faulty shapes in variables faulty_1 to faulty_" + +puts "========" +puts "OCC25983" +puts "========" +puts "" +########################################## +# Fusion of sweep and its mirror invalid +########################################## + +restore [locate_data_file bug25983_deform-fusion1-tcl-BSpline.brep] BSpline +wire Knurling-0-spine BSpline +mksweep Knurling-0-spine +setsweep -FR +polyline DWire 0 0 0 1 -0.9999999999999998 0 1.0000000000000002 0.9999999999999998 0 0 0 0 +trotate DWire 0 0 0 1 0 0 134.99999999999693 +ttranslate DWire 9 0 0 +addsweep DWire +buildsweep Knurling -C -S +copy Knurling Clone +tmirror Clone 0 0 0 1 0 0 +bfuse result Knurling Clone + +checkshape result diff --git a/tests/bugs/modalg_7/bug25994 b/tests/bugs/modalg_7/bug25994 new file mode 100644 index 0000000000..c6af846a73 --- /dev/null +++ b/tests/bugs/modalg_7/bug25994 @@ -0,0 +1,18 @@ +puts "========" +puts "OCC25994" +puts "========" +puts "" +######################################### +# Boolean fuse result in invalid result +######################################### + +restore [locate_data_file bug25994_body.brep] body +restore [locate_data_file bug25994_wing.brep] wing + +bfuse result body wing + +checkshape result + +smallview +fit +checkview -screenshot -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/modalg_7/bug26034 b/tests/bugs/modalg_7/bug26034 new file mode 100644 index 0000000000..98441c2b61 --- /dev/null +++ b/tests/bugs/modalg_7/bug26034 @@ -0,0 +1,21 @@ +puts "========" +puts "OCC26034" +puts "========" +puts "" +########################################################## +# Result of revolution aborts the bopcheck if translated +########################################################## + +restore [locate_data_file bug26034_revolve-seg1-tcl-Revolve002.brep] Revolve002 + +set bug_info [ string trim [bopcheck Revolve002]] +if {$bug_info != "This shape seems to be OK."} { + puts "ERROR: Initial shape is invalid." +} + +ttranslate Revolve002 0 0 -0.5 + +set bug_info [ string trim [bopcheck Revolve002]] +if {$bug_info != "This shape seems to be OK."} { + puts "ERROR: OCC26034 is reproduced. bopcheck gives incorrect result after ttranslate operation." +} diff --git a/tests/bugs/modalg_7/bug26077_1 b/tests/bugs/modalg_7/bug26077_1 new file mode 100644 index 0000000000..1068bd1bff --- /dev/null +++ b/tests/bugs/modalg_7/bug26077_1 @@ -0,0 +1,18 @@ +puts "TODO OCC26077 ALL: ERROR: OCC26077 is reproduced." + +puts "========" +puts "OCC26077" +puts "========" +puts "" +################################################# +# nurbsconvert of psphere fails the bopargcheck +################################################# + +psphere s 10 +nurbsconvert result s + +set bug_info [string trim [bopargcheck result]] + +if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} { + puts "ERROR: OCC26077 is reproduced. Command bopargcheck returns FAIL status for nurbsconvert of sphere." +} diff --git a/tests/bugs/modalg_7/bug26077_2 b/tests/bugs/modalg_7/bug26077_2 new file mode 100644 index 0000000000..18f2081dae --- /dev/null +++ b/tests/bugs/modalg_7/bug26077_2 @@ -0,0 +1,57 @@ +puts "TODO OCC26077 ALL: Error: Boolean operation of the given type is not allowed on the given inputs" +puts "TODO OCC26077 ALL: ERROR: OCC26077 is reproduced." +puts "TODO OCC26077 ALL: ERROR: Problematic shape in OCC26077:" + +puts "========" +puts "OCC26077" +puts "========" +puts "" +################################################# +# nurbsconvert of psphere fails the bopargcheck +################################################# + +ellipse Ellipse002-untrimmed 0 0 0 8.2 6.2 +mkedge Ellipse002 Ellipse002-untrimmed 0 6.283185307179586 +trotate Ellipse002 0 0 0 0 0 1 90 +ttranslate Ellipse002 0 0 15 +prism Extrude_Ellipse Ellipse002 0 0 6 +ttranslate Extrude_Ellipse 0 0 -4 +restore [locate_data_file bug26077_ellipsoid1-tcl-Loft-00-section.brep] Loft-00-section +restore [locate_data_file bug26077_ellipsoid1-tcl-Loft-01-section.brep] Loft-01-section +thrusections Loft 1 0 Loft-00-section Loft-01-section +psphere Ellipsoid-sphere 12.5 +deform Ellipsoid Ellipsoid-sphere 1 1.04 1.2 + +set bug_info [string trim [bopargcheck Loft]] +if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} { + puts "ERROR: Problematic shape in OCC26077: Shape Loft is not valid for BOP." +} + +set bug_info [string trim [bopargcheck Ellipsoid]] +if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} { + puts "ERROR: Problematic shape in OCC26077: Shape Ellipsoid is not valid for BOP." +} + +set bug_info [string trim [bfuse Fusion Loft Ellipsoid]] +if {[string length $bug_info] == 0} { + puts "OCC26077: Operation bfuse (bfuse Fusion Loft Ellipsoid) has been finished with OK status." +} else { + puts "ERROR: OCC26077 is reproduced. Operation bfuse (bfuse Fusion Loft Ellipsoid) has been finished with KO status." +} + +set bug_info [string trim [bopargcheck Extrude_Ellipse]] +if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} { + puts "ERROR: Problematic shape in OCC26077: Shape Extrude_Ellipse is not valid for BOP." +} + +set bug_info [string trim [bopargcheck Fusion]] +if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} { + puts "ERROR: Problematic shape in OCC26077: Shape Fusion is not valid for BOP." +} + +set bug_info [string trim [bfuse Fusion002 Extrude_Ellipse Fusion]] +if {[string length $bug_info] == 0} { + puts "OCC26077: Operation bfuse (bfuse Fusion002 Extrude_Ellipse Fusion) has been finished with OK status." +} else { + puts "ERROR: OCC26077 is reproduced. Operation bfuse (bfuse Fusion002 Extrude_Ellipse Fusion) has been finished with KO status." +} diff --git a/tests/bugs/moddata_3/bug23866 b/tests/bugs/moddata_3/bug23866 new file mode 100644 index 0000000000..18b308630b --- /dev/null +++ b/tests/bugs/moddata_3/bug23866 @@ -0,0 +1,35 @@ +puts "========" +puts "OCC23866" +puts "========" +puts "" +######################################## +# GccAna_Circ2d3Tan does not find a circle +######################################## + +restore [locate_data_file bug23866_3curves.brep] 3curves + +explode 3curves + +mkcurve 3d_curve_1 3curves_1 +mkcurve 3d_curve_2 3curves_2 +mkcurve 3d_curve_3 3curves_3 + +to2d 2d_curve_1 3d_curve_1 +to2d 2d_curve_2 3d_curve_2 +to2d 2d_curve_3 3d_curve_3 + +set circles_Nb [llength [cirtang cir 2d_curve_1 2d_curve_2 2d_curve_3] ] + +if { ${circles_Nb} != 8 } { + puts "Error: GccAna_Circ2d3Tan does not find a circle" +} else { + puts "OK: GccAna_Circ2d3Tan find a circle" + checklength cir_1 -l 9429.8727947293246 + checklength cir_2 -l 888.65915068757909 + checklength cir_3 -l 8.5227983514817236 + checklength cir_4 -l 6.2260879234386 + checklength cir_5 -l 14054.240322333564 + checklength cir_6 -l 596.25725451268329 + checklength cir_7 -l 7.6941358383928531 + checklength cir_8 -l 6.8966408969867814 +} diff --git a/tests/bugs/moddata_3/bug25481 b/tests/bugs/moddata_3/bug25481 new file mode 100644 index 0000000000..acbff66cda --- /dev/null +++ b/tests/bugs/moddata_3/bug25481 @@ -0,0 +1,45 @@ +puts "TODO OCC25481 ALL: unexpected polygons are found" +puts "TODO OCC25481 ALL: unexpected pcurves are found" + +puts "================" +puts "OCC25481" +puts "================" +puts "" +####################################################################### +# Edge must not contain obsolete curve representations +####################################################################### + +pcylinder c 1 1 +incmesh c 0.1 -a 60 +subshape c e 1 +unset c +renamevar c_1 e + +polygons e + +set dmp [dump e] +set npol 0 +set npc 0 +foreach l [split $dmp \n] { + if [regexp -- {- PCurve} $l dummy dummy] { + puts $l + incr npc + } + if [regexp -- {- PolygonOnTriangulation} $l dummy dummy] { + puts $l + incr npol + } +} + +if $npol { + puts "Error : $npol unexpected polygons are found" +} else { + puts "OK : unexpected polygons are not found" +} +if $npc { + puts "Error : $npc unexpected pcurves are found" +} else { + puts "OK : unexpected pcurves are not found" +} + +checkview -display e -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/moddata_3/bug25693_1 b/tests/bugs/moddata_3/bug25693_1 new file mode 100755 index 0000000000..f2687bfd4b --- /dev/null +++ b/tests/bugs/moddata_3/bug25693_1 @@ -0,0 +1,17 @@ +puts "TODO OCC25693 ALL: Wire of BSplines fails bopcheck" + +puts "============" +puts "OCC25693" +puts "============" +puts "" +############################### +## Wire of BSplines fails bopcheck +############################### + +restore [locate_data_file bug25693_path3035.brep] result + +if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck result]] == 1 } { + puts "Error : Wire of BSplines fails bopcheck" +} + +checkview -display result -2d -path ${imagedir}/${test_image}-2d.png diff --git a/tests/bugs/moddata_3/bug25693_2 b/tests/bugs/moddata_3/bug25693_2 new file mode 100755 index 0000000000..c2e15c5b48 --- /dev/null +++ b/tests/bugs/moddata_3/bug25693_2 @@ -0,0 +1,24 @@ +puts "TODO OCC25693 ALL: Wire of BSplines fails bopcheck" + +puts "============" +puts "OCC25693" +puts "============" +puts "" +############################### +## Wire of BSplines fails bopcheck +############################### + +restore [locate_data_file bug25693_path3039.brep] path3039 + +prism Extrude_path3039 path3039 0 0 50 + +if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck path3039]] == 1 } { + puts "Error : bad shape" +} + +if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Extrude_path3039]] == 1 } { + puts "Error : Wire of BSplines fails bopcheck" +} + +checkview -display path3039 -2d -path ${imagedir}/${test_image}-path3039-2d.png +checkview -display Extrude_path3039 -2d -path ${imagedir}/${test_image}-Extrude_path3039-2d.png diff --git a/tests/bugs/step/bug25989 b/tests/bugs/step/bug25989 new file mode 100644 index 0000000000..efcc5f47a1 --- /dev/null +++ b/tests/bugs/step/bug25989 @@ -0,0 +1,41 @@ +puts "TODO OCC25989 ALL: Error : The volume of result shape is" + +puts "========" +puts "OCC25989" +puts "========" +puts "" +################################################ +# toridial surface gets damaged in STEP export +################################################ + +set StepFileName ${imagedir}/${casename}_fusion-step1-out.step + +catch {exec rm ${StepFileName}} + +box Box 10 10 10 +pcylinder Cylinder 2 10 +psphere Sphere 5 +ptorus Torus 10 2 + +bclearobjects +bcleartools +baddobjects Box +baddtools Cylinder Sphere Torus +bfillds +bbop Fusion 1 + +checkshape Fusion +bopcheck Fusion + +set FusionVolume [lindex [string trim [vprops Fusion]] 2] + +stepwrite m Fusion +writeall $StepFileName + +stepread $StepFileName a * +renamevar a_1 result + +checkshape result +bopcheck result + +checkprops result -v $FusionVolume diff --git a/tests/bugs/vis/bug25852 b/tests/bugs/vis/bug25852 new file mode 100644 index 0000000000..c5572ace07 --- /dev/null +++ b/tests/bugs/vis/bug25852 @@ -0,0 +1,25 @@ +puts "TODO CR25852 ALL: Faulty shapes in variables faulty_1 to" + +puts "============" +puts "CR25852" +puts "============" +puts "" + +################################################################ +# Text to BRep algorithm produces bad faces for circled symbols +################################################################ + +text2brep t "\u00ae" Courier 10 +whatis t + +vinit View1 +vclear +vtop +vsetdispmode 1 +vdisplay t +vfit + +vmoveto 250 250 +checkshape t + +checkview -screenshot -3d -path ${imagedir}/${test_image}.png