Example #1
0
    def read_iges(fn):
        """
        Read an IGES file and return as a single shape.

        :param str fn: Filename.

        :return: The shape.
        :rtype: OCCT.TopoDS.TopoDS_Shape
        """
        reader = IGESControl_Reader()
        reader.ReadFile(fn)
        reader.TransferRoots()
        return reader.OneShape()
Example #2
0
    def __init__(self, fn):
        self._reader = IGESControl_Reader()

        # Read file
        status = self._reader.ReadFile(fn)
        if status != IFSelect_RetDone:
            raise RuntimeError("Error reading IGES file.")

        # Convert to desired units
        Interface_Static.SetCVal_("xstep.cascade.unit", Settings.units)

        # Transfer
        nroots = self._reader.TransferRoots()
        if nroots > 0:
            self._shape = Shape.wrap(self._reader.OneShape())
Example #3
0
def load_iges(filename):
    """ Load an iges model """
    reader = IGESControl_Reader()
    status = reader.ReadFile(filename)
    if status != IFSelect_RetDone:
        raise ValueError("Failed to load: {}".format(filename))
    reader.PrintCheckLoad(False, IFSelect_ItemsByEntity)
    reader.PrintCheckTransfer(False, IFSelect_ItemsByEntity)
    ok = reader.TransferRoots()
    return [TopoShape(shape=reader.Shape(1))]
Example #4
0
class IgesRead(object):
    """
    Read an IGES file.

    :param str fn: The file to read.
    """
    def __init__(self, fn):
        self._reader = IGESControl_Reader()

        # Read file
        status = self._reader.ReadFile(fn)
        if status != IFSelect_RetDone:
            raise RuntimeError("Error reading IGES file.")

        # Convert to desired units
        Interface_Static.SetCVal_("xstep.cascade.unit", Settings.units)

        # Transfer
        nroots = self._reader.TransferRoots()
        if nroots > 0:
            self._shape = Shape.wrap(self._reader.OneShape())

    @property
    def object(self):
        """
        :return: The IGES reader object.
        :rtype: OCCT.IGESControl.IGESControl_Reader
        """
        return self._reader

    @property
    def shape(self):
        """
        :return: The main shape.
        :rtype: afem.topology.entities.Shape
        """
        return self._shape
 def read_file(self):
     """
     Read the IGES file and stores the result in a list of TopoDS_Shape
     """
     aReader = IGESControl_Reader()
     status = aReader.ReadFile(self._filename)
     if status == IFSelect_RetDone:
         failsonly = False
         aReader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)
         nbr = aReader.NbRootsForTransfer()
         aReader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)
         # ok = aReader.TransferRoots()
         for n in range(1, nbr + 1):
             self.nbs = aReader.NbShapes()
             if self.nbs == 0:
                 print("At least one shape in IGES cannot be transfered")
             elif nbr == 1 and self.nbs == 1:
                 aResShape = aReader.Shape(1)
                 if aResShape.IsNull():
                     print(
                         "At least one shape in IGES cannot be transferred")
                 self._shapes.append(aResShape)
             else:
                 for i in range(1, self.nbs + 1):
                     aShape = aReader.Shape(i)
                     if aShape.IsNull():
                         print(
                             "At least one shape in STEP cannot be transferred"
                         )
                     else:
                         self._shapes.append(aShape)
         return True
     else:
         print("Error: can't read file %s" % self._filename)
         return False
     return False