View Issue Details

IDProjectCategoryView StatusLast Update
0027310Open CASCADEOCCT:Modeling Algorithmspublic2016-12-09 16:37
ReporteremvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version7.0.0 
Target Version7.1.0Fixed in Version7.1.0 
Summary0027310: Huge tolerance obtained in the result of intersection of two cylindrical faces
DescriptionThe result of intersection of two attached cylindrical faces has a huge tolerance.
The intersection tolerance obtained in version 680 of OCCT is OK, about 5.05e-7.

The problem has been discovered during analysis of the test case bugs moddata_2 bug496
Steps To ReproduceTest case has already been created and pushed to the branch.

restore bug496_faces.brep cf
explode cf
bopcurves cf_1 cf_2 -2d
# Tolerance Reached=28.00037987240534

restore bug496_faces_2.brep cf
explode cf
bopcurves cf_1 cf_2 -2d
# Tolerance Reached=30.005183963106642
TagsNo tags attached.
Test case numberbugs modalg_6 bug27310_1, bug27310_2

Attached Files

  • bug496_faces.brep (3,935 bytes)
  • bug496_faces_2.brep (3,382 bytes)

Relationships

duplicate of 0026771 closedbugmaster Boolean intersection gives too large reached tolerance 

Activities

emv

2016-03-28 09:33

developer  

bug496_faces.brep (3,935 bytes)

emv

2016-03-28 09:45

developer   ~0052048

One more pair of faces with the same problem has been found in the same test case.

emv

2016-03-28 09:45

developer  

bug496_faces_2.brep (3,382 bytes)

git

2016-04-11 09:18

administrator   ~0052559

Branch CR27310 has been created by nbv.

SHA-1: c3712e63ff7bb90eb41501779e60618dc1e894c2


Detailed log of new commits:

Author: nbv
Date: Thu Apr 7 13:53:57 2016 +0300

    0027310: Huge tolerance obtained in the result of intersection of two cylindrical faces
    
    Sometimes start point of the intersection line is in the surface boundary strictly. I.e. the parameter of this point in the surface can be equal to both 0 or 2*PI equivalently. It is important to chose correct parameter value.
    
    The algorithm of prediction is based on monotonicity property (see CylCylMonotonicity(...) function in IntPatch_ImpImpIntersection_4.gxx). Now, this function is used wrongly. The fix improves this situation.
    
    Small optimization in the code.
    Creation of test cases .

nbv

2016-04-11 09:19

developer   ~0052560

Dear Mikhail,

Please review CR27310 branch.

msv

2016-04-27 16:21

developer   ~0053639

Please correct the logic of returning value by the method BoundariesComputing().

git

2016-04-27 16:28

administrator   ~0053641

Branch CR27310 has been updated forcibly by nbv.

SHA-1: 2ecd80ebcbd4e8c168b4a329e8817d031bc99c9a

nbv

2016-04-27 16:28

developer   ~0053642

Dear Mikhail,

Please review the current state of CR27310 branch.

msv

2016-04-27 16:30

developer   ~0053645

Reviewed.

mkv

2016-04-28 15:14

tester   ~0053677

Dear BugMaster,
Branch CR27310 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 2ecd80ebcbd4e8c168b4a329e8817d031bc99c9a

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 : 1124

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
http://occt-tests/CR27310-master-OCCT/Debian70-64/bugs/modalg_6/bug27310_1.html
http://occt-tests/CR27310-master-OCCT/Windows-64-VC10/bugs/modalg_6/bug27310_1.html
bugs modalg_6 bug27310_1: OK
http://occt-tests/CR27310-master-OCCT/Debian70-64/bugs/modalg_6/bug27310_2.html
http://occt-tests/CR27310-master-OCCT/Windows-64-VC10/bugs/modalg_6/bug27310_2.html
bugs modalg_6 bug27310_2: OK

Testing on Linux:
occt component :
Total MEMORY difference: 88342133 / 88959013 [-0.69%]
Total CPU difference: 19122.64 / 19139.950000000026 [-0.09%]
products component :
Total MEMORY difference: 27942212 / 27891155 [+0.18%]
Total CPU difference: 5366.989999999994 / 5370.249999999996 [-0.06%]

