Example #1
0
    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
Example #2
0
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))
Example #3
0
 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)
Example #4
0
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 )
Example #5
0
 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")
Example #6
0
 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
Example #7
0
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)
Example #8
0
 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