View Issue Details

IDProjectCategoryView StatusLast Update
0030082Open CASCADEOCCT:Modeling Algorithmspublic2018-09-09 13:05
ReporternbvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Target Version7.4.0Fixed in Version7.4.0 
Summary0030082: Intersection algorithm returns curve with big tolerance value
DescriptionIntersection algorithm returns curve with big tolerance value.

The intersection curve has a bend and it must be bended indeed (see IntCurve.PNG attached picture). Please use "intersect" DRAW-command with not trimmed surfaces to understand such strange behavior. I.e. this bend is happened in the start place where the curve turns.

Please note, that there are no any tangent zones at the end of the curve.

Nevertheless, the intersection algorithm generates points of WLine, which almost uniform distributed in this place. And it is correct behavior of the algorithm because several these points are in the line (in fact).

However, approximation algorithm tries to satisfy the condition with given tangent at the ends of the intersection curve. And in the considered case, this tangent is really directed almost perpendicular to the curve itself (see again the intersection result between two not trimmed surfaces). This is true reason of the bend.

To fix the problem, intersection algorithm must generate of WLine at the end of the curve.
Steps To Reproducebrestore [locate_data_file bug27928_b1.brep] b1
brestore [locate_data_file bug27928_b2.brep] b2
explode b1 f
explode b2 f
don b1_1 b2_2
bopcurves b1_1 b2_2 -2d
#Tolerance Reached=0.0010828835451753697
# 1 curve(s) found.

axo; fit
TagsNo tags attached.
Test case numberbugs/modalg_7/bug30082_1 bugs/modalg_7/bug30082_2

Attached Files

  • IntCurve.PNG (11,030 bytes)

Relationships

child of 0027928 closedbugmaster BOP common produces empty compound 

Activities

nbv

2018-08-23 14:57

developer  

IntCurve.PNG (11,030 bytes)

nbv

2018-08-23 15:09

developer   ~0078739

Here, we intersect two analytical surfaces (Cylinder-Cylinder). Therefore, Purger is disabled. But in general cases, all additionally generated points most likely will be rejected by Purger. As far as I know, Purger cannot process such cases, too.

git

2018-08-23 16:55

administrator   ~0078746

Branch CR30082 has been created by nbv.

SHA-1: 5d2dd87fa8162a8a754c017ee61d720b3d764e29


Detailed log of new commits:

Author: nbv
Date: Thu Aug 23 16:37:59 2018 +0300

    0030082: Intersection algorithm returns curve with big tolerance value
    
    The fix inserts new points at the end of the WLine in case when the direction of the intersection curve is significantly changed.

git

2018-08-24 10:40

administrator   ~0078753

Branch CR30082 has been updated forcibly by nbv.

SHA-1: 8fd2c1b7b3e818b9ddb94b0846564d327e757a09

git

2018-08-24 12:24

administrator   ~0078756

Branch CR30082 has been updated forcibly by nbv.

SHA-1: d660ea968f8ff54286d401aa3a1792d72565264b

nbv

2018-08-24 15:20

developer   ~0078758

Last edited: 2018-08-27 16:00

Dear Eugeny,

Please review th branch CR30082.

Test results are here: http://jenkins-test-12.nnov.opencascade.com/view/CR30082-master_NBV/

git

2018-08-27 11:54

administrator   ~0078795

Branch CR30082 has been updated forcibly by nbv.

SHA-1: a383745dcc04ca4f8890d1e2bc547a849f2e175a

emv

2018-08-28 08:33

developer   ~0078805

src/IntPatch/IntPatch_ImpImpIntersection_4.gxx
- Make the comment more clear, explaining that the liner positioning of the points in the end of WLine does not describe the real intersection curve and by adding the additional points you're making the WLine more precise.
- Replace while(bAdd) loop with infinite loop
- lines 3404-3408 - describe the choice of the P2 point

tests/bugs/modalg_7/bug30082_1
- If you check the number of section curves produced, check also if no curves will be produced (analyze the result of regexp);
- Make the error message more informative saying what is expected in the result.

tests/bugs/modalg_7/bug30082_2
- Why not to perform the Section operation on the faces instead of fusing the section curves? You can perform all the checks on the result of section with the same efficiency (number of edges and vertices, tolerance, presence of gaps etc) but the script will look much simpler.

git

2018-08-28 12:17

administrator   ~0078810

Branch CR30082_1 has been created by nbv.

SHA-1: ba9a70e01cf81bb51f1aabe237de4475019b8a3a


Detailed log of new commits:

Author: nbv
Date: Thu Aug 23 16:37:59 2018 +0300

    0030082: Intersection algorithm returns curve with big tolerance value
    
    The fix inserts new points at the end of the WLine in case when the direction of the intersection curve is significantly changed.

nbv

2018-08-28 14:37

