View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0023918||Community||OCCT:Mesh||public||2013-04-19 19:22||2013-12-19 13:57|
|Status||closed||Resolution||no change required|
|Target Version||6.7.0||Fixed in Version||6.7.0|
|Summary||0023918: The triangulation of a face cannot be further refined by setting lower deflection in BRepMesh_IncrementalMesh|
|Description||When meshing the appended face, there seems to be a limit how much the mesh can be refined. Setting lower deflection doesn't have an effect then.|
Is this intended or is it a bug?
The problem occurs with OCCT 6.5.4 - 6.6.0. Other versions were not tested.
|Steps To Reproduce||restore Volute2.brep v|
incmesh v 0.1
incmesh v 0.001
incmesh v 0.00001
|Tags||No tags attached.|
|Test case number|
Volute2.zip (482,710 bytes)
this behavior is not a bug, because the minimum value of deflection is restricted below by doubled value of shape tolerance. Draw command "tolerance" gives the following result for the attached shape:
restore Volute2.brep a
#Tolerance MAX=0.070841115630970494 AVG=0.021582167461639067 MIN=9.9999999999999995e-008
#FACE : MAX=9.9999999999999995e-008 AVG=9.9999999999999995e-008 MIN=9.9999999999999995e-008
#EDGE : MAX=0.070841115630970494 AVG=0.0126992394548211 MIN=1.3152122181594499e-006
#VERTEX : MAX=0.070841115630970494 AVG=0.026922884275949677 MIN=0.0098449269425767306
This means that the user is able to set deflection equal or greater than ~0.14 (0.07 * 2). In case if he/she sets lower value, the algorithm will skip it and will take into account the minimum possible value mentioned above.
Obviously, this restriction is intended as far as it seems illogical to represent shape with higher precision than its boundaries are defined.
Regarding the shape attached to this bug, you are able to change its tolerance using Draw command "settolerance" thereby regulating the limiting value of tolerance allowed for mesher:
restore Volute2.brep a
incmesh a 0.05
#This shape contains 36745 triangles.
# 18604 nodes.
#Maximal deflection 0.14065200349781914
settolerance a 0.01
incmesh a 0.05
#This shape contains 102935 triangles.
# 51852 nodes.
#Maximal deflection 0.060863277421657237
Thanks for the analysis and the helpful note about the minimum value of deflection.
Wouldn't it be good to add this piece of information to the code documentation of BRepMesh_IncrementalMesh? In this way, further isue tracker entries about this matter could be prevented. Also the description of deflection and deviation angle is missing. About these you can find something in the Express Mesh User's Guide, but that's not public. Should I open a separate issue tracker entry for code documentation or can it be done in the frame of the current one?
(In the Modeling Algorithms User's Guide I found a mention of BRepMesh in chapter 10 but it also doesn't explain the meshing parameters.)
Simply setting a lower tolerance seems to be dangerous. In case of the example appended to this Mantis entry, the shape becomes invalid when I set the tolerance to 0.01. Probably, there is no safe way to set the tolerance to the smallest possible value that leaves the shape valid, is there?
Your suggestion about updating of documentation sounds reasonable. It is preferable to register new feature issue in Mantis, because the explanation of behavior given above is just a part of logic implemented in BRepMesh respectively calculation of tolerance value and it has another nuances that are not been considered in context of current question.
Could you please register a new one for this task?
Regarding the case when setting of lower tolerance leads to invalidation of a shape, actually you could set the minimum tolerance and leave shape valid. This result can be achieved by using command "fixshape" after setting a new value of tolerance. It will try to fix all anomalies of shape, existing or that are introduced during execution of some operation. Note that the value of tolerance will be changed to fit the geometrical parameters of model defined during design time.
||Documentation for BRepMesh_IncrementalMesh will be update with 0024117 issue|
|2013-04-19 19:22||Timo||New Issue|
|2013-04-19 19:22||Timo||Assigned To||=> oan|
|2013-04-19 19:22||Timo||File Added: Volute2.zip|
|2013-07-23 15:23||oan||Note Added: 0025136|
|2013-07-23 15:25||oan||Assigned To||oan => Timo|
|2013-07-23 15:25||oan||Status||new => feedback|
|2013-07-26 18:31||Timo||Note Added: 0025178|
|2013-07-26 18:31||Timo||Assigned To||Timo => oan|
|2013-07-26 18:31||Timo||Status||feedback => assigned|
|2013-08-20 12:16||oan||Note Added: 0025348|
|2013-08-20 12:16||oan||Note Edited: 0025348|
|2013-08-20 12:32||oan||Note Edited: 0025348|
|2013-08-20 12:33||oan||Assigned To||oan => Timo|
|2013-08-20 12:33||oan||Status||assigned => feedback|
|2013-08-20 16:18||Timo||Issue cloned: 0024117|
|2013-08-20 16:18||Timo||Relationship added||related to 0024117|
|2013-08-20 17:16||Timo||Assigned To||Timo => oan|
|2013-08-20 17:16||Timo||Status||feedback => resolved|
|2013-08-20 17:18||Timo||Resolution||open => no change required|
|2013-08-20 17:24||oan||Assigned To||oan => bugmaster|
|2013-08-20 17:25||oan||Status||resolved => reviewed|
||Assigned To||bugmaster => mkv|
|2013-08-20 17:45||bugmaster||Note Added: 0025357|
|2013-08-20 17:45||bugmaster||Status||reviewed => verified|
|2013-08-20 17:45||bugmaster||Assigned To||mkv => oan|
|2013-08-21 14:47||bugmaster||Target Version||=> 6.7.0|
|2013-12-19 13:52||bugmaster||Status||verified => closed|
|2013-12-19 13:57||bugmaster||Fixed in Version||=> 6.7.0|