Anonymous | Login 2020-01-25 14:04 MSK Project: All Projects Community Open CASCADE
 My View | View Issues | Change Log | Roadmap

View Issue Details  Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0027753Community[OCCT] OCCT:Modeling Algorithmspublic2016-08-05 17:262017-09-29 16:25
ReporterMarkus
Assigned Tobugmaster
PrioritynormalSeverityminor
StatusclosedResolutionfixed
PlatformOSOS Version
Product Version[OCCT] 7.0.0
Target Version[OCCT] 7.2.0Fixed in Version[OCCT] 7.2.0
Summary0027753: Nearly plane cones should not be created by BRepPrimAPI_MakeRevol
DescriptionIf a curve is rotated using BRepPrimAPI_MakeRevol, different kinds of geometrical objects are created depending on the nature of the curve. If the curve is a line the result can be a Geom_Plane, a Geom_ConicalSurface or a Geom_CylindricalSurface depending on the angle between line and rotation axis. The decision is made in GeomAdaptor_SurfaceOfRevolution::GetType().

There is a certain range (when the angle is nearly Pi/2) which leads to nearly plane cones. According to 0027705, nearly plane cones should be avoided to use because they lead to different problems within OCCT and sometimes also when exported to other CAD systems.

Therefore, it is proposed to modify GeomAdaptor_SurfaceOfRevolution::GetType() to create a Geom_SurfaceOfRevolution instead of such nearly plane cones. The question is, what would be the best threshold angle when to create a Geom_SurfaceOfRevolution instead of a cone.

In our code we use something like [pseudo code]:
(Math.Abs(Geom_ConicalSurface.SemiAngle() - Math.PI / 2) <= 1e-6)

But this might be possible to improve.

In the probleamtic case of 0027705 the semi angle is 1.5707963236984104. So, it differs from Pi/2 by 3e-9.
In 0027015 the semi angle is 1.5707963. It differs from Pi/2 by 2e-8.
Steps To ReproduceNot required
TagsNo tags attached.
Test case numberNot needed
Attached Files cone.zip (18,701 bytes) 2016-08-05 17:29
s10 imported in NX10.png (61,138 bytes) 2016-08-08 11:04

Relationships
 related to 0027705 assigned msv Community Modeling Algorithms - Boolean operation returns empty compound for a shape containing a nearly plane cone related to 0027015 closed bugmaster Community Sewing returns invalid shape if some faces are nearly plane cones

 Notes Timo (developer) 2016-08-08 11:07 The screenshot "s10 imported in NX10" shows how the face s10.stp, which was created by the script (see steps to reproduce) looks like when imported in Siemens NX10. The other faces look better. Here, the semi angle is 1,5707963267848966, which differs from Pi/2 by 1e-11. ifv (developer) 2017-01-23 12:56 Fix is branch CR28261_28266 mkv (tester) 2017-01-25 15:44 Dear BugMaster, Branch CR28261_28266 is TESTED.