developer   ~0078813

Dear Eugeny,

Please review CR30082_1 branch.

Test results are here: http://jenkins-test-12.nnov.opencascade.com/view/CR30082-master_NBV/

nbv

2018-08-28 15:34

developer   ~0078814

> - Why not to perform the Section operation on the faces ...

This test checks geometrical intersector only. I.e. intersector called from GeomInt_IntSS algorithm. Therefore, there is no point in replacing it with intersector calling from IntTools_FaceFace (otherwise, intersection algorithms can be initialized differently).

git

2018-08-28 15:37

administrator   ~0078815

Branch CR30082_1 has been updated by nbv.

SHA-1: 81a4f94ede4c24a356be2afc973c1a38ec634bf7


Detailed log of new commits:

Author: nbv
Date: Tue Aug 28 15:35:21 2018 +0300

    # Corrections according to remarks

emv

2018-08-28 15:43

developer   ~0078816

Reviewed.

bugmaster

2018-08-31 17:23

administrator   ~0078902

Combination -
OCCT branch : CR30082_1 SHA - ba9a70e01cf81bb51f1aabe237de4475019b8a3a
Products branch : master SHA - fdd59e29ebc3a27575d87f779d718af159f5b37b
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17462.60999999975 / 17510.19999999974 [-0.27%]
Products
Total CPU difference: 7452.000000000051 / 7448.370000000074 [+0.05%]
Windows-64-VC14:
OCCT
Total CPU difference: 17417.839252098503 / 17490.31731669841 [-0.41%]
Products
Total CPU difference: 8330.983803399997 / 8296.913184999985 [+0.41%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2018-09-09 13:05

administrator   ~0079051

Branch CR30082_1 has been deleted by inv.

SHA-1: 81a4f94ede4c24a356be2afc973c1a38ec634bf7

git

2018-09-09 13:05

administrator   ~0079053

Branch CR30082 has been deleted by inv.

SHA-1: a383745dcc04ca4f8890d1e2bc547a849f2e175a

Related Changesets

occt: master 7eb3580b

2018-08-23 13:37:59

nbv


Committer: bugmaster Details Diff
0030082: Intersection algorithm returns curve with big tolerance value

The fix inserts new points at the end of the WLine in case when the direction of the intersection curve is significantly changed.
Affected Issues
0030082
mod - src/IntPatch/IntPatch_ImpImpIntersection_4.gxx Diff File
add - tests/bugs/modalg_7/bug30082_1 Diff File
add - tests/bugs/modalg_7/bug30082_2 Diff File

Issue History

Date Modified Username Field Change
2018-08-23 14:57 nbv New Issue
2018-08-23 14:57 nbv Assigned To => msv
2018-08-23 14:57 nbv File Added: IntCurve.PNG
2018-08-23 15:09 nbv Note Added: 0078739
2018-08-23 15:35 nbv Relationship added child of 0027928
2018-08-23 16:42 nbv Assigned To msv => nbv
2018-08-23 16:42 nbv Status new => assigned
2018-08-23 16:55 git Note Added: 0078746
2018-08-24 10:40 git Note Added: 0078753
2018-08-24 12:24 git Note Added: 0078756
2018-08-24 15:20 nbv Note Added: 0078758
2018-08-24 15:20 nbv Assigned To nbv => emv
2018-08-24 15:20 nbv Status assigned => resolved
2018-08-27 11:54 git Note Added: 0078795
2018-08-27 16:00 nbv Note Edited: 0078758
2018-08-28 08:33 emv Note Added: 0078805
2018-08-28 08:33 emv Assigned To emv => nbv
2018-08-28 08:33 emv Status resolved => assigned
2018-08-28 12:17 git Note Added: 0078810
2018-08-28 14:37 nbv Note Added: 0078813
2018-08-28 14:37 nbv Assigned To nbv => emv
2018-08-28 14:37 nbv Status assigned => resolved
2018-08-28 15:34 nbv Note Added: 0078814
2018-08-28 15:37 git Note Added: 0078815
2018-08-28 15:43 emv Note Added: 0078816
2018-08-28 15:43 emv Assigned To emv => bugmaster
2018-08-28 15:43 emv Status resolved => reviewed
2018-08-31 17:20 bugmaster Test case number => bugs/modalg_7/bug30082_1 bugs/modalg_7/bug30082_2
2018-08-31 17:23 bugmaster Note Added: 0078902
2018-08-31 17:23 bugmaster Status reviewed => tested
2018-09-09 11:52 bugmaster Changeset attached => occt master 7eb3580b
2018-09-09 11:52 bugmaster Status tested => verified
2018-09-09 11:52 bugmaster Resolution open => fixed
2018-09-09 13:05 git Note Added: 0079051
2018-09-09 13:05 git Note Added: 0079053