I am hoping someone can give me some insight in the meaning of some messages I am getting when loading a STEP file using the STEPControl_Reader.
I am doing the most basic of basic loading, like this:
IFSelect_ReturnStatus stat = reader.ReadFile(myFile);
And then I do a PrintCheckLoad(), including all messages, and displaying it by entity:
I am doing this because I have a big STEP file ~800 mb that has some missing shapes when I try to load it in our project using OpenCascade, and I hope I can find something out from these messages and the Transfer messages as well.
The file is AP203, and created from SolidWorks 2019, using SwSTEP 2.0, according to the step header.
The PrintCheckLoad(...) mentions 250 entities, and I see 2 different types of messages:
-- Some of the messages are about an illegal type, for example:
Check: 4 -- Entity (n0:id) 125694:# 125695 Type:EDGE_LOOP
Parameter n0.2 (oriented_edge) : Entity has illegal type
Parameter n0.5 (oriented_edge) : Entity has illegal type
For this particular message, I looked in the STEP file, and entities 2 and 5 are of type VERTEX_POINT, while the others are ORIENTED_EDGE. I guess OpenCascade only allows ORIENTED_EDGE for an EDGE_LOOP?
Also, will OpenCascade still import this edge loop? Because it should be able to try to just ignore the vertices and try to create the edge loop from the oriented edges that *are* there, right?
-- Most of the messages are about a Standard_NoSuchObject Exception, for example:
Check: 2 -- Entity (n0:id) 26530:# 26536 Type:TOROIDAL_SURFACE
** Exception Raised during Check : Standard_NoSuchObject **
This I don't understand at all. So I tried to find this entity in the original STEP file:
# 26536 = TOROIDAL_SURFACE ( 'NONE', # 5471226, 0.9999999999999453770, 2.000000000000001776 ) ;
# 5471226 = AXIS2_PLACEMENT_3D ( 'NONE', # 4638889, # 7695737, # 3936265 ) ;
# 4638889 = CARTESIAN_POINT ( 'NONE', ( 114.9470228373221659, -4.736141352207567934, -319.0000000000008527 ) ) ;
# 7695737 = DIRECTION ( 'NONE', ( 1.000000000000000000, -2.775557561562741152E-14, 2.775557561562889142E-14 ) ) ;
# 3936265 = DIRECTION ( 'NONE', ( 2.775557561562889142E-14, 1.414070715952725985E-41, -1.000000000000000000 ) ) ;
I must be misunderstanding something, because to me everything seems to be present, and the values don't seem strange to me. So what is causing the Standard_NoSuchObject Exception? What object is it referring to? And what is wrong with it? How do I configure OpenCascade to load this without complaint?