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