Overview
Reading and Writing of IGES files is handled by the igs_iges_file class, which also holds the IGES header data. To read an IGES file, first create a RoseDesign to hold the results, create an instance of the igs_iges_file within that, and then call the read() function to bring in the IGES file and populate the design.The reading function takes a second boolean argument that indicates whether to return on parsing errors. The function returns a zero value if there was an error opening or processing the file. The sample code for iges2step shows a more detailed example.
void main() { // create an empty design RoseDesign * design = new RoseDesign("sample_part"); igs_iges_file * f = pnewIn(design) igs_iges_file; // read the contents of the file if ( !f-> read("sample_part.igs", ROSE_FALSE) ) { // problem reading } // process the iges entities now in the design }
There are two versions of the read function. One takes a const char* filename and the other takes a FILE* file pointer. On Windows, you can use the file pointer version to read files opened by fopen() or wfopen(). On other systems, fopen() will accept UTF-8 encoded filenames so you can use either version to read files with wide character names.
void main() { // create an empty design RoseDesign * design = new RoseDesign("sample_part"); igs_iges_file * f = pnewIn(design) igs_iges_file; FILE * file = fopen ("sample_part.igs", "rb"); if (!file || !f->read (file, ROSE_FALSE)) { // problem reading } fclose (file); // process the iges entities now in the design }