From 79300f3357181315188f2c376249b5d0cf7cbd93 Mon Sep 17 00:00:00 2001 From: Daid Date: Thu, 21 Jun 2012 15:04:42 +0200 Subject: [PATCH] Add option to save the collection of STL files as a single STL file in the project planner. --- Cura/gui/projectPlanner.py | 14 ++++++++++++++ Cura/images/save-combination.png | Bin 0 -> 865 bytes 2 files changed, 14 insertions(+) create mode 100644 Cura/images/save-combination.png diff --git a/Cura/gui/projectPlanner.py b/Cura/gui/projectPlanner.py index 8096129c..5ab1250c 100644 --- a/Cura/gui/projectPlanner.py +++ b/Cura/gui/projectPlanner.py @@ -25,6 +25,7 @@ from gui import printWindow from util import profile from util import util3d from util import stl +from util import mesh from util import sliceRun from util import gcodeInterpreter from util import exporer @@ -160,6 +161,7 @@ class projectPlanner(wx.Frame): toolbarUtil.NormalButton(self.toolbar, self.OnPreferences, 'preferences.png', 'Project planner preferences') self.toolbar.AddSeparator() toolbarUtil.NormalButton(self.toolbar, self.OnCutMesh, 'cut-mesh.png', 'Cut a plate STL into multiple STL files, and add those files to the project.\nNote: Splitting up plates sometimes takes a few minutes.') + toolbarUtil.NormalButton(self.toolbar, self.OnSaveCombinedSTL, 'save-combination.png', 'Save all the combined STL files into a single STL file as a plate.') self.toolbar.AddSeparator() toolbarUtil.NormalButton(self.toolbar, self.OnQuit, 'exit.png', 'Close project planner') @@ -271,6 +273,18 @@ class projectPlanner(wx.Frame): self.preview.Refresh() dlg.Destroy() + def OnSaveCombinedSTL(self, e): + dlg=wx.FileDialog(self, "Save as STL", os.path.split(profile.getPreference('lastFile'))[0], style=wx.FD_SAVE) + dlg.SetWildcard("STL files (*.stl)|*.stl;*.STL") + if dlg.ShowModal() == wx.ID_OK: + output = mesh.mesh() + for item in self.list: + offset = util3d.Vector3(item.centerX, item.centerY, 0) + for f in item.faces: + output.addFace(f.v[0] * item.scale + offset, f.v[1] * item.scale + offset, f.v[2] * item.scale + offset) + stl.saveAsSTL(output, dlg.GetPath()) + dlg.Destroy() + def OnSaveProject(self, e): dlg=wx.FileDialog(self, "Save project file", os.path.split(profile.getPreference('lastFile'))[0], style=wx.FD_SAVE) dlg.SetWildcard("Project files (*.curaproject)|*.curaproject") diff --git a/Cura/images/save-combination.png b/Cura/images/save-combination.png new file mode 100644 index 0000000000000000000000000000000000000000..a633824b5a1522aab00bd4eb5aa25c84bcd879de GIT binary patch literal 865 zcmV-n1D^beP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;*GWV{RCwBA`2YVu12Gr~m~U+jS#Wb(;E!@qxQ4DTMEV-S;8X5i!JVfgs+ z2E*ekhYkY-5DQ4*zkmN2IM_KDIM|pO7Vo));tEf(zYKyh)(k%$ZD#n-c%OlnM~mUl zt33>iKYuZ>a*Egj1Q6JOzd!^2{Q1Mc1axwYvkus1m`h%t-N?Ye!ot8IZpgsO@P*;? z!#NC}zkFw4V^w7M^ZgeCKmfsA@b~XuhR;9&MkL!ohWz^VpW(~%D-1jWJPgddVhlfC zFflN)%QAfXz`^kC?c)mo0R%Ass2SvfFF*rU?l_L(h5!F87)0(~VK9~c&Y-NO!0?Yj zkKyi(XADbsUuBrN;jAG*0HL_x6VPd{)&|JB8BU)(#_*R}iQy%eJj0v)(-@e(e_&`@ z{(|AvhhJbN009Iw;4i~ppbKgX(iw08P;7-eu`n<*voP=p3Nw8A@e?c#5I~SX{0j+0 zTtHd!4?}3MJ%gc{8#oA+A=|G%V!1X!S@qn&}1lN0QGP$06u zU&SCKrh+pa00a;?t^Eet{`1!_Furx`7DHxQIzxP19K+3