mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-24 13:50:49 +03:00
0030008: BRepMesh does not respect angular deflection in internal area of bspline surface
1. Check whether the mesh satisfies the required angular deflection has been amended. Namely normals (to the surface) in the ends of any not "frontier" link are made collinear (with the given angular tolerance). 2. New parameters AngleInterior and DeflectionInterior have been added in IMeshTools_Parameters structure. 3. In case of thin long faces with internal edges, add points of internal edges to control parameters using grabParamsOfInternalEdges() in order to avoid aberrations on its ends. Disable addition of parameters from boundary edges in case of BSpline surface. Deviation can be controlled through the deflection parameter. 4. Grab parameters from edges in case if there is just a single interval on BSpline surface along U and V direction.
This commit is contained in:
@@ -12,5 +12,5 @@ tclean result
|
||||
incmesh result 0.1
|
||||
triangles result
|
||||
|
||||
checktrinfo result -tri 646 -nod 568
|
||||
checktrinfo result -tri 638 -nod 564
|
||||
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
||||
|
@@ -14,6 +14,6 @@ vdisplay result
|
||||
vsetdispmode result 1
|
||||
vfit
|
||||
|
||||
checktrinfo result -tri 2788 -nod 2648
|
||||
checktrinfo result -tri 2708 -nod 2608
|
||||
|
||||
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
||||
|
@@ -20,7 +20,7 @@ vsetdispmode result 1
|
||||
vdisplay result
|
||||
vfit
|
||||
|
||||
checktrinfo result -tri 6046 -nod 5924
|
||||
checktrinfo result -tri 5810 -nod 5806
|
||||
|
||||
checkmaxtol result -ref 0.92213088179312575
|
||||
checknbshapes result -shell 1
|
||||
|
@@ -15,5 +15,5 @@ fit
|
||||
isos a 0
|
||||
triangles a
|
||||
|
||||
checktrinfo a -tri 2971 -nod 1592 -defl 0.083467373173701759 -tol_rel_defl 0.05 -tol_rel_tri 0.05 -tol_rel_nod 0.05
|
||||
checktrinfo a -tri 2971 -nod 1592 -defl 0.091190343620839553 -tol_rel_defl 0.05 -tol_rel_tri 0.05 -tol_rel_nod 0.05
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
17
tests/bugs/mesh/bug30008_1
Normal file
17
tests/bugs/mesh/bug30008_1
Normal file
@@ -0,0 +1,17 @@
|
||||
puts "======="
|
||||
puts "0030008: BRepMesh does not respect angular deflection in internal area of bspline surface"
|
||||
puts "======="
|
||||
puts ""
|
||||
|
||||
restore [locate_data_file bug30008_badshape.brep] result
|
||||
|
||||
vinit
|
||||
vsetdispmode 1
|
||||
|
||||
vdisplay result
|
||||
vviewparams -scale 8.46292 -proj 0.653203 -0.644806 0.396926 -up -0.0109833 0.51609 0.856464 -at 347.559 1026.89 219.262 -eye 2080.75 -684.022 1272.45
|
||||
|
||||
tricheck result
|
||||
checktrinfo result -tri 11826 -nod 7310 -defl 7.6167024939147652
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
32
tests/bugs/mesh/bug30008_2
Normal file
32
tests/bugs/mesh/bug30008_2
Normal file
@@ -0,0 +1,32 @@
|
||||
puts "======="
|
||||
puts "0030008: BRepMesh does not respect angular deflection in internal area of bspline surface"
|
||||
puts "======="
|
||||
puts ""
|
||||
|
||||
pcylinder cy 100 500
|
||||
bsplinecurve cc 5 4 -494.543457494654 6 500 4 507.372773368102 4 1501.91623086297 6 -500 -798.578274581199 755.284518447357 1 -500 -646.205376770376 627.428476092882 1 -500 -493.832478959552 499.572433738407 1 -500 -341.459581148729 371.716391383932 1 -500 -189.086683337906 243.860349029457 1 -500 -35.5842111132817 115.056481200973 1 -500 -33.7993197286247 114.2995541724 0.957903314642061 -500 -31.778022626919 114.565662984205 0.95790331464206 -500 -30.2498570721059 115.75876223351 1 -500 84.6852511720001 279.903107977019 1 -500 198.774589601206 442.839569245217 1 -500 312.863928030413 605.776030513415 1 -500 426.953266459619 768.712491781612 1 -500 541.042604888826 931.64895304981 1
|
||||
extsurf ss cc 1 0 0
|
||||
|
||||
mkface ff ss -494.543457494654 1501.91623086297 0 1000
|
||||
halfspace hs ff 0 0 500
|
||||
|
||||
bcut rc cy hs
|
||||
explode rc f
|
||||
copy rc_1 result
|
||||
tscale result 0 0 0 0.01
|
||||
nurbsconvert result result
|
||||
|
||||
incmesh result 0.15 -a 20
|
||||
|
||||
tricheck result
|
||||
checktrinfo result -tri 193 -nod 147 -defl 0.042090809832482222 -tol_abs_defl 1.0e-7
|
||||
|
||||
vinit
|
||||
|
||||
vdefaults -autoTriang 0
|
||||
vdisplay result
|
||||
vfit
|
||||
vsetdispmode 1
|
||||
vviewparams -scale 335.304 -eye 1.95918 0.124681 5.05411 -at 0.0736354 0.0378839 1.46922 -up -0.748808 0.542534 0.380715 -proj 0.4654 0.0214236 0.884841
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
@@ -12,6 +12,6 @@ vdisplay result
|
||||
vfit
|
||||
|
||||
tricheck result
|
||||
checktrinfo result -tri 4006 -nod 2092 -max_defl 0.46
|
||||
checktrinfo result -tri 3424 -nod 1801 -max_defl 0.52
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@@ -19,7 +19,7 @@ vdisplay result
|
||||
vfit
|
||||
vsetdispmode result 1
|
||||
|
||||
checktrinfo result -tri 21446 -nod 11157
|
||||
checktrinfo result -tri 21654 -nod 11261
|
||||
checkprops result -s 24861.2
|
||||
checkshape result
|
||||
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
||||
|
@@ -13,5 +13,5 @@ tclean result
|
||||
incmesh result .1
|
||||
triangles result
|
||||
|
||||
checktrinfo result -tri 355 -nod 210
|
||||
checktrinfo result -tri 335 -nod 200
|
||||
checkview -display result -3d -path ${imagedir}/${test_image}.png
|
||||
|
@@ -2,5 +2,5 @@ set TheFileName OCC357.brep
|
||||
if { [string compare $command "shading"] == 0 } {
|
||||
#set bug_area "OCC22687"
|
||||
set max_rel_tol_diff 0.25
|
||||
set rel_tol 1.0015290236679502
|
||||
set rel_tol 1.7957583466671934
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
set TheFileName shading_147.brep
|
||||
if { [string compare $command "shading"] == 0 } {
|
||||
set rel_tol 0.8093314937741523
|
||||
set rel_tol 0.8791879462861206
|
||||
set max_rel_tol_diff 0.001
|
||||
}
|
||||
|
@@ -3,7 +3,7 @@ set TheFileName shading_wrongshape_004.brep
|
||||
if { [string compare $command "shading"] == 0 } {
|
||||
set rel_tol 0.06073194250400039
|
||||
} else {
|
||||
set rel_tol 0.0021948131898279323
|
||||
set rel_tol 0.003702162749171707
|
||||
}
|
||||
set max_rel_tol_diff 0.001
|
||||
###set bug_withouttri "OCC22687"
|
||||
|
Reference in New Issue
Block a user