MantisBT - Open CASCADE
View Issue Details
0026933Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-11-27 20:212018-07-26 14:29
msv 
bugmaster 
normalminor 
closedfixed 
[OCCT] 7.0.0 
[OCCT] 7.4.0[OCCT] 7.4.0 
bugs modalg_7 bug26933
0026933: Section works unstably due to incorrect work of the method IsExistingPaveBlock
This bug was born due to unstable work of the test case "boolean bsection N2". One of edges in the result section line appeared or disappeared from patch to patch.
I have isolated this problem to make section between only two faces.
Really the big planar face is situated nearly the boundary of b-spline face in such way that it has common part with the boundary edge that does not cover the whole edge. So, the expected section should look like in the attached picture N2-OK.png.
Sometimes, depending on the tolerance reached during computation of intersection curve, a small pave block is created on this curve somewhere in the middle in addition to the pave block corresponding to the actual common part. This pave block is compared for coincidence with existing ones and the following method:

Standard_Boolean BOPAlgo_PaveFiller::IsExistingPaveBlock
    (const Handle(BOPDS_PaveBlock)& thePB,
     const BOPDS_Curve& theNC,
     const Standard_Real theTolR3D,
     const BOPDS_IndexedMapOfPaveBlock& theMPBOnIn,
     Handle(BOPDS_PaveBlock)& aPBOut)

tells that this small pave block is coincident with an existing quite big pave block. It occurs because it is not checked in the method if the found pave block has coinciding ends with the input pave block.
As a result, the whole edge is put in the section, even if it has distance to the opposite argument much greater than its tolerance. The picture N2-false.png shows such result.
restore bug26933.brep a
explode a
bclearobjects
bcleartools
baddobjects a_1
baddtools a_2
bfillds
bbop s 4
don a_1 s
No tags attached.
png N2-false.PNG (27,350) 2015-11-27 20:21
https://tracker.dev.opencascade.org/
png N2-OK.PNG (25,155) 2015-11-27 20:30
https://tracker.dev.opencascade.org/
? bug26933.brep (4,435) 2015-11-27 20:31
https://tracker.dev.opencascade.org/
Issue History
2015-11-27 20:21msvNew Issue
2015-11-27 20:21msvAssigned To => msv
2015-11-27 20:21msvFile Added: N2-OK.PNG
2015-11-27 20:21msvFile Added: N2-false.PNG
2015-11-27 20:30msvFile Deleted: N2-OK.PNG
2015-11-27 20:30msvFile Added: N2-OK.PNG
2015-11-27 20:31msvFile Added: bug26933.brep
2015-11-27 20:32msvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=12390#r12390
2016-10-28 17:03msvTarget Version7.1.0 => 7.2.0
2017-07-24 09:22msvTarget Version7.2.0 => 7.3.0
2017-08-15 19:44mkvTest case number => bugs modalg_7 bug26933
2017-08-15 19:44mkvNote Added: 0069423
2017-12-05 17:00msvTarget Version7.3.0 => 7.4.0
2018-07-18 07:58emvNote Added: 0077764
2018-07-18 07:58emvAssigned Tomsv => bugmaster
2018-07-18 07:58emvStatusnew => feedback
2018-07-26 14:29bugmasterStatusfeedback => verified
2018-07-26 14:29bugmasterResolutionopen => fixed

Notes
(0069423)
mkv   
2017-08-15 19:44   
Problem described in issue is reproduced on current state of OCCT.
(0077764)
emv   
2018-07-18 07:58   
The problem is not reproduced in current master. Master already contains a test case for the issue without any TODO statements. So, the issue can be just closed.