View Issue Details

IDProjectCategoryView StatusLast Update
0026933Open CASCADEOCCT:Modeling Algorithmspublic2018-07-26 14:29
ReportermsvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version7.0.0 
Target Version7.4.0Fixed in Version7.4.0 
Summary0026933: Section works unstably due to incorrect work of the method IsExistingPaveBlock
DescriptionThis 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.
Steps To Reproducerestore bug26933.brep a
explode a
bclearobjects
bcleartools
baddobjects a_1
baddtools a_2
bfillds
bbop s 4
don a_1 s
TagsNo tags attached.
Test case numberbugs modalg_7 bug26933

Attached Files

  • N2-false.PNG (27,350 bytes)
  • N2-OK.PNG (25,155 bytes)
  • bug26933.brep (4,435 bytes)

Activities

msv

2015-11-27 20:21

developer  

N2-false.PNG (27,350 bytes)

msv

2015-11-27 20:30

developer  

N2-OK.PNG (25,155 bytes)

msv

2015-11-27 20:31

developer  

bug26933.brep (4,435 bytes)

mkv

2017-08-15 19:44

tester   ~0069423

Problem described in issue is reproduced on current state of OCCT.

emv

2018-07-18 07:58

developer   ~0077764

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.

Issue History

Date Modified Username Field Change
2015-11-27 20:21 msv New Issue
2015-11-27 20:21 msv Assigned To => msv
2015-11-27 20:21 msv File Added: N2-OK.PNG
2015-11-27 20:21 msv File Added: N2-false.PNG
2015-11-27 20:30 msv File Deleted: N2-OK.PNG
2015-11-27 20:30 msv File Added: N2-OK.PNG
2015-11-27 20:31 msv File Added: bug26933.brep
2015-11-27 20:32 msv Steps to Reproduce Updated
2016-10-28 17:03 msv Target Version 7.1.0 => 7.2.0
2017-07-24 09:22 msv Target Version 7.2.0 => 7.3.0
2017-08-15 19:44 mkv Test case number => bugs modalg_7 bug26933
2017-08-15 19:44 mkv Note Added: 0069423
2017-12-05 17:00 msv Target Version 7.3.0 => 7.4.0
2018-07-18 07:58 emv Note Added: 0077764
2018-07-18 07:58 emv Assigned To msv => bugmaster
2018-07-18 07:58 emv Status new => feedback
2018-07-26 14:29 bugmaster Status feedback => verified
2018-07-26 14:29 bugmaster Resolution open => fixed