From 0dacfcdf8d60a39f680f92aaa38ab9e78738acba Mon Sep 17 00:00:00 2001 From: Salandora Date: Fri, 9 Oct 2015 21:50:34 +0200 Subject: [PATCH] Fixed Slicing. Normal behaviour is sliced gcode will be placed in same folder as the stl. --- src/octoprint/server/api/files.py | 7 +++++++ .../static/js/app/viewmodels/slicing.js | 18 +++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/octoprint/server/api/files.py b/src/octoprint/server/api/files.py index d98c24de..3723c707 100644 --- a/src/octoprint/server/api/files.py +++ b/src/octoprint/server/api/files.py @@ -443,6 +443,13 @@ def gcodeFileCommand(filename, target): name, _ = os.path.splitext(filename) gcode_name = name + ".gco" + if "path" in data and data["path"]: + gcode_name = fileManager.join_path(target, data["path"], gcode_name) + else: + path, _ = fileManager.split_path(target, filename) + if path: + gcode_name = fileManager.join_path(target, path, gcode_name) + # prohibit overwriting the file that is currently being printed currentOrigin, currentFilename = _getCurrentFile() if currentFilename == gcode_name and currentOrigin == target and (printer.is_printing() or printer.is_paused()): diff --git a/src/octoprint/static/js/app/viewmodels/slicing.js b/src/octoprint/static/js/app/viewmodels/slicing.js index ffbb21f9..222d243f 100644 --- a/src/octoprint/static/js/app/viewmodels/slicing.js +++ b/src/octoprint/static/js/app/viewmodels/slicing.js @@ -7,6 +7,7 @@ $(function() { self.target = undefined; self.file = undefined; + self.path = undefined; self.data = undefined; self.defaultSlicer = undefined; @@ -34,16 +35,23 @@ $(function() { ]; self.afterSlicing = ko.observable("none"); - self.show = function(target, file, force) { + self.show = function(target, file, force, path) { if (!self.enableSlicingDialog() && !force) { return; } + var filename = file.substr(0, file.lastIndexOf(".")); + if (filename.lastIndexOf("/") != 0) { + path = path || filename.substr(0, filename.lastIndexOf("/")); + filename = filename.substr(filename.lastIndexOf("/") + 1); + } + self.requestData(); self.target = target; self.file = file; - self.title(_.sprintf(gettext("Slicing %(filename)s"), {filename: self.file})); - self.gcodeFilename(self.file.substr(0, self.file.lastIndexOf("."))); + self.path = path; + self.title(_.sprintf(gettext("Slicing %(filename)s"), {filename: filename})); + self.gcodeFilename(filename); self.printerProfile(self.printerProfiles.currentProfile()); self.afterSlicing("none"); $("#slicing_configuration_dialog").modal("show"); @@ -149,6 +157,10 @@ $(function() { gcode: gcodeFilename }; + if (self.path != undefined) { + data["path"] = self.path; + } + if (self.afterSlicing() == "print") { data["print"] = true; } else if (self.afterSlicing() == "select") {