From: daid303 Date: Mon, 28 Jan 2013 11:14:09 +0000 (+0100) Subject: Fix combined STL save. X-Git-Tag: 13.03~73 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ba7cde8a418d86e5afbcd9da64e4b2d9a4dd1056;p=cura.git Fix combined STL save. --- diff --git a/Cura/gui/projectPlanner.py b/Cura/gui/projectPlanner.py index 77d46374..134123fa 100644 --- a/Cura/gui/projectPlanner.py +++ b/Cura/gui/projectPlanner.py @@ -49,8 +49,8 @@ class ProjectObject(object): self.modelDisplayList = None self.modelDirty = True - self.centerX = -self.getSize()[0]/2 + 5 - self.centerY = -self.getSize()[1]/2 + 5 + self.centerX = self.getSize()[0]/2 + 5 + self.centerY = self.getSize()[1]/2 + 5 self.updateMatrix() @@ -292,10 +292,13 @@ class projectPlanner(wx.Frame): output = mesh.mesh() output._prepareVertexCount(totalCount) for item in self.list: - offset = numpy.array([item.centerX, item.centerY, 0]) - for v in item.mesh.vertexes: - v0 = v * item.scale + offset - output.addVertex(v0[0], v0[1], v0[2]) + vMin = item.getMinimum() + vMax = item.getMaximum() + offset = - vMin - (vMax - vMin) / 2 + offset += numpy.array([item.centerX, item.centerY, 0]) + vertexes = (item.mesh.vertexes * item.matrix).getA() + offset + for v in vertexes: + output.addVertex(v[0], v[1], v[2]) stl.saveAsSTL(output, filename) def OnSaveProject(self, e): @@ -546,7 +549,8 @@ class projectPlanner(wx.Frame): pos = [item.centerX - self.machineSize[0] / 2, item.centerY - self.machineSize[1] / 2] else: pos = [item.centerX, item.centerY] - positionList.append(pos + (item.mesh.matrix * item.scale).reshape((9,)).tolist()) + positionList.append(pos + item.matrix.getA().flatten().tolist()) + print positionList sliceCommand = sliceRun.getSliceCommand(resultFilename, fileList, positionList) else: self._saveCombinedSTL(resultFilename + "_temp_.stl") @@ -751,7 +755,6 @@ class PreviewGLCanvas(openglGui.glGuiPanel): glEnable(GL_LIGHTING) glTranslate(item.centerX, item.centerY, 0) - glPushMatrix() vMin = item.getMinimum() vMax = item.getMaximum() offset = - vMin - (vMax - vMin) / 2 diff --git a/Cura/util/stl.py b/Cura/util/stl.py index 7da475bd..10b61db4 100644 --- a/Cura/util/stl.py +++ b/Cura/util/stl.py @@ -57,9 +57,9 @@ def saveAsSTL(mesh, filename): #Next follow 4 binary bytes containing the amount of faces, and then the face information. f.write(struct.pack("