Archived issue #0027226

Mesh - Meshing algorithm fails if edge curves has small defects (bends, loops...)

Open CASCADEOCCT:Meshassigned10 public notes

Search issues

Description

Meshing algorithms used in BRepMesh package do not seem to take in account vertex or edge tolerances when takes tesselation points of edge curve for using them as triangulation nodes. Sometimes it leads to bad diagnistic (ex. SelfIntersectingWire) and failure of meshing algorithm if curve has small defects (bends, loops) covered by tolerance edge or vertex.
This problem appears for branch CR27108 (branch dedicated modification of GCPnts_TangentialDeflection algorithm) and causes regression of tests:
 bugs modalg_2 bug397
 bugs moddata_1 bug22759 (Linux only)
 mesh standard_incmesh C7, V3
 mesh standard_incmesh_parallel C7, V3
 mesh standard_mesh C7, V3
 mesh standard_shading V3

Steps to reproduce

Run tests

Public activity

10 archived notes

Participants are labeled by their role within this record.

01Commenter 1
Note that this issue is regression, hence set to high priority
02Commenter 3
Branch [archived branch] has been created by Commenter 1.

[revision removed]


Detailed log of new commits:

Author: Commenter 1
Date: Fri Apr 1 14:30:15 2016 +0300

    0027226: Meshing algorithm fails if edge curves has small defects (bends, loops...)
    
    Take into account tolerance of edge vertices in order to reduce density of discretization points.
03Commenter 1
Dear Mikhail,

Branch [archived branch] has been created on top of the CR27108 one and implements functionality refusing discretization points that are within tolerance of edge vertices.

Could you please review.
04Commenter 1
Dependency of #0027239 has been added due to indicate relations in Git repository in order to test the bump of patches #27108 + #0027226 + #0027239.

There is no other relation of this issue to #0027239.

Note that branch #0027239 should be used for test campaign as far as it contains all mentioned patches.
05Commenter 5
Reviewed.
06Commenter 3
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
07Commenter 7
Dear Commenter 2,
Branch CR27226 was rebased on current master of occt git-repository.
[revision removed]
08Commenter 8
Dear Commenter 2,
Branch CR27226 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 72 (72 on master)
Windows: 4 (4 on master)
MacOS : 1131

Regressions/Differences/Improvements:
http://occt-tests/CR27226-master-OCCT/Debian70-64/summary.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/summary.html
Improvements:
  bugs modalg_2 bug287,bug397
  mesh advanced_incmesh A9, B1, B2, B3, B7
  mesh advanced_incmesh_parallel A9, B1, B2, B3, B7
  mesh advanced_mesh A9, B1, B2, B3, B7
  mesh advanced_shading A9, B1, B2, B3, B7
  mesh standard_incmesh C7, V3
  mesh standard_incmesh_parallel C7, V3
  mesh standard_mesh C7, V3
  mesh standard_shading V3
Failed:
  bugs iges buc60820_2, buc60823, bug306
  bugs mesh bug25307
  mesh standard_incmesh U2, W5, W7
  mesh standard_incmesh_parallel U2, W5,W7
  mesh standard_mesh U2, W5, W7
  mesh standard_shading U2, W4, W5

http://occt-tests/CR27226-master-Products/Debian70-64/summary.html
http://occt-tests/CR27226-master-Products/Windows-64-VC10/summary.html
Failed:
  bfit pnt100 A1, A2, A3, A5, A6
  bfit pnt1000 A1, A2, A3, A4, A5, A6
  bfit pnt10000 A1, A2, A3, A4, A5, A6
  omf advanced_meshcut M4, U3, Z1, Z2, Z3
  omf advanced_meshfuse F4, O1, O2, O3, ZD4

Testing cases:
http://occt-tests/CR27226-master-OCCT/Debian70-64/bugs/modalg_2/bug397.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/bugs/modalg_2/bug397.html
 bugs modalg_2 bug397 : IMPROVEMENT

http://occt-tests/CR27226-master-OCCT/Debian70-64/bugs/moddata_1/bug22759.html
 bugs moddata_1 bug22759 (Linux only)

http://occt-tests/CR27226-master-OCCT/Debian70-64/mesh/standard_incmesh/C7.html
http://occt-tests/CR27226-master-OCCT/Debian70-64/mesh/standard_incmesh/V3.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/mesh/standard_incmesh/C7.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/mesh/standard_incmesh/V3.html
 mesh standard_incmesh C7, V3: IMPROVEMENT

http://occt-tests/CR27226-master-OCCT/Debian70-64/mesh/standard_incmesh_parallel/C7.html
http://occt-tests/CR27226-master-OCCT/Debian70-64/mesh/standard_incmesh_parallel/V3.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/mesh/standard_incmesh_parallel/C7.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/mesh/standard_incmesh_parallel/V3.html
 mesh standard_incmesh_parallel C7, V3: IMPROVEMENT

http://occt-tests/CR27226-master-OCCT/Debian70-64/mesh/standard_mesh/C7.html
http://occt-tests/CR27226-master-OCCT/Debian70-64/mesh/standard_mesh/V3.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/mesh/standard_mesh/C7.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/mesh/standard_mesh/V3.html
 mesh standard_mesh C7, V3: IMPROVEMENT

http://occt-tests/CR27226-master-OCCT/Debian70-64/mesh/standard_shading/V3.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/mesh/standard_shading/V3.html
 mesh standard_shading V3: IMPROVEMENT

Testing on Linux:
occt component :
Total MEMORY difference: 87230117 / 87953611 [-0.82%]
Total CPU difference: 18994.920000000013 / 19052.160000000054 [-0.30%]
products component :
Total MEMORY difference: 27404469 / 27481797 [-0.28%]
Total CPU difference: 5293.859999999987 / 5313.84999999999 [-0.38%]

Testing on Windows:
occt component :
Total MEMORY difference: 54931828 / 55049509 [-0.21%]
Total CPU difference: 17853.752846398787 / 18156.97199009883 [-1.67%]
products component :
Total MEMORY difference: 18669157 / 18690889 [-0.12%]
Total CPU difference: 5157.25265909995 / 5258.325706999966 [-1.92%]

There are following differences in images found by testdiff.
http://occt-tests/CR27226-master-OCCT/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR27226-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10.html
IMAGE mesh standard_incmesh B9: B9.png differs
IMAGE mesh standard_incmesh S8: S8.png differs
IMAGE mesh standard_shading W7: W7.png differs
IMAGE mesh standard_shading S8: S8.png differs
IMAGE bugs step bug5708: bug5708.png differs
IMAGE bugs vis buc60858: buc60858.png differs
IMAGE bugs modalg_2 bug21415: bug21415.png differs

http://occt-tests/CR27226-master-Products/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR27226-master-Products/Windows-64-VC10/diff-Windows-64-VC10.html
IMAGE parasolid read D3: D3.png differs
09Commenter 9
Dear oan,
Branch [archived branch] has been rejected due to:
- regressions/differences/improvements
- differences in images
10Commenter 3
Branch [archived branch] has been created by Commenter 1.

[revision removed]


Detailed log of new commits:

Author: Commenter 1
Date: Thu Nov 7 12:25:57 2019 +0300

    0027226: Meshing algorithm fails if edge curves has small defects (bends, loops...)
    
    Take into account tolerance of edge vertices in order to reduce density of discretization points.

Related records