chiark / gitweb /
Merge tag '15.01-RC8' into upstream
[cura.git] / Cura / gui / sceneView.py
index 3d5bfa280f18f7cf16923b36706c6fd868f7debe..ba660b0c493e6d679e8893d85a185d3c59f0567e 100644 (file)
@@ -52,6 +52,7 @@ class SceneView(openglGui.glGuiPanel):
                self._mouse3Dpos = numpy.array([0,0,0], numpy.float32)
                self._animView = None
                self._animZoom = None
+               self._lastObjectSink = None
                self._platformMesh = {}
                self.glReleaseList = []
                self._platformTexture = None
@@ -281,6 +282,19 @@ class SceneView(openglGui.glGuiPanel):
                                        self.showSaveGCode()
                                else:
                                        filename = self._scene._objectList[0].getName() + profile.getGCodeExtension()
+
+                                       #check if the file is part of the root folder.
+                                       # If so, create folders on sd card to get the same folder hierarchy.
+                                       repDir = profile.getPreference("sdcard_rootfolder")
+                                       if os.path.exists(repDir) and os.path.isdir(repDir):
+                                               repDir = os.path.abspath(repDir)
+                                               originFilename = os.path.abspath( self._scene._objectList[0].getOriginFilename() )
+                                               if os.path.dirname(originFilename).startswith(repDir):
+                                                       filename = os.path.splitext(originFilename[len(repDir):])[0] + profile.getGCodeExtension()
+                                                       sdPath = os.path.dirname(os.path.join( drive[1], filename))
+                                                       if not os.path.exists(sdPath):
+                                                               print "Creating replication directory:", sdPath
+                                                               os.makedirs(sdPath)
                                        threading.Thread(target=self._saveGCode,args=(drive[1] + filename, drive[1])).start()
                        elif connectionGroup is not None:
                                connections = connectionGroup.getAvailableConnections()
@@ -576,6 +590,12 @@ class SceneView(openglGui.glGuiPanel):
                self.sceneUpdated()
 
        def sceneUpdated(self):
+
+               objectSink = profile.getProfileSettingFloat("object_sink")
+               if self._lastObjectSink != objectSink:
+                       self._lastObjectSink = objectSink
+                       self._scene.updateHeadSize()
+
                wx.CallAfter(self._sceneUpdateTimer.Start, 500, True)
                self._engine.abortEngine()
                self._scene.updateSizeOffsets()
@@ -1290,9 +1310,9 @@ class SceneView(openglGui.glGuiPanel):
                        texture_scale = 1.0
                        if machine_type == 'ultimaker2' or machine_type == 'ultimaker2extended':
                                filename = resources.getPathForMesh('ultimaker2_platform.stl')
-                               offset = [0,-37,145]
+                               offset = [-9,-37,145]
                                texture_name = 'Ultimaker2backplate.png'
-                               texture_offset = [0,150,-5]
+                               texture_offset = [9,150,-5]
                        elif machine_type == 'ultimaker2go':
                                filename = resources.getPathForMesh('ultimaker2go_platform.stl')
                                offset = [0,-42,145]