Plane is reported as BSpline Surface.

Hi all,

I have an iges file which represents a rectangular solid with 6 faces, when I view it in cadexchanger, it is as expected. When I read the IGES file programmatically in OpenCascade, I find 6 BSpline surfaces instead of planes, Was a little confused as to how I can proceed from here.. any pointers on the same?

Forum supervisor's picture

Dear Krishna,
Could you attach the iges file to the post,
we will try to reproduce the problem and analyze it.
Regards

krishbharadwaj's picture

Hi, please find the iges file attached to this post.

Regards

Attachments: 
Forum supervisor's picture

Dear Krishna,
The attached iges file (simplecube.igs) contains cube with surfaces already defined as b-spline surfaces (not canonical planes). OCCT iges_reader reads it "as is..." without any transformation or simplification. So, you should check steps of cube building and keeping.
Regards

Roman Lygin's picture

The IGES file has been produced by OCC.

So, the root-cause is in the fact that the OCC IGES exporter converts planes to B-Splines of degree 1. So you lose your plane information when writing to IGES.
Draw reproducer:

pload ALL
box b 1 1 1
dump b #all surfaces are planes
brepiges b
# choose 0 - end
listtypes #6 B-Spline surfaces
igesbrep . bb *
dump bb #all surfaces are B-Splines

Hope this helps.
Roman

Forum supervisor's picture

Dear Roman,
Thanks for your contribution.
The corresponding issue with ID = 22820 has been registered.
Later you may check if the issue is resolved by checking references to the specified ID in OCCT Release Notes. The analysis of the issue will take some time depending on our technical capability and availability of resources.
Regards

Roman Lygin's picture

Forum supervisor:

Thank you for registering this report.
My thinking is that this behavior has been historically adopted due to IGES format limitation where the Plane entity (type 108) defines a plane without parameterization. With that storing pcurves will be impossible. However this should likely be fine given that pcurves are optional in OCC for planes and can be computed on the fly when reading back.
Another thought - when storing file using IGES 5.1+ (i.e. using solid/shell/face entities) - consider using Plane Surface Entity (type 190 form 1) depending on the write.surfaceconvert.mode parameter. This will be consistent with the choice made regarding revolved surfaces which are either stored as surface_of_revolution (type 120) or conical/cylindrical/etc types (192/194/...).

HTH.
Roman

Forum supervisor's picture

Thanks Roman for your additional efforts.
Your note is registered.
Regards

krishbharadwaj's picture

Thanks Roman..

Regards
Krishna Bharadwaj