MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0029807Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2018-05-23 17:102018-06-20 10:42
Reporterazv 
Assigned Tonbv 
PrioritynormalSeverityminor 
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version[OCCT] 7.3.0 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0029807: [Regression to 7.0.0] Impossible to cut cone from prism
DescriptionThe cone is cutting from the prism with cylindrical hole. The cone and the hole axes are parallel and the cone's apex is placed on the cylinder.

CUT operation returns a solid without any error message. The solid is topologically valid, but the cone is not cut, just intersecting faces are split.

The result of cutting on OCCT 7.0.0 was valid. The problem appears since 7.1.0.
Steps To Reproduce
brestore bug29807-obj.brep obj
brestore bug29807-tool.brep tool
bcut res obj tool
TagsNo tags attached.
Test case number
Attached Files? file icon bug29807-obj.brep (142,945 bytes) 2018-05-23 17:11
? file icon bug29807-tool.brep (338,960 bytes) 2018-05-23 17:11
png file icon bug29807-wrong-result.png (11,544 bytes) 2018-05-23 17:12
7z file icon additional cones.7z (1,281 bytes) 2018-05-30 18:13

- Relationships
related to 0025542feedbacknbv Community Boolean operation failure for Cylinder and Cone in critical location. 
related to 0029860newmsv Open CASCADE BOPAlgo_BuilderFace cannot build new faces correctly 
related to 0028503feedbacknbv Open CASCADE Incomplete result of making volume operation due to incorrect intersection of conical faces 

-  Notes
(0076207)
emv (developer)
2018-05-24 08:19
edited on: 2018-05-24 14:36

The problem here in incorrect section curves produced by the intersection algorithm between cone and cylinder. First, the curves have a big tolerance; second, one of the curves has a returning point and overlaps itself.
restore bug29807-obj.brep b1
restore bug29807-tool.brep b2
explode b1 f
explode b2 f
bopcurves b1_5 b2_2 -2d


In OCCT 7.0.0 the tolerance is also high enough, but both curves are valid (no overlapping).

(0076334)
git (administrator)
2018-05-25 16:30

Branch CR29807 has been created by nbv.

SHA-1: 95980ee5189bcd068f33215c4f41c3acdc2a0cd9


Detailed log of new commits:

Author: nbv
Date: Fri May 25 11:05:58 2018 +0300

    0029807: [Regression to 7.0.0] Impossible to cut cone from prism
    
    Case has been processed while the intersection line goes through the cone apex.
(0076367)
git (administrator)
2018-05-28 17:18

Branch CR29807 has been updated forcibly by nbv.

SHA-1: 64ee0348d1c02d92f213fbf1d6d47d743aa3d812
(0076401)
git (administrator)
2018-05-29 16:03

Branch CR29807 has been updated forcibly by nbv.

SHA-1: 3679afc6481de9fb4a4004684d8f19ff6aa1615f
(0076418)
git (administrator)
2018-05-29 18:13

Branch CR29807 has been updated forcibly by nbv.

SHA-1: a98c77930f2cba37cc05336d727a54711c3d68a1
(0076420)
git (administrator)
2018-05-29 18:15

Branch CR29807 has been updated forcibly by nbv.

SHA-1: 93805c8d144a06c665d61d3a18bb29290adc2d70
(0076447)
git (administrator)
2018-05-30 17:12

Branch CR29807_1 has been created by nbv.

SHA-1: 33a5550bd6eb9fa6281237c0f2532c08c3824304


Detailed log of new commits:

Author: nbv
Date: Fri May 25 11:05:58 2018 +0300

    0029807: [Regression to 7.0.0] Impossible to cut cone from prism
    
    Case has been processed while the intersection line goes through the cone apex.
(0076451)
nbv (developer)
2018-05-30 18:10

DC,

The branch CR29807_1 fixes the initial problem completely.

However, there are some problems in the intersection algorithm itself. Namely while vertices computation in case when the intersection curve goes through the singular point (cone apex). In my view the main problem is in IntPatch_RstInt algorithm.

