chiark / gitweb /
Draw the object sink. Fix the lay-flat function.
authordaid303 <daid303@gmail.com>
Thu, 16 May 2013 13:31:26 +0000 (15:31 +0200)
committerdaid303 <daid303@gmail.com>
Thu, 16 May 2013 13:31:26 +0000 (15:31 +0200)
Cura/gui/sceneView.py
Cura/util/mesh.py
Cura/util/sliceEngine.py

index 641187b67cc0c40f821db0aab906b54e2eb06d47..e0f6357e15c584a87652b3bb1df4b60a89f788e4 100644 (file)
@@ -948,7 +948,7 @@ void main(void)
                        if self._selectedObj is not None and len(self._scene.objects()) > 1:
                                size = self._selectedObj.getSize()[0:2] / 2 + self._scene.getObjectExtend()
                                glPushMatrix()
-                               glTranslatef(self._selectedObj.getPosition()[0], self._selectedObj.getPosition()[1], 0.0)
+                               glTranslatef(self._selectedObj.getPosition()[0], self._selectedObj.getPosition()[1], 0)
                                glEnable(GL_BLEND)
                                glEnable(GL_CULL_FACE)
                                glColor4f(0,0,0,0.12)
@@ -987,9 +987,12 @@ void main(void)
                                self.tool.OnDraw()
                                glPopMatrix()
 
-       def _renderObject(self, obj, brightness = False):
+       def _renderObject(self, obj, brightness = False, addSink = True):
                glPushMatrix()
-               glTranslate(obj.getPosition()[0], obj.getPosition()[1], obj.getSize()[2] / 2)
+               if addSink:
+                       glTranslate(obj.getPosition()[0], obj.getPosition()[1], obj.getSize()[2] / 2 - profile.getProfileSettingFloat('object_sink'))
+               else:
+                       glTranslate(obj.getPosition()[0], obj.getPosition()[1], obj.getSize()[2] / 2)
 
                if self.tempMatrix is not None and obj == self._selectedObj:
                        tempMatrix = opengl.convert3x3MatrixTo4x4(self.tempMatrix)
@@ -1018,7 +1021,7 @@ void main(void)
                if profile.getPreference('machine_type') == 'ultimaker':
                        glColor4f(1,1,1,0.5)
                        self._objectShader.bind()
-                       self._renderObject(self._platformMesh)
+                       self._renderObject(self._platformMesh, False, False)
                        self._objectShader.unbind()
 
                size = [profile.getPreferenceFloat('machine_width'), profile.getPreferenceFloat('machine_depth'), profile.getPreferenceFloat('machine_height')]
@@ -1134,7 +1137,7 @@ void main(void)
                        return [0.0, 0.0, 0.0]
                pos = self._selectedObj.getPosition()
                size = self._selectedObj.getSize()
-               return [pos[0], pos[1], size[2]/2]
+               return [pos[0], pos[1], size[2]/2 - profile.getProfileSettingFloat('object_sink')]
 
        def getObjectBoundaryCircle(self):
                if self._selectedObj is None:
index a5fd0f039bfbd0d5a4b5e44ae2b1c903bb98d8d5..4a8b412c618827c1602e2476341e814593d9fce9 100644 (file)
@@ -139,7 +139,7 @@ class printableObject(object):
                self.processMatrix()
 
        def layFlat(self):
-               transformedVertexes = self.getTransformedVertexes()
+               transformedVertexes = self._meshList[0].getTransformedVertexes()
                minZvertex = transformedVertexes[transformedVertexes.argmin(0)[2]]
                dotMin = 1.0
                dotV = None
@@ -160,7 +160,7 @@ class printableObject(object):
                self._matrix *= numpy.matrix([[math.cos(rad), 0, math.sin(rad)], [0,1,0], [-math.sin(rad), 0, math.cos(rad)]], numpy.float64)
 
 
-               transformedVertexes = self.getTransformedVertexes()
+               transformedVertexes = self._meshList[0].getTransformedVertexes()
                minZvertex = transformedVertexes[transformedVertexes.argmin(0)[2]]
                dotMin = 1.0
                dotV = None
index 13d5536efdb1c1798550e5d829ef6e315ec31ace..717ae80bf2c743b075b9b45d0b65aad95ff281c7 100644 (file)
@@ -82,10 +82,14 @@ class Slicer(object):
                return None
 
        def getPrintTime(self):
-               return '%02d:%02d' % (int(self._printTimeSeconds / 60 / 60), int(self._printTimeSeconds / 60) % 60)
+               if int(self._printTimeSeconds / 60 / 60) < 1:
+                       return '%d minutes' % (int(self._printTimeSeconds / 60) % 60)
+               if int(self._printTimeSeconds / 60 / 60) == 1:
+                       return '%d hour %d minutes' % (int(self._printTimeSeconds / 60 / 60), int(self._printTimeSeconds / 60) % 60)
+               return '%d hours %d minutes' % (int(self._printTimeSeconds / 60 / 60), int(self._printTimeSeconds / 60) % 60)
 
        def getFilamentAmount(self):
-               return '%0.2fm %0.0fgram' % (float(self._filamentMM) / 1000.0, self.getFilamentWeight() * 1000.0)
+               return '%0.2f meter %0.0f gram' % (float(self._filamentMM) / 1000.0, self.getFilamentWeight() * 1000.0)
 
        def runSlicer(self, scene):
                self.abortSlicer()