MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0027705Community[OCCT] OCCT:Modeling Algorithmspublic2016-07-22 13:322018-10-30 12:42
ReporterMarkus 
Assigned Tonbv 
PrioritylowSeverityminor 
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version[OCCT] 7.0.0 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0027705: 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? file icon rf.brep (531,198 bytes) 2016-07-22 13:32

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

-  Notes
(0056182)
Timo (developer)
2016-07-22 15:46

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.
(0056184)
nbv (developer)
2016-07-22 16:07

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).
(0056187)
Timo (developer)
2016-07-22 17:10

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.
(0056188)
msv (developer)
2016-07-22 17:34

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.
(0056541)
Timo (developer)
2016-08-08 11:39

Dear msv, I created a separate issue for BRepPrimAPI_MakeRevol (see 0027753).
(0056553)
msv (developer)
2016-08-08 15:14

Thank you, Timo, we will take care of it if there are free resources.
(0080371)
nbv (developer)
2018-10-26 13:18

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?

P.S.

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

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


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

  Angle :1.5707963267949
(0080477)
msv (developer)
2018-10-29 17:51

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.
(0080518)
msv (developer)
2018-10-30 12:42

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-17 16:10 san Relationship added related to 0027968
2016-10-19 12:48 san Relationship deleted related to 0027968
2016-10-19 12:48 san Relationship added has duplicate 0027968
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


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker