From: daid303 Date: Tue, 11 Jun 2013 09:16:44 +0000 (+0200) Subject: Save the filename of loaded files so we can use that when saving to SD card. Make... X-Git-Tag: 13.06.2~19 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a0e214bf9e5fcf0a3a294d526ccd449bd8d7bb0a;p=cura.git Save the filename of loaded files so we can use that when saving to SD card. Make the notification window always popup even if it was up already. --- diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 38b283ce..49c0ddd7 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -176,8 +176,7 @@ class SceneView(openglGui.glGuiPanel): dlg.Destroy() else: drive = drives[0] - filename = os.path.basename(profile.getPreference('lastFile')) - filename = filename[0:filename.rfind('.')] + '.gcode' + filename = self._scene._objectList[0].getName() + '.gcode' threading.Thread(target=self._copyFile,args=(self._gcodeFilename, drive[1] + filename, drive[1])).start() else: self.showSaveGCode() @@ -193,7 +192,7 @@ class SceneView(openglGui.glGuiPanel): defPath = profile.getPreference('lastFile') defPath = defPath[0:defPath.rfind('.')] + '.gcode' dlg=wx.FileDialog(self, 'Save toolpath', defPath, style=wx.FD_SAVE) - dlg.SetFilename(os.path.basename(defPath)) + dlg.SetFilename(self._scene._objectList[0].getName()) dlg.SetWildcard('Toolpath (*.gcode)|*.gcode;*.g') if dlg.ShowModal() != wx.ID_OK: dlg.Destroy() diff --git a/Cura/gui/tools/minecraftImport.py b/Cura/gui/tools/minecraftImport.py index 21c8583c..95d0c5e5 100644 --- a/Cura/gui/tools/minecraftImport.py +++ b/Cura/gui/tools/minecraftImport.py @@ -213,7 +213,7 @@ class minecraftImportWindow(wx.Frame): if y == sy - 1 or not self.isSolid[blocks[x, y + 1, z]]: faceCount += 1 - obj = mesh.printableObject() + obj = mesh.printableObject("minecraft") m = obj._addMesh() m._prepareFaceCount(faceCount * 2) for x in xrange(0, sx): diff --git a/Cura/gui/tools/superformula.py b/Cura/gui/tools/superformula.py index eae573d6..12556bde 100644 --- a/Cura/gui/tools/superformula.py +++ b/Cura/gui/tools/superformula.py @@ -56,7 +56,7 @@ class superShape(object): row.append([x,y,z]) - self._obj = mesh.printableObject() + self._obj = mesh.printableObject("super") objMesh = self._obj._addMesh() objMesh._prepareFaceCount(len(points) * (len(points[0]) - 1) * 2) @@ -205,7 +205,7 @@ class superformulaEvolver(wx.Frame): sv = shape._obj._meshList[0].vertexes * scale - obj = mesh.printableObject() + obj = mesh.printableObject("super") m = obj._addMesh() m._prepareFaceCount(shape._obj._meshList[0].vertexCount / 3 + hole._meshList[0].vertexCount / 3) for n in xrange(0, shape._obj._meshList[0].vertexCount): @@ -529,7 +529,7 @@ class superformulaWindow(wx.Frame): def onAdd(self): scale = 1.0/numpy.max(self._shape._obj.getSize()) * 50 - obj = mesh.printableObject() + obj = mesh.printableObject("super") m = obj._addMesh() m._prepareFaceCount(self._shape._obj._meshList[0].vertexCount / 3) m.vertexes = self._shape._obj._meshList[0].vertexes * scale diff --git a/Cura/gui/util/openglGui.py b/Cura/gui/util/openglGui.py index 00863fa3..8a194b55 100644 --- a/Cura/gui/util/openglGui.py +++ b/Cura/gui/util/openglGui.py @@ -704,10 +704,7 @@ class glNotification(glFrame): super(glNotification, self).draw() def message(self, text, ejectCallback = None): - if self._anim is not None: - self._anim = animation(self._base, self._anim.getPosition(), 25, 1) - else: - self._anim = animation(self._base, -20, 25, 1) + self._anim = animation(self._base, -20, 25, 1) self.setHidden(False) self._label.setLabel(text) self._buttonEject.setHidden(ejectCallback is None) diff --git a/Cura/util/mesh.py b/Cura/util/mesh.py index 3262b328..5d58f280 100644 --- a/Cura/util/mesh.py +++ b/Cura/util/mesh.py @@ -8,7 +8,10 @@ import numpy numpy.seterr(all='ignore') class printableObject(object): - def __init__(self): + def __init__(self, name): + self._name = name + if '.' in self._name: + self._name = self._name[0:self._name.rfind('.')] self._meshList = [] self._position = numpy.array([0.0, 0.0]) self._matrix = numpy.matrix([[1,0,0],[0,1,0],[0,0,1]], numpy.float64) @@ -20,7 +23,7 @@ class printableObject(object): self._loadAnim = None def copy(self): - ret = printableObject() + ret = printableObject(self._name) ret._matrix = self._matrix.copy() ret._transformedMin = self._transformedMin.copy() ret._transformedMax = self._transformedMin.copy() @@ -73,6 +76,8 @@ class printableObject(object): self._transformedMax -= self._drawOffset self._transformedMin -= self._drawOffset + def getName(self): + return self._name def getPosition(self): return self._position def setPosition(self, newPos): @@ -305,7 +310,7 @@ class mesh(object): doneSet.add(i) todoList.append(i) - obj = printableObject() + obj = printableObject(self._obj._name) obj._matrix = self._obj._matrix.copy() m = obj._addMesh() m._prepareFaceCount(len(meshFaceList)) diff --git a/Cura/util/meshLoaders/amf.py b/Cura/util/meshLoaders/amf.py index b131eb14..dbc56ebd 100644 --- a/Cura/util/meshLoaders/amf.py +++ b/Cura/util/meshLoaders/amf.py @@ -3,6 +3,7 @@ __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AG import cStringIO as StringIO import zipfile +import os try: from xml.etree import cElementTree as ElementTree except: @@ -40,7 +41,7 @@ def loadScene(filename): ret = [] for amfObj in amf.iter('object'): - obj = mesh.printableObject() + obj = mesh.printableObject(os.path.basename(filename)) for amfMesh in amfObj.iter('mesh'): vertexList = [] for vertices in amfMesh.iter('vertices'): diff --git a/Cura/util/meshLoaders/dae.py b/Cura/util/meshLoaders/dae.py index e448fdeb..6a01efa4 100644 --- a/Cura/util/meshLoaders/dae.py +++ b/Cura/util/meshLoaders/dae.py @@ -2,6 +2,7 @@ from __future__ import absolute_import __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License" from xml.parsers.expat import ParserCreate +import os from Cura.util import mesh @@ -11,7 +12,7 @@ def loadScene(filename): class daeLoader(object): def __init__(self, filename): - self.obj = mesh.printableObject() + self.obj = mesh.printableObject(os.path.basename(filename)) self.mesh = self.obj._addMesh() r = ParserCreate() diff --git a/Cura/util/meshLoaders/obj.py b/Cura/util/meshLoaders/obj.py index 6ce4f319..d872583a 100644 --- a/Cura/util/meshLoaders/obj.py +++ b/Cura/util/meshLoaders/obj.py @@ -1,10 +1,11 @@ from __future__ import absolute_import __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License" +import os from Cura.util import mesh def loadScene(filename): - obj = mesh.printableObject() + obj = mesh.printableObject(os.path.basename(filename)) m = obj._addMesh() vertexList = [] diff --git a/Cura/util/meshLoaders/stl.py b/Cura/util/meshLoaders/stl.py index 4ebfcf27..199775c8 100644 --- a/Cura/util/meshLoaders/stl.py +++ b/Cura/util/meshLoaders/stl.py @@ -37,7 +37,7 @@ def _loadBinary(m, f): m._addFace(data[3], data[4], data[5], data[6], data[7], data[8], data[9], data[10], data[11]) def loadScene(filename): - obj = mesh.printableObject() + obj = mesh.printableObject(os.path.basename(filename)) m = obj._addMesh() f = open(filename, "rb")