Archived issue #0030013
Data Exchange - errors occur on Step file import STEPControl_Reader::ReadFile
Description
STEPControl_Reader::ReadFile throws exception on attached file import
Steps to reproduce
Simple STEPControl_Reader::ReadFile fails with attached step file.
Additional information
Received the following messages.
*** ERR StepReaderData *** Pour Entite #628902
Type:ORIENTED_EDGE Param.n0 4: #2147483647 Non trouve
*** ERR StepReaderData *** Pour Entite #633297
Type:ORIENTED_EDGE Param.n0 4: #2147483647 Non trouve
Report : 354 unknown entities.
*** ERR StepReaderData *** Pour Entite #628902
Type:ORIENTED_EDGE Param.n0 4: #2147483647 Non trouve
*** ERR StepReaderData *** Pour Entite #633297
Type:ORIENTED_EDGE Param.n0 4: #2147483647 Non trouve
Report : 354 unknown entities.
Public activity
5 archived notes
Participants are labeled by their role within this record.
Problem occurs in TransferRoot.
Please refer the following code:
STEPControl_Reader aReader;
IFSelect_ReturnStatus status = aReader.ReadFile(this->strStepFileName.c_str());
if (status != IFSelect_RetDone)
return nullptr;
aReader.WS()->TransferReader()->TransientProcess()->SetTraceLevel(2); // increase default trace level
Standard_Boolean failsonly = Standard_False;
aReader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity);
// Root transfers
Standard_Integer nbr = aReader.NbRootsForTransfer();
aReader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity);
for (Standard_Integer n = 1; n <= nbr; n++) {
Standard_Boolean ok = aReader.TransferRoot(n); // Error Occurs
}
Please refer the following code:
STEPControl_Reader aReader;
IFSelect_ReturnStatus status = aReader.ReadFile(this->strStepFileName.c_str());
if (status != IFSelect_RetDone)
return nullptr;
aReader.WS()->TransferReader()->TransientProcess()->SetTraceLevel(2); // increase default trace level
Standard_Boolean failsonly = Standard_False;
aReader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity);
// Root transfers
Standard_Integer nbr = aReader.NbRootsForTransfer();
aReader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity);
for (Standard_Integer n = 1; n <= nbr; n++) {
Standard_Boolean ok = aReader.TransferRoot(n); // Error Occurs
}
The file is invalid, because some oriented edges contain a non-existent reference to EDGE_CURVE - nothing can be done about this, I suggest closing the bug.
An example of an incorrectly oriented edge: ORIENTED_EDGE ( 'NONE', *, *, #18446744073709551615, .T. )
An example of an incorrectly oriented edge: ORIENTED_EDGE ( 'NONE', *, *, #18446744073709551615, .T. )
Dear ika, please check my findings and confirm.
Dear Commenter 1,
I totally agree with ssafarov's problem description.
Please close the issue.
I totally agree with ssafarov's problem description.
Please close the issue.
Closed.