mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51: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:
parent
e2fc86bbd9
commit
061cd2d841
@ -110,7 +110,7 @@ void MeshTest_CheckTopology::Perform (Draw_Interpretor& di)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check distances between corresponding points
|
// check distances between corresponding points
|
||||||
Standard_Real aSqDefle = Max(aT1->Deflection(), aT2->Deflection());
|
Standard_Real aSqDefle = BRep_Tool::Tolerance(aEdge);
|
||||||
aSqDefle *= aSqDefle;
|
aSqDefle *= aSqDefle;
|
||||||
const TColgp_Array1OfPnt& aPoints1 = aT1->Nodes();
|
const TColgp_Array1OfPnt& aPoints1 = aT1->Nodes();
|
||||||
const TColgp_Array1OfPnt& aPoints2 = aT2->Nodes();
|
const TColgp_Array1OfPnt& aPoints2 = aT2->Nodes();
|
||||||
|
36
tests/bugs/mesh/bug29149
Normal file
36
tests/bugs/mesh/bug29149
Normal 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
|
||||||
|
|
@ -1,5 +1,7 @@
|
|||||||
set TheFileName OCC22145.stp
|
set TheFileName OCC22145.stp
|
||||||
set bug_freenodes "OCC22687"
|
set bug_freenodes "OCC22687"
|
||||||
|
set bug_cross "OCC22687"
|
||||||
|
set nbcross(ALL) 8
|
||||||
if { [string compare $command "shading"] == 0 } {
|
if { [string compare $command "shading"] == 0 } {
|
||||||
set nbfreenodes(ALL) 4
|
set nbfreenodes(ALL) 4
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
set TheFileName OCC22145.stp
|
set TheFileName OCC22145.stp
|
||||||
set bug_freenodes "OCC22687"
|
set bug_freenodes "OCC22687"
|
||||||
|
set bug_cross "OCC22687"
|
||||||
|
set nbcross(ALL) 8
|
||||||
if { [string compare $command "shading"] == 0 } {
|
if { [string compare $command "shading"] == 0 } {
|
||||||
set nbfreenodes(ALL) 4
|
set nbfreenodes(ALL) 4
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
set TheFileName OCC22302.brep
|
set TheFileName OCC22302.brep
|
||||||
set bug_freenodes "OCC22687"
|
set bug_freenodes "OCC22687"
|
||||||
set bug_area "OCC22687"
|
set bug_area "OCC22687"
|
||||||
|
set bug_cross "OCC22687"
|
||||||
|
set nbcross(ALL) 8
|
||||||
if { [string compare $command "shading"] == 0 } {
|
if { [string compare $command "shading"] == 0 } {
|
||||||
set nbfreenodes(ALL) 4
|
set nbfreenodes(ALL) 4
|
||||||
} else {
|
} else {
|
||||||
|
@ -6,4 +6,6 @@ set TheFileName shading_027.brep
|
|||||||
###set bug_withouttri "OCC23106"
|
###set bug_withouttri "OCC23106"
|
||||||
###set nbwithouttri(All) 1
|
###set nbwithouttri(All) 1
|
||||||
set bug_freenodes "OCC23105"
|
set bug_freenodes "OCC23105"
|
||||||
|
set bug_cross "OCC23105"
|
||||||
set nbfreenodes(All) 2
|
set nbfreenodes(All) 2
|
||||||
|
set nbcross(ALL) 1
|
@ -1,3 +1,3 @@
|
|||||||
set TheFileName shading_068.brep
|
set TheFileName shading_068.brep
|
||||||
###set bug_cross "OCC22687"
|
set bug_cross "OCC22687"
|
||||||
###set nbcross(ALL) 1
|
set nbcross(ALL) 2
|
||||||
|
@ -1 +1,3 @@
|
|||||||
set TheFileName shading_wrongshape_020.brep
|
set TheFileName shading_wrongshape_020.brep
|
||||||
|
set bug_cross "OCC22687"
|
||||||
|
set nbcross(ALL) 2
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
set TheFileName shading_wrongshape_022.brep
|
set TheFileName shading_wrongshape_022.brep
|
||||||
|
|
||||||
|
set bug_cross "OCC22687"
|
||||||
|
set nbcross(All) 2
|
||||||
if { [string compare $command "shading"] != 0 } {
|
if { [string compare $command "shading"] != 0 } {
|
||||||
#set bug_cross "OCC22687"
|
|
||||||
#set nbcross(All) 2
|
|
||||||
}
|
}
|
@ -3,6 +3,8 @@ set TheFileName shading_wrongshape_030.brep
|
|||||||
###set rel_tol 6
|
###set rel_tol 6
|
||||||
###set bug_withouttri "OCC22687"
|
###set bug_withouttri "OCC22687"
|
||||||
###set nbwithouttri(All) 4
|
###set nbwithouttri(All) 4
|
||||||
|
set bug_cross "OCC22687"
|
||||||
|
set nbcross(All) 4
|
||||||
if { [string compare $command "shading"] == 0 } {
|
if { [string compare $command "shading"] == 0 } {
|
||||||
set rel_tol 0.5456843734442471
|
set rel_tol 0.5456843734442471
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user