MantisBT - Community
View Issue Details
0027221Community[OCCT] OCCT:Modeling Algorithmspublic2016-03-03 11:132017-09-29 16:31
abv 
bugmaster 
normalmajor 
closedfixed 
[OCCT] 6.7.1 
[OCCT] 7.2.0[OCCT] 7.2.0 
bugs modalg_6 bug27221
0027221: Regression vs. 6.7.0: bcut fails without notice
The problem is reported on http://dev.opencascade.org/index.php?q=node/1150 [^]

OCCT 6.7.1 and later (including current master) fails to make a cut of two solids without giving any error message (produced result is geometrically equivalent to original solid).
Test case for this issue has been created in frame of the fix for issue 0027252.

pload MODELING

restore [locate_data_file bug27221.brep] a
explode a
mkplane f a_2
prism p f -25 0 0
bcut result a_1 p
donly result a_2

checkprops result -v 56860.2 -s 72076
No tags attached.
parent of 0027252closed apn Open CASCADE Implicit-implicit intersection (Cylinder-Plane) loses intersection curve 
? bug27221.brep (22,399) 2016-03-03 11:14
https://tracker.dev.opencascade.org/
Issue History
2016-03-03 11:13abvNew Issue
2016-03-03 11:13abvAssigned To => msv
2016-03-03 11:14abvFile Added: bug27221.brep
2016-03-03 11:20abvStatusnew => assigned
2016-03-03 11:20abvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=13113#r13113
2016-03-03 11:44msvAssigned Tomsv => emv
2016-03-03 12:14msvNote Added: 0051346
2016-03-03 12:14msvAssigned Toemv => nbv
2016-03-03 12:57nbvNote Added: 0051350
2016-03-11 10:34nbvSeverityminor => major
2016-03-11 16:10nbvRelationship addedparent of 0027252
2016-03-11 17:00nbvNote Added: 0051560
2016-03-14 10:34nbvRelationship addedrelated to 0026748
2016-04-07 17:54nbvNote Added: 0052482
2016-04-07 17:54nbvAssigned Tonbv => msv
2016-04-07 17:54nbvStatusassigned => resolved
2016-04-07 17:54nbvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=13415#r13415
2016-04-27 12:11msvNote Added: 0053629
2016-04-27 12:11msvAssigned Tomsv => bugmaster
2016-04-27 12:11msvStatusresolved => feedback
2016-04-28 10:05bugmasterAssigned Tobugmaster => apn
2016-08-18 10:14bugmasterAssigned Toapn => apv
2016-11-18 17:30msvAssigned Toapv => nbv
2016-11-18 17:30msvTarget Version7.1.0 => 7.2.0
2017-01-24 15:24mkvTest case number => bugs modalg_6 bug27221
2017-01-24 17:13nbvNote Added: 0062967
2017-01-24 17:14nbvNote Edited: 0062967bug_revision_view_page.php?bugnote_id=62967#r15910
2017-01-24 17:14nbvAssigned Tonbv => abv
2017-01-24 17:31mkvNote Added: 0062971
2017-01-24 17:32mkvNote Added: 0062972
2017-01-24 17:32mkvAssigned Toabv => bugmaster
2017-01-24 17:32mkvStatusfeedback => tested
2017-01-27 16:17apnStatustested => verified
2017-01-27 16:17apnResolutionopen => fixed
2017-09-29 16:21aivFixed in Version => 7.2.0
2017-09-29 16:31aivStatusverified => closed

Notes
(0051346)
msv   
2016-03-03 12:14   
The newer versions of OCCT do not find intersection curve between a pair of faces (see script below). Without this intersection Boolean operation cannot work right.

restore bug27221.brep a
explode a
mkplane f a_2
prism p f -25 0 0

explode a_1 f
explode p f
don a_1_7 p_3
bopcurves a_1_7 p_3
(0051350)
nbv   
2016-03-03 12:57   
Intersection curve is found. It is an ellipse (cylinder-plane intersection) and seems to be valid.

However, it is rejected by post-processing of Boolean algorithm in GeomInt_LineConstructor::TreatCircle(...) method.

Most likely, the reason is in putting incorrect vertexes (IntPatch_Points) to the intersection curve.

In OCCT 6.7.0 version the result seems to be valid. In OCCT 6.7.1 and higher (including current MASTER) result of "bopcurves" command is empty.
(0051560)
nbv   
2016-03-11 17:00   
IntPatch_Points are found in IntPatch_ImpImpIntersection::Perform(...) (solrst.Perform(...)) as intersection point between surface (in this case, cylinder) domain and quadric (plane).

In fact, domain is 2d-representation of surface boundaries.

In other words, there are some points in surface boundary, which are in quadric with given tolerance (3.0e-7). However, the distance between it and intersection line (ellipse) is greater than tolerance. Therefore, this point is rejected.

Possible reason is that the distance between the point and the curve computes wrong (with big error - see issue 0027252). If it is not other reasons of described behavior are possible.
(0052482)
nbv   
2016-04-07 17:54   
Dear Mikhail,

Fix in branch CR27252 solves this problem completely. Please review.
(0053629)
msv   
2016-04-27 12:11   
Dear bugmaster, please check and close this bug after resolving 0027252.
(0062967)
nbv   
2017-01-24 17:13   
(edited on: 2017-01-24 17:14)
Dear Andrey,

This bug is fixed in frame of the issue 0027252 (branch CR27252_4). Please see the message 0027252:0062944.

(0062971)
mkv   
2017-01-24 17:31   
Testing cases:
http://occt-tests/CR27252_4-CR27252prod-OCCT/Debian70-64/bugs/modalg_6/bug27221.html [^]
http://occt-tests/CR27252_4-CR27252prod-OCCT/Windows-64-VC10/bugs/modalg_6/bug27221.html [^]
bugs modalg_6 bug27221: OK
(0062972)
mkv   
2017-01-24 17:32   
TESTED.