예제 #1
0
 def SplitStlAtZ(self):
     p = self.PickPosition('Pick point at z height')
     if p == None:
         return
     
     temp_file = wx.StandardPaths.Get().GetTempDir() + '/split.stl'
     self.object.WriteSTL(0.001, temp_file)
     
     stl = geom.Stl(temp_file)
             
     new_stl = stl.SplitAtZ(p.z)
     if new_stl != None:
         stl.WriteStl(temp_file)
         cad.Import(temp_file)
         new_stl.WriteStl(temp_file)
         cad.Import(temp_file)
예제 #2
0
 def OnPasteInto(self, object):
     s = self.GetClipboardText()
     if s != None:
         temp_file = wx.StandardPaths.Get().GetTempDir() + '/temp_Heeks_clipboard_file.xml'
         f = open(temp_file, 'w')
         f.write(s)
         f.close()
         cad.Import(temp_file, object)
예제 #3
0
 def OnPaste(self, e):
     s = self.GetClipboardText()
     if s != None:
         temp_file = wx.StandardPaths.Get().GetTempDir() + '/temp_Heeks_clipboard_file.xml'
         f = open(temp_file, 'w')
         f.write(s)
         f.close()
         cad.ClearSelection()
         cad.SetMarkNewlyAddedObjects(True)
         cad.Import(temp_file)
         cad.SetMarkNewlyAddedObjects(False)
예제 #4
0
 def OnImport(self, e):
     config = HeeksConfig()
     default_directory = config.Read('ImportDirectory', self.GetDefaultDir())
     
     dialog = wx.FileDialog(self.frame, 'Import File', default_directory, '', self.GetWildcardString(True))
     dialog.CenterOnParent()
     
     if dialog.ShowModal() == wx.ID_OK:
         filepath = dialog.GetPath()
         res = cad.Import(filepath)
         if res:
             self.DoFileOpenViewMag()
             if self.filepath == None:
                 dot = filepath.rfind('.')
                 if dot != -1:
                     self.filepath = filepath[:dot+1] + 'heeks'
             self.frame.SetFrameTitle()
             config.Write('ImportDirectory', dialog.GetDirectory())
             cad.Repaint()
예제 #5
0
파일: wing.py 프로젝트: danheeks/IbusOrni
    def DrawSection(self, span):
        if drawing_sketches:
            global stl_to_add_to
            stl_to_add_to = geom.Stl()

        xmax = self.curves[1].LastVertex().p.x
        if xmax < 0.001: return
        fraction0 = span.p.x / xmax
        fraction1 = span.v.p.x / xmax
        pts0 = self.GetOrderedSectionPoints(fraction0)
        if pts0 == None: return
        pts1 = self.GetOrderedSectionPoints(fraction1)
        if pts1 == None: return

        prev_p0 = None
        prev_p1 = None

        if drawing_sketches:
            mirror = False
        else:
            mirror = self.values['mirror']

        for p0, p1 in zip(pts0, pts1):
            DrawTrianglesBetweenPoints(prev_p0, prev_p1, p0, p1, mirror)
            prev_p0 = p0
            prev_p1 = p1

        if drawing_sketches:
            if section_index != 7:
                return
            surface = stl_to_add_to.GetFlattenedSurface()
            outline = surface.Shadow(geom.Matrix(), True)
            outline.Offset(-2.0)
            curves = surface.GetTrianglesAsCurveList()
            area_fp = tempfile.gettempdir() + '/area.dxf'
            for curve in curves:
                outline.Append(curve)
            outline.WriteDxf(area_fp)
            cad.Import(area_fp)
예제 #6
0
    def DrawSection(self, span):
        if drawing_mode == DRAWING_MODE_SKETCHES:
            global stl_to_add_to
            stl_to_add_to = geom.Stl()

        perim = self.curves[1].Perim()
        if perim < 0.001: return
        fraction0 = self.curves[1].PointToPerim(span.p) / perim
        fraction1 = self.curves[1].PointToPerim(span.v.p) / perim
        pts0 = self.GetOrderedSectionPoints(fraction0)
        if pts0 == None: return
        pts1 = self.GetOrderedSectionPoints(fraction1)
        if pts1 == None: return

        prev_p0 = None
        prev_p1 = None

        if drawing_mode == DRAWING_MODE_SKETCHES:
            mirror = False
        else:
            mirror = self.mirror

        for p0, p1 in zip(pts0, pts1):
            self.DrawTrianglesBetweenPoints(prev_p0, prev_p1, p0, p1, mirror)
            prev_p0 = p0
            prev_p1 = p1

        if drawing_mode == DRAWING_MODE_SKETCHES:
            if section_index != 7:
                return
            surface = stl_to_add_to.GetFlattenedSurface()
            outline = surface.Shadow(geom.Matrix(), True)
            outline.Offset(-2.0)
            curves = surface.GetTrianglesAsCurveList()
            area_fp = tempfile.gettempdir() + '/area.dxf'
            for curve in curves:
                outline.Append(curve)
            outline.WriteDxf(area_fp)
            cad.Import(area_fp)
예제 #7
0
파일: test.py 프로젝트: danheeks/PyCAD
import sys
from SolidApp import SolidApp
#from App import App

app = SolidApp()

if len(sys.argv) > 1:
    import cad
    cad.Import(sys.argv[1])

app.MainLoop()