MantisBT - Open CASCADE
View Issue Details
0027024Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-12-21 16:092019-09-06 18:31
closedno change required 
0027024: Invalid result of fuse in test case bugs modalg_1 buc60462_2
The result of fuse contains 2 solids but must contain 1 solid.
test bugs modalg_1 buc60462_2
No tags attached.
Issue History
2015-12-21 16:09nbvNew Issue
2015-12-21 16:09nbvAssigned To => msv
2015-12-23 09:51nbvRelationship addedchild of 0026717
2015-12-23 09:51nbvRelationship addedrelated to 0026132
2015-12-23 09:51msvPrioritynormal => high
2015-12-23 09:51msvTarget Version7.1.0 => 7.0.0
2015-12-23 10:34msvPriorityhigh => normal
2015-12-23 14:41nbvNote Added: 0049508
2015-12-23 14:42nbvNote Edited: 0049508bug_revision_view_page.php?bugnote_id=49508#r12645
2015-12-23 14:44nbvNote Edited: 0049508bug_revision_view_page.php?bugnote_id=49508#r12646
2015-12-23 15:02nbvNote Edited: 0049508bug_revision_view_page.php?bugnote_id=49508#r12647
2015-12-23 15:03nbvNote Edited: 0049508bug_revision_view_page.php?bugnote_id=49508#r12648
2015-12-23 15:04nbvNote Edited: 0049508bug_revision_view_page.php?bugnote_id=49508#r12649
2015-12-23 15:07msvAssigned Tomsv => nbv
2015-12-23 15:07msvStatusnew => assigned
2015-12-23 15:07msvTarget Version7.0.0 => 7.1.0
2016-10-25 19:04msvTarget Version7.1.0 => 7.2.0
2017-07-24 09:33msvTarget Version7.2.0 => 7.3.0
2017-12-05 17:08msvTarget Version7.3.0 => 7.4.0
2019-08-12 16:37msvTarget Version7.4.0 => 7.5.0*
2019-09-03 09:58msvNote Added: 0086681
2019-09-03 10:00msvAssigned Tonbv =>
2019-09-03 10:00msvSummaryRegression in test cases bugs modalg_1 buc60462* => Invalid result of fuse in test case bugs modalg_1 buc60462_2
2019-09-03 10:00msvDescription Updatedbug_revision_view_page.php?rev_id=21708#r21708
2019-09-03 10:00msvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=21710#r21710
2019-09-06 16:10msvNote Added: 0086895
2019-09-06 16:10msvAssigned To => bugmaster
2019-09-06 16:10msvStatusassigned => feedback
2019-09-06 16:10msvTarget Version7.5.0* => Unscheduled
2019-09-06 16:10msvResolutionopen => no change required
2019-09-06 18:31abvStatusfeedback => closed
2019-09-06 18:31abvTarget VersionUnscheduled =>

2015-12-23 14:41   
(edited on: 2015-12-23 15:04)
After integration the fix for issue #26132, test case bugs modalg_1 buc60462_2 changed its behavior. Now it throws an exception.

The main reason of the exception is creation not same-ranged edge by Boolean operation.

The algorithm cannot find interference between the seam-edge of one face and the edge of another face. Try the following script for clarifying:

Draw[]> restore [locate_data_file buc60462c.brep] a
Draw[]> restore [locate_data_file buc60462d.brep] b
Draw[]> explode a f
Draw[]> explode b e
Draw[]> ax
Draw[]> donly a_9 b_46
Draw[]> toler b_46

Draw[]> distmini dd a_9 b_46
#0.00167963807727123 ==> b_46 "intersects" the seam of a_9

Draw[]> bclearobj
Draw[]> bcleartool
Draw[]> baddobj a
Draw[]> baddtool b
Draw[]> bfillds
Draw[]> bopds
Draw[]> bopindex b_46
# Index: 158

Draw[]> bopsp
#Edge 158: z158_158 ==> b_46 were not split.

Later, 2D-curve (on a_9 face) with range [0, 0.0336066450154111] will be added in z158. At that, 3D-curve of z158 already has range [0, 1]. As result, z158 will become invalid.

In short, edge b_46 is coincided with face a_9. Therefore, in IntTools_EdgeFace::Perform() method, full range of b_46 edge is used as common-block between b_46 and a_9 (range is [0, 1]). And edge b_46 is not split. Before fix (on the current MASTER) b_46 edge was split by the point found by IntTools_BeanFaceIntersector and result seamed to be valid.

The good idea of the fix is that the reason of failing Edge-Edge intersection (between b_46 and seam of a_9) algorithm must be clarified. If edge-edge intersection find intersection point then myRange in IntTools_EdgeFace::Perform() method will contain correct range for checking coincidence.

2019-09-03 09:58   
In the current version there is no exception. The test buc60462_1 is OK. The test buc60462_2 reports error condition that the result of fuse contains 2 solids instead of 1.

This test case always generated bad result.

So, the current state of the test result cannot be considered as regression.

Removing word 'regression' from the title.
2019-09-06 16:10   
I propose to close this bug.