Notes 

(0051346)

msv

20160303 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

20160303 12:57


Intersection curve is found. It is an ellipse (cylinderplane intersection) and seems to be valid.
However, it is rejected by postprocessing 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

20160311 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 2drepresentation of surface boundaries.
In other words, there are some points in surface boundary, which are in quadric with given tolerance (3.0e7). 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

20160407 17:54


Dear Mikhail,
Fix in branch CR27252 solves this problem completely. Please review. 


(0053629)

msv

20160427 12:11


Dear bugmaster, please check and close this bug after resolving 0027252. 


(0062967)

nbv

20170124 17:13
(edited on: 20170124 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

20170124 17:31




(0062972)

mkv

20170124 17:32