Testing on Windows:
occt component :
Total MEMORY difference: 55686826 / 55717599 [-0.06%]
Total CPU difference: 18626.987402998813 / 17772.835127698927 [+4.81%]
products component :
Total MEMORY difference: 19062934 / 19031321 [+0.17%]
Total CPU difference: 5210.527000599963 / 5185.613640899959 [+0.48%]

There are no differences in images found by testdiff.

mkv

2016-04-28 15:14

tester   ~0053678

Dear BugMaster,
Branch CR27310 is TESTED.

git

2016-05-20 12:22

administrator   ~0054199

Branch CR27310 has been deleted by inv.

SHA-1: 2ecd80ebcbd4e8c168b4a329e8817d031bc99c9a

Related Changesets

occt: master 79997052

2016-04-07 10:53:57

nbv


Committer: bugmaster Details Diff
0027310: Huge tolerance obtained in the result of intersection of two cylindrical faces

Sometimes start point of the intersection line is in the surface boundary strictly. I.e. the parameter of this point in the surface can be equal to both 0 or 2*PI equivalently. It is important to chose correct parameter value.

The algorithm of prediction is based on monotonicity property (see CylCylMonotonicity(...) function in IntPatch_ImpImpIntersection_4.gxx). Now, this function is used wrongly. The fix improves this situation.

Small optimization in the code.
Creation of test cases .

The logic of returning value by the method BoundariesComputing() has been corrected.
Affected Issues
0027310
mod - src/IntPatch/IntPatch_ImpImpIntersection_4.gxx Diff File
add - tests/bugs/modalg_6/bug27310_1 Diff File
add - tests/bugs/modalg_6/bug27310_2 Diff File

Issue History

Date Modified Username Field Change
2016-03-28 09:33 emv New Issue
2016-03-28 09:33 emv Assigned To => msv
2016-03-28 09:33 emv File Added: bug496_faces.brep
2016-03-28 09:37 msv Assigned To msv => nbv
2016-03-28 09:37 msv Status new => assigned
2016-03-28 09:37 msv Product Version 7.1.0 => 7.0.0
2016-03-28 09:45 emv Note Added: 0052048
2016-03-28 09:45 emv File Added: bug496_faces_2.brep
2016-03-28 09:46 emv Steps to Reproduce Updated
2016-04-08 14:34 nbv Relationship added duplicate of 0026771
2016-04-11 09:18 git Note Added: 0052559
2016-04-11 09:19 nbv Note Added: 0052560
2016-04-11 09:19 nbv Assigned To nbv => msv
2016-04-11 09:19 nbv Status assigned => resolved
2016-04-11 09:19 nbv Steps to Reproduce Updated
2016-04-27 16:21 msv Note Added: 0053639
2016-04-27 16:21 msv Status resolved => assigned
2016-04-27 16:22 msv Assigned To msv => nbv
2016-04-27 16:28 git Note Added: 0053641
2016-04-27 16:28 nbv Note Added: 0053642
2016-04-27 16:28 nbv Assigned To nbv => msv
2016-04-27 16:28 nbv Status assigned => resolved
2016-04-27 16:30 msv Note Added: 0053645
2016-04-27 16:30 msv Assigned To msv => bugmaster
2016-04-27 16:30 msv Status resolved => reviewed
2016-04-27 16:37 mkv Assigned To bugmaster => mkv
2016-04-28 15:14 mkv Note Added: 0053677
2016-04-28 15:14 mkv Note Added: 0053678
2016-04-28 15:14 mkv Assigned To mkv => bugmaster
2016-04-28 15:14 mkv Status reviewed => tested
2016-04-28 15:15 mkv Test case number => bugs modalg_6 bug27310_1, bug27310_2
2016-04-29 16:10 bugmaster Changeset attached => occt master 79997052
2016-04-29 16:10 bugmaster Status tested => verified
2016-04-29 16:10 bugmaster Resolution open => fixed
2016-05-20 12:22 git Note Added: 0054199
2016-12-09 16:31 aiv Status verified => closed
2016-12-09 16:37 aiv Fixed in Version => 7.1.0