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()
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())
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))]
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