def edgesAsSequence(self): "returns edge list as a sequence" wireExp = BRepTools.BRepTools_WireExplorer(self.wire) resultWires = TopTools.TopTools_HSequenceOfShape() while wireExp.More(): e = wireExp.Current() resultWires.Append(e) wireExp.Next() return resultWires
def shape_to_file(shape, pth, filename, format='iges'): '''write a Shape to a .iges .brep .stl or .step file''' _pth = os.path.join(pth, filename) assert not os.path.isdir(_pth), 'wrong path, filename' _file = "%s.%s" % (_pth, format) _formats = ['iges', 'igs', 'step', 'stp', 'brep', 'stl'] assert format in _formats, '%s is not a readable format, should be one of %s ' % ( format, _formats) if format in ['iges', 'igs']: i = IGESControl_Controller() i.Init() writer = IGESControl_Writer() writer.AddShape(shape) writer.Write(_file) return _file elif format in ['step', 'stp']: i = STEPControl_Controller() i.Init() writer = STEPControl_Writer() writer.Transfer(shape, STEPControl_AsIs) writer.Write(_file) return _file elif format == 'brep': from OCC import TopoDS, BRep, BRepTools #shape = TopoDS.TopoDS_Shape() builder = BRep.BRep_Builder() BRepTools.BRepTools().Write(shape, _file) elif format == 'stl': from OCC import TopoDS, StlAPI #shape = TopoDS.TopoDS_Shape() stl_reader = StlAPI.StlAPI_Writer() stl_reader.Read(shape, _file) else: raise TypeError( 'format should be one of [iges,igs], [step,stp], brep, stl\ngot %s' % (format))
def LoadFile(self, filename): extension = os.path.basename(filename).split(".").pop().lower() start_time = time.time() if extension == "step" or extension == "stp": stepReader = STEPControl.STEPControl_Reader() stepReader.ReadFile(str(filename)) numTranslated = stepReader.TransferRoots() shape = stepReader.OneShape() elif extension == "stl": shape = TopoDS.TopoDS_Shape() stl_reader = StlAPI.StlAPI_Reader() stl_reader.Read(shape, str(filename)) elif extension == "iges" or extension == "igs": i = IGESControl.IGESControl_Controller() i.Init() iges_reader = IGESControl.IGESControl_Reader() iges_reader.ReadFile(str(filename)) iges_reader.TransferRoots() shape = iges_reader.OneShape() elif extension == "brep": shape = TopoDS.TopoDS_Shape() builder = BRep.BRep_Builder() BRepTools.BRepTools().Read(shape, str(filename), builder) else: return True self.canva._3dDisplay.EraseAll() self.canva._3dDisplay.DisplayShape(shape) wx.SafeYield() self.canva._3dDisplay.View_Iso() self.canva._3dDisplay.FitAll() end_time = time.time() self.SetTitle("pythonOCC Interactive Console %s:%s" % (VERSION, filename)) duration = end_time - start_time print "%s STEP file loaded and displayed in %f seconds." % (filename, duration)
from OCC import TopTools, BRepBndLib, Bnd, gp, BRepBuilderAPI, GProp, BRepGProp, BRepPrimAPI, BRepAlgoAPI, BRepTools, BRepAlgo from OCC.Utils.Topology import Topo from OCC.Utils import Topology import SlicingOptions import Wrappers import OCCUtil from Extruder import * from Constants import * import hatchlib import Util import debugdisplay brt = BRepTools.BRepTools() """ Slices a solid, Still to implement: (1) Filling (a) implement fill density (b) implement alternating fill angle (c) join paths (2) Output (a) SVG output (b) Gcode output (3) Testing: try loading STL (4) support (5) hexagonal fill ( even though it is slow )
def write_file(self): r"""Write file""" logger.info("Writing brep : {cad_file}".format(cad_file=self._filename)) builder = Message.Handle_Message_ProgressIndicator() BRepTools.breptools_Write(self._shape, self._filename, builder) logger.info("Wrote BREP file")
def read_file(self): r"""Read the BREP file and stores the result in a TopoDS_Shape""" shape = TopoDS.TopoDS_Shape() builder = BRep.BRep_Builder() BRepTools.breptools_Read(shape, self._filename, builder) self._shape = shape
from OCC.Display.SimpleGui import * from OCC import BRep from OCC.BRepTools import * from OCC import TopoDS from OCC.Message import Message_PrinterOStream import sys fileName = 'input.brp' if (len(sys.argv) > 1): fileName = sys.argv[1] brep_instance = BRepTools() shape = TopoDS.TopoDS_Shape() builder = BRep.BRep_Builder() printrerStream = Message_PrinterOStream() s = printrerStream.GetStream() brep_instance.Read(shape, str(fileName), builder)