View Issue Details

IDProjectCategoryView StatusLast Update
0025589CommunityOCCT:Meshpublic2021-11-01 18:14
Reporterdrazmyslovich Assigned Tooan  
PrioritynormalSeverityminor 
Status assignedResolutionopen 
PlatformWindowsOSVC++ 2010 
Product Version6.8.0 
Target Version7.7.0 
Summary0025589: BRepMesh_WireInterferenceChecker doesn't report all cases of self-intersecting wires
DescriptionBRepMesh_WireInterferenceChecker currently doesn't detected all intersections of edges and therefore some faces couldn't be properly meshed.
Steps To Reproducepload ALL

restore face1507.brep a

tclean a
incmesh a 0.005

restore face3472.brep b

tclean b
incmesh b 0.005
TagsNo tags attached.
Test case number

Attached Files

  • face1507.brep (4,133 bytes)
  • face3472.brep (9,299 bytes)

Activities

git

2014-12-10 16:44

administrator   ~0035272

Branch CR25589 has been created by drazmyslovich.

SHA-1: 30d665dfb036fce22aae37386e711ac13cde7391


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

drazmyslovich

2014-12-10 16:44

developer   ~0035274

The modification is provided, please, review

oan

2014-12-11 13:43

developer   ~0035331

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?

abv

2018-02-25 21:10

manager   ~0074128

Apparently we will not get any test data

msv

2018-11-02 17:50

developer   ~0080652

Dear Dmitry, please check the bug state after integration of the fix for 0026106.

drazmyslovich

2019-07-05 16:32

developer   ~0085445

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.

oan

2019-07-06 14:30

developer   ~0085454

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.

drazmyslovich

2019-08-02 19:29

developer   ~0086005

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?

Regards,
Dima

oan

2019-08-03 13:19

developer   ~0086006

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.

Best regards,
Oleg.

git

2019-08-08 14:57

administrator   ~0086089

Branch CR25589_1 has been created by drazmyslovich.

SHA-1: a19922de1857a2741133f0cad1c1455f5e34a592


Detailed log of new commits:

Author: drazmyslovich
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

drazmyslovich

2019-08-08 14:57

developer  

face1507.brep (4,133 bytes)

drazmyslovich

2019-08-08 14:57

developer  

face3472.brep (9,299 bytes)

drazmyslovich

2019-08-08 15:00

developer   ~0086090

Last edited: 2019-08-08 15:00

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.

Regards,
Dima

git

2019-08-09 11:42

administrator   ~0086110

Branch CR25589_1 has been updated by oan.

SHA-1: 17fc2918cdb165d9a3a5d2bfe8f7134cbed63932


Detailed log of new commits:

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

    # Added test cases

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

    # Correction of code style

oan

2019-08-09 15:13

developer   ~0086123

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

oan

2019-08-09 15:15

developer   ~0086124

Dear Mikhail,

please have a look at the patch and test results and give your opinion.

msv

2019-08-09 15:40

developer   ~0086127

I think it is needed to complete the patch, so that not to miss faces that earlier were well meshed.

Issue History

Date Modified Username Field Change
2014-12-10 16:42 drazmyslovich New Issue
2014-12-10 16:42 drazmyslovich Assigned To => oan
2014-12-10 16:44 git Note Added: 0035272
2014-12-10 16:44 drazmyslovich Note Added: 0035274
2014-12-10 16:44 drazmyslovich Status new => resolved
2014-12-10 16:44 drazmyslovich Steps to Reproduce Updated
2014-12-11 13:43 oan Note Added: 0035331
2014-12-11 13:43 oan Assigned To oan => drazmyslovich
2014-12-11 13:43 oan Status resolved => feedback
2015-04-17 10:16 oan Target Version 6.9.0 => 7.1.0
2016-10-25 17:40 oan Target Version 7.1.0 => 7.2.0
2017-07-20 12:43 oan Target Version 7.2.0 => 7.3.0
2018-02-25 21:09 abv Target Version 7.3.0 => 7.4.0
2018-02-25 21:10 abv Note Added: 0074128
2018-02-25 21:10 abv Assigned To drazmyslovich => oan
2018-02-25 21:10 abv Status feedback => resolved
2018-11-02 17:50 msv Note Added: 0080652
2018-11-02 17:50 msv Assigned To oan => drazmyslovich
2018-11-02 17:50 msv Status resolved => feedback
2019-07-05 16:32 drazmyslovich Note Added: 0085445
2019-07-05 16:32 drazmyslovich Assigned To drazmyslovich => oan
2019-07-05 16:32 drazmyslovich Status feedback => resolved
2019-07-06 14:30 oan Note Added: 0085454
2019-07-06 14:30 oan Assigned To oan => drazmyslovich
2019-07-06 14:30 oan Status resolved => feedback
2019-08-02 19:29 drazmyslovich Note Added: 0086005
2019-08-03 13:19 oan Note Added: 0086006
2019-08-08 14:57 git Note Added: 0086089
2019-08-08 14:57 drazmyslovich File Added: face1507.brep
2019-08-08 14:57 drazmyslovich File Added: face3472.brep
2019-08-08 15:00 drazmyslovich Note Added: 0086090
2019-08-08 15:00 drazmyslovich Assigned To drazmyslovich => oan
2019-08-08 15:00 drazmyslovich Status feedback => resolved
2019-08-08 15:00 drazmyslovich Steps to Reproduce Updated
2019-08-08 15:00 drazmyslovich Note Edited: 0086090
2019-08-09 11:42 git Note Added: 0086110
2019-08-09 15:13 oan Note Added: 0086123
2019-08-09 15:13 oan Assigned To oan => msv
2019-08-09 15:15 oan Note Added: 0086124
2019-08-09 15:40 msv Note Added: 0086127
2019-08-09 15:40 msv Assigned To msv => oan
2019-08-09 15:40 msv Status resolved => assigned
2019-09-04 15:54 abv Target Version 7.4.0 => 7.5.0
2020-08-28 15:51 oan Target Version 7.5.0 => 7.6.0
2021-11-01 18:14 szy Target Version 7.6.0 => 7.7.0