View Issue Details

IDProjectCategoryView StatusLast Update
0033476CommunityOCCT:Meshpublic2023-11-01 16:19
Reporterjustinsavage35 Assigned Toakaftasev  
PrioritynormalSeverityminor 
Status newResolutionopen 
PlatformWindowsOSVC++ 2017 
Product Version7.7.1 
Target VersionUnscheduled 
Summary0033476: Mesh - Fillet and Torus Meshing Visual Artifacts
DescriptionA cylinder with radius 25 mm and height (10 mm) with filleted edge of 1 mm will show the bumps / artifacts when meshed with linear deflection = 0.005 and angular deflection = 26.5 degrees (0.4625 rad) and Relative=true, see images attached.

This also occurs with a torus, both .step files and .objs are attached.
Steps To ReproduceMesh the .step files with aMeshParams of linear deflection = 0.005, angular deflection = 26.5 degrees (0.4625 rad) and Relative=true
TagsNo tags attached.
Test case number

Attached Files

  • token.step (11,309 bytes)
  • torus.step (13,933 bytes)
  • torus.obj (84,802 bytes)
  • token.obj (150,919 bytes)
  • filet_artifacts.PNG (181,693 bytes)
  • filet_artifacts_mesh.PNG (205,366 bytes)
  • torus_artifacts.PNG (232,513 bytes)
  • torus_artifacts_mesh.PNG (234,842 bytes)
  • BRepMesh_EdgeDiscret.cxx (23,812 bytes)
  • BRepMesh_EdgeDiscret.hxx (4,182 bytes)
  • BRepMesh_ModelHealer.cxx (19,863 bytes)
  • BRepMesh_ModelHealer.hxx (7,116 bytes)

Activities

justinsavage35

2023-09-11 19:33

reporter   ~0114136

token.step
token.step (11,309 bytes)

justinsavage35

2023-09-11 19:34

reporter   ~0114137

torus.step
torus.step (13,933 bytes)

justinsavage35

2023-09-11 19:34

reporter   ~0114138

token.obj
torus.obj (84,802 bytes)

justinsavage35

2023-09-11 19:35

reporter   ~0114139

token.obj
token.obj (150,919 bytes)

justinsavage35

2023-09-11 19:35

reporter   ~0114140

filet mesh images
filet_artifacts.PNG (181,693 bytes)
filet_artifacts_mesh.PNG (205,366 bytes)

justinsavage35

2023-09-11 19:36

reporter   ~0114141

torus images
torus_artifacts.PNG (232,513 bytes)
torus_artifacts_mesh.PNG (234,842 bytes)

justinsavage35

2023-09-14 17:21

reporter   ~0114171

Hi akaftasev,

I have done some debugging with the token.step. The issue is caused by the differing number of points on the circular edges and how the torus’s face is discretized. The inner circular edge (radius 24 mm) has 42 points and outer circular edge (radius 25 mm) has radius 43 points.

The torus face discretization uses the inner and outer edge U values from “GetParametersU()” (line 87 OCCT\src\BRepMesh\BRepMesh_TorusRangeSplitter.cxx) with the “aStdStep” check (line 172 OCCT\src\BRepMesh\BRepMesh_TorusRangeSplitter.cxx) to insure the points aren’t too close.

The torus using a mixture of U values from the inner and outer edges results in artifacts shown above.

I am unsure on what the best solution is to this. Potentially, as part of the ModelHealer there is a check for Torus face shapes which checks if the inner and outer edge has the same number of points? If they are different then the U values of the higher is used for both? This could be applied to NURB surfaces where the same type of artifacts exist.

justinsavage35

2023-10-31 19:50

reporter   ~0114458

Hi Akaftasev,

I have developed a function which compares the edges of the torus and adjusts them to match in surface UV space. Please let me know what you think and if you have any questions.

OCCT\src\BRepMesh\BRepMesh_ModelHealer.hxx line 170
OCCT\src\BRepMesh\BRepMesh_ModelHealer.cxx lines 261 393 - 442 (fixFaceEdgePoints function)

OCCT\src\BRepMesh\BRepMesh_EdgeDiscret.hxx line 75
OCCT\src\BRepMesh\BRepMesh_EdgeDiscret.cxx lines 351 - 716 (TessellateEdgeMatch)
BRepMesh_EdgeDiscret.cxx (23,812 bytes)
BRepMesh_EdgeDiscret.hxx (4,182 bytes)
BRepMesh_ModelHealer.cxx (19,863 bytes)
BRepMesh_ModelHealer.hxx (7,116 bytes)

justinsavage35

2023-11-01 16:19

reporter   ~0114460

Hi @akaftasev, apologies my previous notes did not use the @ symbol.

Issue History

Date Modified Username Field Change
2023-09-11 19:32 justinsavage35 New Issue
2023-09-11 19:32 justinsavage35 Assigned To => oan
2023-09-11 19:33 justinsavage35 Note Added: 0114136
2023-09-11 19:33 justinsavage35 File Added: token.step
2023-09-11 19:34 justinsavage35 Note Added: 0114137
2023-09-11 19:34 justinsavage35 File Added: torus.step
2023-09-11 19:34 justinsavage35 Note Added: 0114138
2023-09-11 19:34 justinsavage35 File Added: torus.obj
2023-09-11 19:35 justinsavage35 Note Added: 0114139
2023-09-11 19:35 justinsavage35 File Added: token.obj
2023-09-11 19:35 justinsavage35 Note Added: 0114140
2023-09-11 19:35 justinsavage35 File Added: filet_artifacts.PNG
2023-09-11 19:35 justinsavage35 File Added: filet_artifacts_mesh.PNG
2023-09-11 19:36 justinsavage35 Note Added: 0114141
2023-09-11 19:36 justinsavage35 File Added: torus_artifacts.PNG
2023-09-11 19:36 justinsavage35 File Added: torus_artifacts_mesh.PNG
2023-09-12 11:23 dpasukhi Summary Fillet and Torus Meshing Visual Artifacts => Mesh - Fillet and Torus Meshing Visual Artifacts
2023-09-12 11:24 dpasukhi Assigned To oan => akaftasev
2023-09-12 11:24 dpasukhi Target Version => Unscheduled
2023-09-14 17:21 justinsavage35 Note Added: 0114171
2023-10-31 19:50 justinsavage35 Note Added: 0114458
2023-10-31 19:50 justinsavage35 File Added: BRepMesh_EdgeDiscret.cxx
2023-10-31 19:50 justinsavage35 File Added: BRepMesh_EdgeDiscret.hxx
2023-10-31 19:50 justinsavage35 File Added: BRepMesh_ModelHealer.cxx
2023-10-31 19:50 justinsavage35 File Added: BRepMesh_ModelHealer.hxx
2023-11-01 16:19 justinsavage35 Note Added: 0114460