Briefly the class IntPatch_SpecialPoints processes any singular points but it demands all these points must be marked as vertex. If it is not done these points will be ignored by IntPatch_SpecialPoints class.

So, in the regression case the computed vertex is already quite far from the apex. As result, I have to increase the input tolerance for class IntPatch_ALineToWLine (see changes in IntPatch_Intersection.cxx file). After that, the algorithm IntPatch_SpecialPoints is called and processes the cone apex correctly. However, this tolerance increasing leads to some regressions (see test results).

Additionally, I have obtained other cones (by rotation of the b2_2 face - see message 0029807:0076207 - around some axes going through the apex). These faces are in "additional cones.7z" attached archive.

E.g. in case of intersection shape1 with the cylinder b1_5, all vertices (4 vertices are found) found by IntPatch_RstInt algorithm are in distance greater than 0.1 from the cone apex. As result, IntPatch_SpecialPoints is not called at all but it must be called. However, boolean operation works properly in this case (i.e. it is not a regression):

   Draw[]> trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5
   Draw[]> bcut rr b1 b2

rr is an appropriate result.

Having summarized, we need to find exact locations of the vertex and avoid increasing tolerance in IntPatch_Intersection.cxx file. So, I am going to continue the fix and to try to eliminate the observed problem in IntPatch_RstInt algorithm.
(0076529)
git (administrator)
2018-06-01 18:11

Branch CR29807_2 has been created by nbv.

SHA-1: 1909cce37fb7cbdbada341c5535e8ef6daf74b03


Detailed log of new commits:

Author: nbv
Date: Fri May 25 11:05:58 2018 +0300

    0029807: [Regression to 7.0.0] Impossible to cut cone from prism
    
    1. Case has been processed while the intersection line goes through the cone apex.
    
    2. All special points are put to the ALine forcefully (if they are true intersection point). Currently this step has not been implemented yet.
    
    3. Now the tolerance of IntPatch_Point (put into ALine) is computed in order to cover the distance between it and the correspond ALine.
    
    4. Test cases have been created.
(0076561)
git (administrator)
2018-06-04 10:27

Branch CR29807_2 has been updated forcibly by nbv.

SHA-1: c93e04ec8e3a39853c85248d3ee2e656a4064c06
(0076627)
git (administrator)
2018-06-05 17:51

Branch CR29807_2 has been updated forcibly by nbv.

SHA-1: 582fe8b4faf6c4d58799819fa3ed925cf55e6899
(0076678)
git (administrator)
2018-06-08 13:57

Branch CR29807_tmp has been created by nbv.

SHA-1: cfdfa9128ba7102a2f98c4f2db59a374462bf7f4


Detailed log of new commits:

Author: nbv
Date: Wed Jun 6 12:01:55 2018 +0300

    IntPatch_SpecialPoints::ContinueAfterSpecialPoint(...) method.
(0076684)
git (administrator)
2018-06-08 16:13

Branch CR29807_tmp has been deleted by nbv.

SHA-1: cfdfa9128ba7102a2f98c4f2db59a374462bf7f4
(0076707)
git (administrator)
2018-06-09 17:17

Branch CR29807_2 has been updated forcibly by nbv.

SHA-1: e009c54c070997ef45ec8c47a798691b4364f2df
(0076747)
git (administrator)
2018-06-13 17:24

Branch CR29807_3 has been created by nbv.

SHA-1: 85451b6ce10ba99439e51c0618c150f2efc9e291


Detailed log of new commits:

Author: nbv
Date: Fri May 25 11:05:58 2018 +0300

    0029807: [Regression to 7.0.0] Impossible to cut cone from prism
    
    1. Case has been processed while the intersection line goes through the cone apex.
    
    2. All special points are put to the ALine forcefully (if they are true intersection point). Currently this step has not been implemented yet.
    
    3. Now the tolerance of IntPatch_Point (put into ALine) is computed in order to cover the distance between it and the correspond ALine.
    
    4. Test cases have been created.
