1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-03 17:56:21 +03:00

0029149: BRepMesh produces invalid mesh on the bound of adjacent faces

1. Test case for the issue has been created. The issue is fixed by the patch #26106.

2. Since now, "tricheck" command uses edge tolerance instead of edge deflection to check cross-face-errors (set of nodes of the edge on 1st face must be equal to set of nodes of the same edge on 2nd face).
This commit is contained in:
nbv 2018-11-15 12:00:58 +03:00 committed by apn
parent e2fc86bbd9
commit 061cd2d841
10 changed files with 53 additions and 5 deletions

View File

@ -110,7 +110,7 @@ void MeshTest_CheckTopology::Perform (Draw_Interpretor& di)
}
// check distances between corresponding points
Standard_Real aSqDefle = Max(aT1->Deflection(), aT2->Deflection());
Standard_Real aSqDefle = BRep_Tool::Tolerance(aEdge);
aSqDefle *= aSqDefle;
const TColgp_Array1OfPnt& aPoints1 = aT1->Nodes();
const TColgp_Array1OfPnt& aPoints2 = aT2->Nodes();

36
tests/bugs/mesh/bug29149 Normal file
View File

@ -0,0 +1,36 @@
puts "======="
puts "0029149: BRepMesh produces invalid mesh on the bound of adjacent faces"
puts "======="
puts ""
restore [locate_data_file bug29149.brep] result
tclean result
incmesh result 0.1
checktrinfo result -tri 7998 -nod 4931 -defl 1.2277233425620309
# Reduce shape tolerance in order to hard check of mesh quality
settolerance result 1.0e-7
if { [llength [tricheck result] ] != 0 } {
puts "Error : Invalid mesh"
} else {
puts "Mesh is OK"
}
smallview
isos result 0
triangles result
point p1 288.65908971200806 148.1268376105981 -99.370459908186973
point p2 288.66203942568802 148.1262245331892 -99.373827710063281
point p3 288.66358529587593 148.129348718649 -99.365721723137995
don p1 p2 p3
fit
don result
checkview -screenshot -2d -path ${imagedir}/${test_image}_zoom.png
fit
checkview -screenshot -2d -path ${imagedir}/${test_image}_nozoom.png

View File

@ -1,5 +1,7 @@
set TheFileName OCC22145.stp
set bug_freenodes "OCC22687"
set bug_cross "OCC22687"
set nbcross(ALL) 8
if { [string compare $command "shading"] == 0 } {
set nbfreenodes(ALL) 4
} else {

View File

@ -1,5 +1,7 @@
set TheFileName OCC22145.stp
set bug_freenodes "OCC22687"
set bug_cross "OCC22687"
set nbcross(ALL) 8
if { [string compare $command "shading"] == 0 } {
set nbfreenodes(ALL) 4
} else {

View File

@ -1,6 +1,8 @@
set TheFileName OCC22302.brep
set bug_freenodes "OCC22687"
set bug_area "OCC22687"
set bug_cross "OCC22687"
set nbcross(ALL) 8
if { [string compare $command "shading"] == 0 } {
set nbfreenodes(ALL) 4
} else {

View File

@ -6,4 +6,6 @@ set TheFileName shading_027.brep
###set bug_withouttri "OCC23106"
###set nbwithouttri(All) 1
set bug_freenodes "OCC23105"
set bug_cross "OCC23105"
set nbfreenodes(All) 2
set nbcross(ALL) 1

View File

@ -1,3 +1,3 @@
set TheFileName shading_068.brep
###set bug_cross "OCC22687"
###set nbcross(ALL) 1
set bug_cross "OCC22687"
set nbcross(ALL) 2

View File

@ -1 +1,3 @@
set TheFileName shading_wrongshape_020.brep
set bug_cross "OCC22687"
set nbcross(ALL) 2

View File

@ -1,6 +1,6 @@
set TheFileName shading_wrongshape_022.brep
set bug_cross "OCC22687"
set nbcross(All) 2
if { [string compare $command "shading"] != 0 } {
#set bug_cross "OCC22687"
#set nbcross(All) 2
}

View File

@ -3,6 +3,8 @@ set TheFileName shading_wrongshape_030.brep
###set rel_tol 6
###set bug_withouttri "OCC22687"
###set nbwithouttri(All) 4
set bug_cross "OCC22687"
set nbcross(All) 4
if { [string compare $command "shading"] == 0 } {
set rel_tol 0.5456843734442471
} else {