DATAKIT SDK  V2026.4
OpenDocumentToParasolid.cpp File Reference

Functions

Dtk_ErrorStatus ProcessCADFileToParasolid (const Dtk_string &inInputFile, const Dtk_string &inOutputFolder)
 

Function Documentation

◆ ProcessCADFileToParasolid()

Dtk_ErrorStatus ProcessCADFileToParasolid ( const Dtk_string &  inInputFile,
const Dtk_string &  inOutputFolder 
)
20 {
21  Dtk_API* myAPI = Dtk_API::GetAPI();
22 
23  cout << "Processing file: " << inInputFile.c_str() << endl;
24 
25  // Optionally retrieve and display the source file version.
26  Dtk_string fileVersion;
27  Dtk_ErrorStatus stError = myAPI->GetFileVersion( inInputFile, fileVersion );
28  if( fileVersion.is_not_NULL() )
29  cout << "File version: " << fileVersion.c_str() << endl;
30  if( stError != dtkNoError )
31  {
32  cout << "Error retrieving file version: " << dtkTypeError( stError ).c_str() << endl;
33  return stError;
34  }
35 
36  // Optional: activate a log file to capture reader diagnostics.
37  myAPI->SetLogFile( "DtkLogFile.txt" );
38 
39  // Initialise the Parasolid writer to write a .x_t file alongside the input.
40  Dtk_ErrorStatus stErrorPsw = PswWriteInit( inInputFile, inOutputFolder );
41 
42  // Open the source document.
43  Dtk_MainDocPtr tmpDoc;
44  Dtk_ErrorStatus err = myAPI->OpenDocument( inInputFile, tmpDoc );
45 
46  if( err == dtkNoError && tmpDoc.IsNotNULL() )
47  {
48  // Traverse the document and write Parasolid output.
49  if( stErrorPsw == dtkNoError )
50  PswWriteDocument( tmpDoc );
51  }
52  else
53  {
54  cout << "Error OpenDocument: " << dtkTypeError( err ).c_str() << endl;
55  }
56 
57  // Close the source document and release its resources.
58  myAPI->EndDocument( tmpDoc );
59 
60  // Finalise and close the Parasolid output.
61  PswWriteEnd();
62 
63  return err;
64 }
Dtk_API::EndDocument
Dtk_ErrorStatus EndDocument(Dtk_MainDocPtr &inoutDocument)
Close a Document.
Dtk_SmartPtr::IsNotNULL
Dtk_bool IsNotNULL() const
Definition: util_ptr_dtk.hpp:119
Dtk_string
This is a high level string class.
Definition: dtk_string.hpp:53
Dtk_API::OpenDocument
Dtk_ErrorStatus OpenDocument(const Dtk_string &inInputFile, Dtk_MainDocPtr &outDocument)
Open a Document (call EndDocument to close it)
PswWriteEnd
Dtk_ErrorStatus PswWriteEnd()
Definition: WriteParasolid.cpp:442
Dtk_string::is_not_NULL
Dtk_bool is_not_NULL() const
Dtk_API::GetAPI
static Dtk_API * GetAPI()
Get DATAKIT API.
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
dtkTypeError
Dtk_string dtkTypeError(Dtk_Int32 errNumero)
Dtk_string::c_str
const char * c_str() const
Retrieve the ASCII conversion string.
PswWriteDocument
void PswWriteDocument(Dtk_MainDocPtr inDocument)
Definition: WriteParasolid.cpp:349
PswWriteInit
Dtk_ErrorStatus PswWriteInit(const Dtk_string &inInputFile, const Dtk_string &inOutputFolder)
Definition: WriteParasolid.cpp:388
Dtk_API::GetFileVersion
Dtk_ErrorStatus GetFileVersion(const Dtk_string &inInputFile, Dtk_string &outVersion)
Independant method to get version of inInputFile.
dtkNoError
@ dtkNoError
Definition: error_dtk.hpp:151
Dtk_API::SetLogFile
Dtk_ErrorStatus SetLogFile(const Dtk_string &inLogFile)
Set Log File.
Dtk_API
Definition: dtk_api.hpp:75