For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

Wrong Normals after IGES import

Niraj Pansare's picture

I am trying to import the IGES file and then want to iterate through each face to get correct face normal.
But I am getting wrong normals for the face.Here is the steps which I am following.
1.Read IGES using IGESControl_Reader
2.Sew the body using BRepBuilderAPI_Sewing
3.Try to repair the shape using ShapeFix_Shell
4.iterating through the faces to get face normals - tried these 3 approaches (BRepGProp_Face/BRepAdaptor_Surface.D1()/GeomLProp_SLProps)
each one is giving same result. but wrong one.
Face normal coming reverse for some faces.

One approach is:
gp_Vec d1U = new gp_Vec();
gp_Vec d1V = new gp_Vec();
gp_Pnt p = new gp_Pnt();
bRepAdaptorSurface.D1(uParam, vParam, ref p, ref d1U, ref d1V);
gp_Vec norm = d1U.Crossed(d1V);
if(face.Orientation() == TopAbs_Orientation.TopAbs_REVERSED)

Same approach works fine for STEP file.

Can someone help me in this case? Am I doing something wrong while reading IGES?
Please find the sample iges attached.

Vrushal Nanavati's picture

Did you find the answer on how to fix the surface normals for models imported from IGES files?
I seem to have the same problem when reading an IGES file. The surface normals of some of the faces are inwards, while others have it outwards.
Everything works just fine with STEP file models.

I can see a lot of questions were asked around this but, no solid answer yet.
Can someone please help?