View Issue Details

IDProjectCategoryView StatusLast Update
0023918CommunityOCCT:Meshpublic2013-12-19 13:57
ReporterTimo Assigned Tooan  
PrioritynormalSeverityminor 
Status closedResolutionno change required 
Product Version6.5.4 
Target Version6.7.0Fixed in Version6.7.0 
Summary0023918: The triangulation of a face cannot be further refined by setting lower deflection in BRepMesh_IncrementalMesh
DescriptionWhen 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 Reproducerestore Volute2.brep v
whatis v
tclean v
trinfo v
incmesh v 0.1
trinfo v
tclean v
trinfo v
incmesh v 0.001
trinfo v
incmesh v 0.00001
trinfo v
TagsNo tags attached.
Test case number

Attached Files

  • Volute2.zip (482,710 bytes)

Relationships

related to 0024117 closedbugmaster Enhance documentation of BRepMesh_IncrementalMesh 

Activities

Timo

2013-04-19 19:22

developer  

Volute2.zip (482,710 bytes)

oan

2013-07-23 15:23

developer   ~0025136

Dear Timo,

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 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
tclean a
incmesh a 0.05
trinfo a
#This shape contains 36745 triangles.
# 18604 nodes.
#Maximal deflection 0.14065200349781914

tclean a
settolerance a 0.01
incmesh a 0.05
trinfo a
#This shape contains 102935 triangles.
# 51852 nodes.
#Maximal deflection 0.060863277421657237


Best Regards

Timo

2013-07-26 18:31

developer   ~0025178

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?

oan

2013-08-20 12:16

developer   ~0025348

Last edited: 2013-08-20 12:32

Hello Timo!

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.

Best Regards

bugmaster

2013-08-20 17:45

administrator   ~0025357

Documentation for BRepMesh_IncrementalMesh will be update with 0024117 issue

Issue History

Date Modified Username Field Change
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
2013-08-20 17:36 mkv 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