Skip to content
51 changes: 29 additions & 22 deletions pygem/igeshandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
Derived module from filehandler.py to handle iges and igs files.
"""

from OCC.IGESControl import (IGESControl_Reader, IGESControl_Writer, IGESControl_Controller_Init)
from OCC.IGESControl import (IGESControl_Reader, IGESControl_Writer,
IGESControl_Controller_Init)
from OCC.IFSelect import IFSelect_RetDone
from pygem.nurbshandler import NurbsHandler


class IgesHandler(NurbsHandler):
"""
"""
Iges file handler class

:cvar string infile: name of the input file to be processed.
Expand All @@ -28,12 +30,12 @@ class IgesHandler(NurbsHandler):
made for analysis but for design purposes.
"""

def __init__(self):
super(IgesHandler, self).__init__()
self.extensions = ['.iges', '.igs']
def __init__(self):
super(IgesHandler, self).__init__()
self.extensions = ['.iges', '.igs']

def load_shape_from_file(self, filename):
"""
def load_shape_from_file(self, filename):
"""
This class method loads a shape from the file `filename`.

:param string filename: name of the input file.
Expand All @@ -42,25 +44,30 @@ def load_shape_from_file(self, filename):
:return: shape: loaded shape
:rtype: TopoDS_Shape
"""
self._check_filename_type(filename)
self._check_extension(filename)
reader = IGESControl_Reader()
reader.ReadFile(filename)
reader.TransferRoots()
shape = reader.Shape()
return shape
self._check_filename_type(filename)
self._check_extension(filename)
reader = IGESControl_Reader()
return_reader = reader.ReadFile(filename)
# check status
if return_reader == IFSelect_RetDone:
return_transfer = reader.TransferRoots()
if return_transfer:
# load all shapes in one
shape = reader.OneShape()

def write_shape_to_file(self, shape, filename):
"""
return shape

def write_shape_to_file(self, shape, filename):
"""
This class method saves the `shape` to the file `filename`.

:param: TopoDS_Shape shape: loaded shape
:param string filename: name of the input file.
It should have proper extension (.iges or .igs)
"""
self._check_filename_type(filename)
self._check_extension(filename)
IGESControl_Controller_Init()
writer = IGESControl_Writer()
writer.AddShape(shape)
writer.Write(filename)
self._check_filename_type(filename)
self._check_extension(filename)
IGESControl_Controller_Init()
writer = IGESControl_Writer()
writer.AddShape(shape)
writer.Write(filename)
Loading