chiark / gitweb /
Fix combined STL save.
authordaid303 <daid303@gmail.com>
Mon, 28 Jan 2013 11:14:09 +0000 (12:14 +0100)
committerdaid303 <daid303@gmail.com>
Mon, 28 Jan 2013 11:14:09 +0000 (12:14 +0100)
Cura/gui/projectPlanner.py
Cura/util/stl.py

index 77d46374bd43183098551166c5746ae1b9193f04..134123fa65d8e3dab3877b41f5057cdcd3590427 100644 (file)
@@ -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
index 7da475bd90db6d17425170b3623df2998f2974a4..10b61db42659216d7356fe5ae8ea0ed0254bc8dc 100644 (file)
@@ -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("<I", int(mesh.vertexCount / 3)))
        for idx in xrange(0, mesh.vertexCount, 3):
-               v1 = mesh.origonalVertexes[idx]
-               v2 = mesh.origonalVertexes[idx+1]
-               v3 = mesh.origonalVertexes[idx+2]
+               v1 = mesh.vertexes[idx]
+               v2 = mesh.vertexes[idx+1]
+               v3 = mesh.vertexes[idx+2]
                f.write(struct.pack("<fff", 0.0, 0.0, 0.0))
                f.write(struct.pack("<fff", v1[0], v1[1], v1[2]))
                f.write(struct.pack("<fff", v2[0], v2[1], v2[2]))