Archived issue #0025589
BRepMesh_WireInterferenceChecker doesn't report all cases of self-intersecting wires
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
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.
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
[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
The modification is provided, please, review
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?
thank you for this fix! Could you please also provide a test case or problematic shape/face using which the problem can be reproduced?
Apparently we will not get any test data
Dear Dmitry, please check the bug state after integration of the fix for #0026106.
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.
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.
>>> 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.
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
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
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.
>>> 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.
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
[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
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
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
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
[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
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
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
Dear Mikhail,
please have a look at the patch and test results and give your opinion.
please have a look at the patch and test results and give your opinion.
I think it is needed to complete the patch, so that not to miss faces that earlier were well meshed.