View Issue Details

IDProjectCategoryView StatusLast Update
0027705CommunityOCCT:Modeling Algorithmspublic2019-09-04 12:11
ReporterMarkus Assigned Tomsv  
Status assignedResolutionopen 
Product Version7.0.0 
Target VersionUnscheduled 
Summary0027705: Modeling Algorithms - Boolean operation returns empty compound for a shape containing a nearly plane cone
DescriptionIn OCC 7.0.0, the boolean operation returns an empty compound, although checkshape, bopcheck and bopargcheck do not complain.

In OCC 6.9.0 bopargcheck complains about an invalild curve on surface on the first shape and the boolean operation runs very long (endless?).
Steps To Reproducepload ALL

restore rf.brep f

whatis f

explode f

whatis f_1

whatis f_2

tolerance f_1

tolerance f_2

checkshape f_1

checkshape f_2

brunparallel 1

bopcheck f_1

bopcheck f_2

bopargcheck f_1 f_2 -O #F

bop f_1 f_2

bopcommon o

whatis o

explode o
TagsNo tags attached.
Test case number

Attached Files

  • rf.brep (531,198 bytes)


related to 0027015 closedbugmaster Community Sewing returns invalid shape if some faces are nearly plane cones 
related to 0027753 closedbugmaster Community Nearly plane cones should not be created by BRepPrimAPI_MakeRevol 
related to 0024772 verifiedknosulko Community Modeling Algorithms - Intersection of cylinder and cone produces incorrect results 



2016-07-22 13:32


rf.brep (531,198 bytes)


2016-07-22 15:46

developer   ~0056182

Further analysis showed that the first shape contains a nearly plane cone. Such geometries already lead to other problems (e.g. 0027015) in the past.


2016-07-22 16:07

developer   ~0056184

Dear Timo,

Nearly plane cones are valid in OCCT. However, they should be avoided to use (such as cylinder or sphere with radius Confusion, for example).

Nevertheless, this problem will possible be solved after integration the fix for issue 0027252 (but I do not promise).


2016-07-22 17:10

developer   ~0056187

Dear nbv,

we try to avoid nearly plane cones but in some situations they occur if we feed a line to BRepPrimAPI_MakeRevol that forms an angle of nearly Pi/2.

Depending on the angle BRepPrimAPI_MakeRevol (more exactly a class that is used by it) decides whether to create a plane or a cone. But there is a certain range (when the angle is nearly Pi/2) which leads to such nearly plane cones.

What do you think about creating a Geom_SurfaceOfRevolution in such cases? Probably, it would help to avoid such problems.


2016-07-22 17:34

developer   ~0056188

Dear Timo, do you suggest that BRepPrimAPI_MakeRevol created Geom_SurfaceOfRevolution instead of Geom_ConicalSurface? If so, then we should choose a threshold angle. Please create a separate bug for this issue.


2016-08-08 11:39

developer   ~0056541

Dear msv, I created a separate issue for BRepPrimAPI_MakeRevol (see 0027753).


2016-08-08 15:14

developer   ~0056553

Thank you, Timo, we will take care of it if there are free resources.


2018-10-26 13:18

developer   ~0080371

Dear Mikhail,

What is the current state of this issue? As far as I know, currently nearly plane cones are converted to the plane on steps of building them. Nevertheless, the attached to this issue shape has already been stored in *.brep format, which does not support any conversions. I.e. an argument of the Boolean operation is nearly-plane cone, as before.

Shall we add new support of such cones? Is this issue still actual?


In spite of above said, following script still creates nearly-plane cone:

Draw[]> cone co 89.99999999999999 100
Draw[]> dump co

*********** Dump of co *************
  Origin :0, 0, 0
  Axis :0, 0, 1
  XAxis :1, 0, -0
  YAxis :-0, 1, 0
  Radius :100

  Angle :1.5707963267949


2018-10-29 17:51

developer   ~0080477

Using low-level API the user can create bad shapes, it is not a secret. Here I see that we have an ill-created shape that is used as an operand to BO. The commands that must check shape validity bopcheck and bopargcheck do not report any issue with this shape regarding ill cone.

So, I propose to add such check in bopcheck algorithm in the scope of this bug. Test case is to be created using the attached shape that must diagnose the ill cone.


2018-10-30 12:42

developer   ~0080518

However, if we fix the issue 0024772 using described there 2nd way this issue will be fixed, too. Then let's postpone this bug.

Issue History

Date Modified Username Field Change
2016-07-22 13:32 Timo New Issue
2016-07-22 13:32 Timo Assigned To => msv
2016-07-22 13:32 Timo File Added: rf.brep
2016-07-22 15:38 msv Assigned To msv => nbv
2016-07-22 15:38 msv Priority normal => low
2016-07-22 15:38 msv Status new => assigned
2016-07-22 15:43 Timo Summary Boolean operation returns empty compound => Boolean operation returns empty compound for a shape containing a nearly plane cone
2016-07-22 15:46 Timo Note Added: 0056182
2016-07-22 15:46 Timo Relationship added related to 0027015
2016-07-22 16:07 nbv Note Added: 0056184
2016-07-22 17:10 Timo Note Added: 0056187
2016-07-22 17:34 msv Note Added: 0056188
2016-08-05 17:26 Timo Relationship added related to 0027753
2016-08-08 11:39 Timo Note Added: 0056541
2016-08-08 15:14 msv Note Added: 0056553
2016-10-25 18:44 msv Target Version 7.1.0 => 7.2.0
2017-05-31 15:41 Timo Reporter Timo => Markus
2017-07-21 11:04 msv Target Version 7.2.0 => 7.3.0
2017-12-05 17:09 msv Target Version 7.3.0 => 7.4.0
2018-05-24 14:17 nbv Relationship added related to 0024772
2018-10-26 13:18 nbv Note Added: 0080371
2018-10-26 13:18 nbv Assigned To nbv => msv
2018-10-26 13:18 nbv Status assigned => feedback
2018-10-29 17:51 msv Note Added: 0080477
2018-10-29 17:51 msv Assigned To msv => nbv
2018-10-29 17:51 msv Status feedback => assigned
2018-10-30 12:42 msv Note Added: 0080518
2019-08-12 19:08 msv Assigned To nbv => msv
2019-08-12 19:20 msv Target Version 7.4.0 => Unscheduled
2019-09-04 12:11 kgv Summary Boolean operation returns empty compound for a shape containing a nearly plane cone => Modeling Algorithms - Boolean operation returns empty compound for a shape containing a nearly plane cone