View Issue Details
ID  Project  Category  View Status  Date Submitted  Last Update 

0028833  Open CASCADE  OCCT:Modeling Algorithms  public  20170609 12:45  20191025 14:13 
Reporter  emv  Assigned To  msv  
Priority  high  Severity  minor  
Status  assigned  Resolution  open  
Product Version  7.1.0  
Target Version  Unscheduled  
Summary  0028833: Modeling Algorithms  Unstable result of intersection of the faces  
Description  The result of intersection of two faces is unstable: 1. The intersection gives different results on Linux and Windows platforms (deviation about 0.001); 2. Different order of the faces also gives different intersection results (deviation is also about 0.001); 3. Variations of the UV sampling of the surfaces also gives very different results: a) for the 15x15 sampling the intersection gives 7 curves for direct order and only 5 curves for reverse order of faces; b) for the 100x100 sampling the intersection gives only 4 curves for direct order and also 4 curves for the reverse order of faces, but these 4 curves are different (the gaps are in the different places). The case has been detected during fixing the issue 0028599 in the test case bugs modalg_6 bug26938_*. The intersection difference with the 15x15 sampling can be reproduced in the git branch CR28599.  
Steps To Reproduce  brestore [locate_data_file bug26938.brep] a explode a explode a_1 f; copy a_1_1 f1 explode a_2 f; copy a_2_1 f2 don f1 f2 # master bopcurves f1 f2 2d # Tolerance Reached=8.7721154144228939e005 # 7 curve(s) found. bopcurves f2 f1 2d # Tolerance Reached=1.1061046409178104e006 # 7 curve(s) found.  
Tags  No tags attached.  
Test case number  
related to  0028599  closed  apn  Open CASCADE  Replacement of old Boolean operations with new ones in BRepProj_Projection algorithm 
related to  0028802  closed  bugmaster  Open CASCADE  The tolerance reached by approximator is used in creation of an edge, it is incorrect 
related to  0026463  assigned  Open CASCADE  The result of intersection between two faces depends on the order of arguments  
child of  0029133  closed  bugmaster  Open CASCADE  Unstable test cases 

Branch CR28833 has been created by nbv. SHA1: ecc293ae57fe48db2843f59fec9a4454ab0f8bb7 Detailed log of new commits: Author: nbv Date: Thu Nov 30 13:44:48 2017 +0300 0028833: Unstable result of intersection of the faces Wrong distance computation in case of Approx_ChordLength approximation type has been corrected. 

Branch CR28833 has been deleted by nbv. SHA1: ecc293ae57fe48db2843f59fec9a4454ab0f8bb7 

After the fix for issue #29359, the intersection result is following Debian 7 64bit: bopcurves f1 f2 2d # Tolerance Reached=1.9424317963481932e06 # 7 curve(s) found. bopcurves f2 f1 2d # Tolerance Reached=3.4328334306385459e06 # 7 curve(s) found. Windows, VC12, 64 bit: bopcurves f1 f2 2d # Tolerance Reached=4.8853446536539142e006 # 7 curve(s) found. bopcurves f2 f1 2d # Tolerance Reached=1.1061046409178104e006 # 7 curve(s) found. 

Dear Eugeny, Please make conclusion about stability of this result. 

It is necessary to perform very careful analysis of these results before making such conclusion. But, since the results of Boolean SECTION operation on these faces is different on Windows and Linux, I think it is necessary to further improve the stability of intersection algorithm. 

After discussion, this bug has been decided to keep in "open"status until children bugs on Boolean operation (#29126, #29179 and #29180) will be fixed (they are not fixed by the patch #29359). All problems with intersector (if they still exists) must be automatically related to this issue. 

Result of intersection with start points (after the fix #29359): Linux: bopcurves a_1_1 a_2_1 2d p +1.57079632680779823772 1260.00000000000000000000 +1.57079632680779823772 914.00000000000000000000 p +4.71238898039756382019 1978.00000000000000000000 +4.71238898039756382019 196.00000000000000000000 # Tolerance Reached=3.4190183427392574e06 # 6 curve(s) found. bopcurves a_2_1 a_1_1 2d p +4.71238898039756382019 196.00000000000000000000 +4.71238898039756382019 1978.00000000000000000000 p +1.57079632680779823772 914.00000000000000000000 +1.57079632680779823772 1260.00000000000000000000 # Tolerance Reached=1.7251058336056498e06 # 6 curve(s) found. Windows: bopcurves a_1_1 a_2_1 2d p +1.57079632680779820000 1260.00000000000000000000 +1.57079632680779820000 914.00000000000000000000 p +4.71238900762224590000 1978.00000000000000000000 +4.71238900762224590000 196.00000000000011000000 # Tolerance Reached=8.7721154144228939e005 # 6 curve(s) found. bopcurves a_2_1 a_1_1 2d p +4.71238900762224590000 196.00000000000011000000 +4.71238900762224590000 1978.00000000000000000000 p +1.57079632680779820000 914.00000000000000000000 +1.57079632680779820000 1260.00000000000000000000 # Tolerance Reached=1.3952065448782561e006 # 6 curve(s) found.  I.e. the intersection result on Linux is much more resistant to reversing of arguments than on Windows. Nevertheless, the result of Boolean operation (section, cut) on Windows is much more stable than on Linux (see issue #29179). 

Steps To Reproduce have been updated according to the situation on IR20180216. 
Date Modified  Username  Field  Change 

20170609 12:45  emv  New Issue  
20170609 12:45  emv  Assigned To  => msv 
20170609 12:45  emv  Relationship added  related to 0028599 
20170609 14:52  msv  Assigned To  msv => nbv 
20170609 14:52  msv  Status  new => assigned 
20170609 17:36  jgv  Relationship added  related to 0028802 
20170721 11:04  msv  Target Version  7.2.0 => 7.3.0 
20171019 11:56  kgv  Relationship added  child of 0029133 
20171122 16:15  emv  Priority  normal => high 
20171130 16:39  git  Note Added: 0072624  
20171201 10:55  git  Note Added: 0072638  
20171201 14:52 

Note Added: 0072652  
20171201 14:54 

Note Added: 0072653  
20171201 14:54 

Assigned To  nbv => emv 
20171201 14:54 

Status  assigned => feedback 
20171201 15:17  emv  Assigned To  emv => nbv 
20171201 15:18  emv  Note Added: 0072655  
20171201 15:20 

Note Added: 0072656  
20171201 15:22 

Note Edited: 0072656  
20171204 17:50 

Note Added: 0072694  
20171208 10:22 

Relationship added  related to 0026463 
20180116 09:31 

Status  feedback => assigned 
20180219 11:58 

Note Added: 0074036  
20180219 11:58 

Steps to Reproduce Updated  
20180302 10:56  msv  Target Version  7.3.0 => 7.4.0 
20190812 19:04  msv  Assigned To  nbv => 
20190812 19:04  msv  Target Version  7.4.0 => Unscheduled 
20190904 12:13  kgv  Summary  Unstable result of intersection of the faces => Modeling Algorithms  Unstable result of intersection of the faces 
20191025 14:13  abv  Assigned To  => msv 