コード例 #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
コード例 #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))
コード例 #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)
コード例 #4
0
ファイル: Slicer.py プロジェクト: k-automation/emcfab
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 )
コード例 #5
0
ファイル: brep.py プロジェクト: jf---/aoc-xchange
 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")
コード例 #6
0
ファイル: brep.py プロジェクト: jf---/aoc-xchange
 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
コード例 #7
0
ファイル: brep_reader.py プロジェクト: spechub/Hets
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)
コード例 #8
0
ファイル: brep.py プロジェクト: bmjjr/OCCDataExchange
 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