(0076748)
git (administrator)
2018-06-13 17:41

Branch CR29807_3 has been updated forcibly by nbv.

SHA-1: c5ec97d1bc21a8d68b664371d1ed047a88ab6bcc
(0076757)
git (administrator)
2018-06-14 09:43

Branch CR29807_3 has been updated forcibly by nbv.

SHA-1: d57bd640de574295d135828705ac51519148b690
(0076763)
git (administrator)
2018-06-14 11:08

Branch CR29807_3 has been updated forcibly by nbv.

SHA-1: d6137e752f8ebac58b71559b13a381b7191680ab
(0076771)
git (administrator)
2018-06-14 14:34

Branch CR29807_3 has been updated forcibly by nbv.

SHA-1: 4a3cbc7aa29a2c4b008979b9df7138a0fca6e96d
(0076774)
git (administrator)
2018-06-14 17:09

Branch CR29807_3 has been updated forcibly by nbv.

SHA-1: 5cf32d3ce4699514b66576ee769e56f04b6678e6
(0076785)
git (administrator)
2018-06-14 18:38

Branch CR29807_3 has been updated forcibly by nbv.

SHA-1: 62fff36a49821b00177ec90c9f28c3f9f20e5c7a
(0076796)
git (administrator)
2018-06-15 12:27

Branch CR29807_3 has been updated forcibly by nbv.

SHA-1: 2eadd7ac6fb831128e9426dd014a1a4925fda46b
(0076797)
git (administrator)
2018-06-15 15:40

Branch CR29807 has been deleted by nbv.

SHA-1: 93805c8d144a06c665d61d3a18bb29290adc2d70
(0076798)
git (administrator)
2018-06-15 15:40

Branch CR29807_1 has been deleted by nbv.

SHA-1: 33a5550bd6eb9fa6281237c0f2532c08c3824304
(0076799)
git (administrator)
2018-06-15 15:40

Branch CR29807_2 has been deleted by nbv.

SHA-1: e009c54c070997ef45ec8c47a798691b4364f2df
(0076801)
git (administrator)
2018-06-15 16:53

Branch CR29807_4 has been created by nbv.

SHA-1: e59903829016bb32f0b744d6a52ad4a51ef80ccc


Detailed log of new commits:

Author: nbv
Date: Fri May 25 11:05:58 2018 +0300

    0029807: [Regression to 7.0.0] Impossible to cut cone from prism
    
    1. Case has been processed while the intersection line goes through the cone apex.
    
    2. All special points are put to the ALine forcefully (if they are true intersection point). Currently this step has not been implemented yet.
    
    3. Now the tolerance of IntPatch_Point (put into ALine) is computed in order to cover the distance between it and the correspond ALine.
    
    4. Test cases have been created.
(0076809)
git (administrator)
2018-06-18 13:20

Branch CR29807_4 has been updated forcibly by nbv.

SHA-1: 32a379d6081023db27d7c1a86df7cf11d2919522
(0076815)
git (administrator)
2018-06-18 15:18

Branch CR29807_4 has been updated forcibly by nbv.

SHA-1: 671240c073813ce2cbf40b4ff8b8e451844037f6
(0076823)
git (administrator)
2018-06-18 17:57

Branch CR29807_5 has been created by nbv.

SHA-1: d437695bc2832f14410de63343a582d6e4a62549


Detailed log of new commits:

Author: nbv
Date: Fri May 25 11:05:58 2018 +0300

    0029807: [Regression to 7.0.0] Impossible to cut cone from prism
    
    1. Case has been processed while the intersection line goes through the cone apex.
    
    2. All special points are put to the ALine forcefully (if they are true intersection point). Currently this step has not been implemented yet.
    
    3. Now the tolerance of IntPatch_Point (put into ALine) is computed in order to cover the distance between it and the correspond ALine.
    
    4. Test cases have been created.
(0076829)
git (administrator)
2018-06-19 10:53

Branch CR29807_5 has been updated forcibly by nbv.

