
Fri, 10/10/2008 - 22:57
Forums:
I just switched my code from 6.2 to 6.3. In my old code, I was using Interface_Tracefile to set a log file for importing/exporting IGES & STEP files. The code was similar to this:
Interface_TraceFile::SetDefault(2, cLogFile, Standard_False);
Unfortuntely, Interface_TraceFile was removed in OCC 6.3 (actually 6.2.1). The nearest replacement I could find is:
Handle(Message_PrinterOStream) filePrinter;
filePrinter = new Message_PrinterOStream(cLogFile, Standard_False, Message_Info);
Handle(Message_Messenger) msgr = Message::DefaultMessenger();
msgr->AddPrinter(filePrinter);
This causes the file to be created, but none of the messages are written (the file remains empty).
Any help would be greatly appreciated.
Rob
Mon, 10/13/2008 - 18:17
Well, it turns out that my code was correct. However, OCC 6.3 has a bug that was preventing it from working as expected...
In the file Message_PrinterOStream, line 93 (the Send function):
if ( theGravity >= myTraceLevel || ! myStream ) return;
In theory, each setting of myTraceLevel should allow additional information:
Message_Fail -> only failures
Message_Alarm -> failures and errors
Message_Warning -> failures, errors, and warnings
Message_Info -> failures, errors, warnings, and information
Message_Trace -> all information plus internal debugging
Unfortunately, the way the code is written produces the opposite effect. The only way to get all messages is to set the value to the highest enumerated value, Message_Fail. In addition, because the code exits on >=, failure messages can never be printed.
This line of code should probable read:
if ( theGravity < myTraceLevel || ! myStream ) return;
Rob
Tue, 10/14/2008 - 13:24
Hi Rob,
Yep, I also did notice the bug (though did not dig into the sourcecode). In Draw Test Harness:
Draw > pload ALL
Draw > xtrace 2 (this sets trace level to 2, enough for failures and warnigs)
Draw > igesbrep filename.igs shape
silently translates the file though there are warnings and failures happening there, which can later be retrieved with
Draw > tps c
So, hope the OCC team will fix that.
Roman
Tue, 08/04/2009 - 14:14
OCCPATCH