problem loading/triangulating a one NURBS sphere

I created a sphere in a CAD tool called Rhino by defining a half-circle arc and rotating it 360 degrees to sweep out the sphere. I saved it as an IGES file. Note, this IGES file contains one IGES128 NURBS surface.

When I load the file back into Rhino, it renders correctly.

When I load it into an OpenCASCADE application it does not render, although it does appear to at least partially load. I have tried it in my application based on OpenCASCADE. I have also tried to load it the precompiled win32 ImportExport demo application.

Using Rhino, I split the sphere into more than one NURBS surface and resaved it. I can then load this version of the sphere into my OpenCASCADE applications without any problems.

I have attached the IGES sphere file. Is there something 'wrong' with this file? Can someone explain why OpenCASCADE has trouble with it?

I see this behavior on more complicated surfaces in other IGES models -- basically any surface that wraps around and touches itself seems to cause a problem. It doesn't have to be fully closed, like the sphere. Shapes that are like long open-ended cylinders appear to have the same problem. The surface just has to be curved so that the starting edge of the NURBS surface touches the ending edge, in either the U or the V direction.

Thanks in advance for your help.
Tod

Attachments: 
Andrey Betenev's picture

Hello Tod,

Your file is OK and loaded well to OCCT, and OCCT 6.3.1 displays it without any problem. However shading of this shape in OCCT 6.3.0 is really bad, obviously due to some problem in triangulation, fixed later in 6.3.1. One hint could be that the surface is C0-continuous (bspline).

Hope this helps,
Andrey