SHA-1: 78111a61622700ab02efb010e485c19b61d60cef
(0076830)
git (administrator)
2018-06-19 11:06

Branch CR29807_5 has been updated forcibly by nbv.

SHA-1: 143566af4b4d3381859dd69bdb0a29a59f03f428
(0076835)
git (administrator)
2018-06-19 14:13

Branch CR29807_5 has been updated forcibly by nbv.

SHA-1: b940ac5fb045c25344dc5ca8ddc5482c827b14a9
(0076838)
git (administrator)
2018-06-19 18:13

Branch CR29807_5 has been updated forcibly by nbv.

SHA-1: 36a78b20995cce1110c4901ba995015f5eb9f963
(0076841)
git (administrator)
2018-06-20 10:42

Branch CR29807_5 has been updated forcibly by nbv.

SHA-1: d71d0138408c5dc425baefa01feed8069f6700ed

- Issue History
Date Modified Username Field Change
2018-05-23 17:10 azv New Issue
2018-05-23 17:10 azv Assigned To => msv
2018-05-23 17:11 azv File Added: bug29807-obj.brep
2018-05-23 17:11 azv File Added: bug29807-tool.brep
2018-05-23 17:12 azv Steps to Reproduce Updated View Revisions
2018-05-23 17:12 azv File Added: bug29789-original-shapes.png
2018-05-23 17:12 azv File Deleted: bug29789-original-shapes.png
2018-05-23 17:12 azv File Added: bug29807-wrong-result.png
2018-05-24 08:19 emv Note Added: 0076207
2018-05-24 08:19 emv Assigned To msv => nbv
2018-05-24 08:19 emv Status new => assigned
2018-05-24 14:36 emv Note Edited: 0076207 View Revisions
2018-05-25 16:30 git Note Added: 0076334
2018-05-28 17:18 git Note Added: 0076367
2018-05-29 16:03 git Note Added: 0076401
2018-05-29 18:13 git Note Added: 0076418
2018-05-29 18:15 git Note Added: 0076420
2018-05-30 17:12 git Note Added: 0076447
2018-05-30 18:10 nbv Note Added: 0076451
2018-05-30 18:13 nbv File Added: additional cones.7z
2018-06-01 18:11 git Note Added: 0076529
2018-06-04 10:27 git Note Added: 0076561
2018-06-04 16:14 nbv Relationship added related to 0025542
2018-06-05 17:51 git Note Added: 0076627
2018-06-08 13:57 git Note Added: 0076678
2018-06-08 16:13 git Note Added: 0076684
2018-06-09 17:17 git Note Added: 0076707
2018-06-13 10:26 nbv Relationship added related to 0029860
2018-06-13 17:24 git Note Added: 0076747
2018-06-13 17:41 git Note Added: 0076748
2018-06-14 09:43 git Note Added: 0076757
2018-06-14 11:08 git Note Added: 0076763
2018-06-14 14:34 git Note Added: 0076771
2018-06-14 17:09 git Note Added: 0076774
2018-06-14 18:38 git Note Added: 0076785
2018-06-15 12:27 git Note Added: 0076796
2018-06-15 15:40 git Note Added: 0076797
2018-06-15 15:40 git Note Added: 0076798
2018-06-15 15:40 git Note Added: 0076799
2018-06-15 16:53 git Note Added: 0076801
2018-06-18 13:20 git Note Added: 0076809
2018-06-18 15:18 git Note Added: 0076815
2018-06-18 17:57 git Note Added: 0076823
2018-06-19 10:38 nbv Relationship added related to 0024772
2018-06-19 10:53 git Note Added: 0076829
2018-06-19 11:06 git Note Added: 0076830
2018-06-19 13:10 nbv Relationship deleted related to 0024772
2018-06-19 14:13 git Note Added: 0076835
2018-06-19 14:20 nbv Relationship added related to 0028503
2018-06-19 18:13 git Note Added: 0076838
2018-06-20 10:42 git Note Added: 0076841


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker