Archived issue #0025589

BRepMesh_WireInterferenceChecker doesn't report all cases of self-intersecting wires

CommunityOCCT:Meshassigned15 public notes

Search issues

Description

BRepMesh_WireInterferenceChecker currently doesn't detected all intersections of edges and therefore some faces couldn't be properly meshed.

Steps to reproduce

pload ALL

restore Attachment 1 (BREP) a

tclean a
incmesh a 0.005

restore Attachment 2 (BREP) b

tclean b
incmesh b 0.005

Public activity

15 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: razmyslovich
Date: Wed Dec 10 14:43:53 2014 +0100

    0025589: modify the wire interference checker to detect all types of intersections
02Author
The modification is provided, please, review
03Commenter 1
Dear Dima,

thank you for this fix! Could you please also provide a test case or problematic shape/face using which the problem can be reproduced?
04Commenter 4
Apparently we will not get any test data
05Commenter 5
Dear Dmitry, please check the bug state after integration of the fix for #0026106.
06Author
I checked the latest state of OCC 7.4. The new FaceChecker class still doesn't report all cases of self-intersecting wires. But as the face and edge discretization logic was improved, the final meshing result is ok.
07Commenter 1
Hi Dima,

>>> But as the face and edge discretization logic was improved, the final meshing result is ok.
 
that sounds great!

>>> The new FaceChecker class still doesn't report all cases of self-intersecting wires.

Could you please attach some shapes demonstrating this problem?
If we got some, it would be possible to reproduce it and then improve the component.

If it is impossible to provide such use cases due to some reasons or commercial agreements, I suppose the issue can be closed.
08Author
Hi, Oleg,

Unfortunately, I can't provide you with any reasonable example. Still, I can commit the code changes, which allows to detect the intersections more precisely and you can try to run the tests on your models base.

Should I submit the code changes?

[signature removed]
Dima
09Commenter 1
Hello Dima,

>>> Should I submit the code changes?
Surely! You are always welcome to provide patches and/or ideas for possible improvements.

>>> Unfortunately, I can't provide you with any reasonable example.
>>> Still, I can commit the code changes, which allows to detect the intersections more precisely
It is a pity... However, have you tested these changes somehow to check how they work in your environment?
If so, probably, there is some small, maybe synthetic, example shape, or just a face, that you can provide without loss of confidentiality.

>>> and you can try to run the tests on your models base.
That is a good idea.
And it is easy to do, if you have already ported these changes to current code base of BRepMesh.

[signature removed]
Oleg.
10Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Thu Aug 8 13:54:53 2019 +0200

    0025589: Fix the intersection checking for mesh: consider PointOnSegment case as intersection; use the shortest path when calculate the self-intersection area
11Author
Hello, Oleg,

as agreed I committed the ported changes for FaceChecker. Also, I was able to extract 2 faces where the changes have an effect, surely, it's not the sole faces in our model database, which are affected.
Please, run your tests and review the code changes.

[signature removed]
Dima

12Commenter 2
Branch [archived branch] has been updated by Commenter 1.

[revision removed]


Detailed log of new commits:

Author: Commenter 1
Date: Fri Aug 9 11:40:09 2019 +0300

    # Added test cases

Author: Commenter 1
Date: Fri Aug 9 11:23:46 2019 +0300

    # Correction of code style

13Commenter 1
Test reports:
http://occt-tests/CR25589_1-master-OAN-OCCT/Debian80-64/diff_summary.html

Regressions:
bugs moddata_2 bug428 (several faces are missing triangulation)
perf modalg bug25742_1 (several faces are missing triangulation)
bugs modalg_5 bug25847 (several faces are missing triangulation)
bugs moddata_1 bug22761
bugs modalg_2 bug21060

Improvements:
mesh advanced A6
mesh standard U6
mesh standard V2
mesh standard U7
bugs moddata_1 bug54
bugs modalg_1 bug1477_11
14Commenter 1
Dear Mikhail,

please have a look at the patch and test results and give your opinion.
15Commenter 15
I think it is needed to complete the patch, so that not to miss faces that earlier were well meshed.