Mon, 11/28/2011 - 23:33
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?
Tue, 11/29/2011 - 17:11
Could you attach the iges file to the post,
we will try to reproduce the problem and analyze it.
Tue, 11/29/2011 - 20:38
Hi, please find the iges file attached to this post.
Wed, 11/30/2011 - 11:14
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.
Wed, 11/30/2011 - 11:46
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.
box b 1 1 1
dump b #all surfaces are planes
# choose 0 - end
listtypes #6 B-Spline surfaces
igesbrep . bb *
dump bb #all surfaces are B-Splines
Hope this helps.
Wed, 11/30/2011 - 12:15
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.
Wed, 11/30/2011 - 12:47
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/...).
Wed, 11/30/2011 - 13:03
Thanks Roman for your additional efforts.
Your note is registered.
Thu, 12/01/2011 - 13:25