MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0027024Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-12-21 16:092017-12-05 17:08
Reporternbv 
Assigned Tonbv 
PrioritynormalSeverityminor 
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0027024: Regression in test cases bugs modalg_1 buc60462*
DescriptionThis regression is the result of fix to the issue #26717.
Steps To Reproducetestgrid bugs modalg_1 buc60462*
TagsNo tags attached.
Test case number
Attached Files

- Relationships

-  Notes
(0049508)
nbv (developer)
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
#0.0044857456383894396

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.


- Issue History
Date Modified Username Field Change
2015-12-21 16:09 nbv New Issue
2015-12-21 16:09 nbv Assigned To => msv
2015-12-23 09:51 nbv Relationship added child of 0026717
2015-12-23 09:51 nbv Relationship added related to 0026132
2015-12-23 09:51 msv Priority normal => high
2015-12-23 09:51 msv Target Version 7.1.0 => 7.0.0
2015-12-23 10:34 msv Priority high => normal
2015-12-23 14:41 nbv Note Added: 0049508
2015-12-23 14:42 nbv Note Edited: 0049508 View Revisions
2015-12-23 14:44 nbv Note Edited: 0049508 View Revisions
2015-12-23 15:02 nbv Note Edited: 0049508 View Revisions
2015-12-23 15:03 nbv Note Edited: 0049508 View Revisions
2015-12-23 15:04 nbv Note Edited: 0049508 View Revisions
2015-12-23 15:07 msv Assigned To msv => nbv
2015-12-23 15:07 msv Status new => assigned
2015-12-23 15:07 msv Target Version 7.0.0 => 7.1.0
2016-10-25 19:04 msv Target Version 7.1.0 => 7.2.0
2017-07-24 09:33 msv Target Version 7.2.0 => 7.3.0
2017-12-05 17:08 msv Target Version 7.3.0 => 7.4.0*


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker