From 7adc1f4870fe65bc156b453ed64a1a23d09d2b0b Mon Sep 17 00:00:00 2001 From: Victor Larchenko Date: Mon, 14 Nov 2016 14:20:39 +0600 Subject: [PATCH 1/4] T576: Added aliases --- plugins/CuraEngineBackend/StartSliceJob.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index ade86e231d..bbf55a4803 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -251,6 +251,9 @@ class StartSliceJob(Job): settings["material_bed_temp_prepend"] = "{material_bed_temperature}" not in start_gcode #Pre-compute material material_bed_temp_prepend and material_print_temp_prepend settings["material_print_temp_prepend"] = "{material_print_temperature}" not in start_gcode + settings["print_bed_temperature"] = settings["material_bed_temperature"] + settings["print_temperature"] = settings["material_print_temperature"] + for key, value in settings.items(): #Add all submessages for each individual setting. setting_message = self._slice_message.getMessage("global_settings").addRepeatedMessage("settings") setting_message.name = key @@ -260,6 +263,8 @@ class StartSliceJob(Job): setting_message.value = str(value).encode("utf-8") Job.yieldThread() + + ## Sends for some settings which extruder they should fallback to if not # set. # From dbb971fef5f1169e8fbfe060602b70c871d982ca Mon Sep 17 00:00:00 2001 From: Victor Larchenko Date: Mon, 14 Nov 2016 14:51:25 +0600 Subject: [PATCH 2/4] T576: Added date and time keywords --- plugins/CuraEngineBackend/StartSliceJob.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index bbf55a4803..4b0ec77ca0 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -4,6 +4,7 @@ import numpy from string import Formatter from enum import IntEnum +import time from UM.Job import Job from UM.Application import Application @@ -254,6 +255,16 @@ class StartSliceJob(Job): settings["print_bed_temperature"] = settings["material_bed_temperature"] settings["print_temperature"] = settings["material_print_temperature"] + settings["time"] = time.strftime('%H:%M:%S') + settings["date"] = time.strftime('%d-%m-%Y') + settings["day"] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][int(time.strftime('%w'))] + + settings["print_time"] = Application.getInstance().getPrintInformation().currentPrintTime + settings["filament_amount"] = Application.getInstance().getPrintInformation().materialLengths + settings["filament_weight"] = Application.getInstance().getPrintInformation().materialWeights + settings["filament_cost"] = None + settings["profile_string"] = None + for key, value in settings.items(): #Add all submessages for each individual setting. setting_message = self._slice_message.getMessage("global_settings").addRepeatedMessage("settings") setting_message.name = key @@ -263,8 +274,6 @@ class StartSliceJob(Job): setting_message.value = str(value).encode("utf-8") Job.yieldThread() - - ## Sends for some settings which extruder they should fallback to if not # set. # From 67aae55640052e669cd3288915ad58d64bbc759e Mon Sep 17 00:00:00 2001 From: Victor Larchenko Date: Wed, 23 Nov 2016 12:38:02 +0600 Subject: [PATCH 3/4] T576: Added print statistics --- plugins/CuraEngineBackend/CuraEngineBackend.py | 10 +++++++++- plugins/CuraEngineBackend/StartSliceJob.py | 6 ------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index cf53475fb4..0e7f938804 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -13,7 +13,7 @@ from UM.Resources import Resources from UM.Settings.Validator import ValidatorState #To find if a setting is in an error state. We can't slice then. from UM.Platform import Platform from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator - +from UM.Qt.Duration import DurationFormat import cura.Settings @@ -386,6 +386,14 @@ class CuraEngineBackend(Backend): self.backendStateChange.emit(BackendState.Done) self.processingProgress.emit(1.0) + for line in self._scene.gcode_list: + replaced = line.replace("{print_time}", str(Application.getInstance().getPrintInformation().currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601))) + replaced = replaced.replace("{filament_amount}", str(Application.getInstance().getPrintInformation().materialLengths)) + replaced = replaced.replace("{filament_weight}", str(Application.getInstance().getPrintInformation().materialWeights)) + replaced = replaced.replace("{filament_cost}", "Not yet implemented") + + self._scene.gcode_list[self._scene.gcode_list.index(line)] = replaced + self._slicing = False Logger.log("d", "Slicing took %s seconds", time() - self._slice_start_time ) if self._layer_view_active and (self._process_layers_job is None or not self._process_layers_job.isRunning()): diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 4b0ec77ca0..ea5bb1f57c 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -259,12 +259,6 @@ class StartSliceJob(Job): settings["date"] = time.strftime('%d-%m-%Y') settings["day"] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][int(time.strftime('%w'))] - settings["print_time"] = Application.getInstance().getPrintInformation().currentPrintTime - settings["filament_amount"] = Application.getInstance().getPrintInformation().materialLengths - settings["filament_weight"] = Application.getInstance().getPrintInformation().materialWeights - settings["filament_cost"] = None - settings["profile_string"] = None - for key, value in settings.items(): #Add all submessages for each individual setting. setting_message = self._slice_message.getMessage("global_settings").addRepeatedMessage("settings") setting_message.name = key From 7c3728632ff4d237af32ba3d945e06d437954a97 Mon Sep 17 00:00:00 2001 From: Victor Larchenko Date: Thu, 24 Nov 2016 14:03:53 +0600 Subject: [PATCH 4/4] T576: Added {jobname} keyword --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 0e7f938804..91bd13c9b6 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -390,7 +390,9 @@ class CuraEngineBackend(Backend): replaced = line.replace("{print_time}", str(Application.getInstance().getPrintInformation().currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601))) replaced = replaced.replace("{filament_amount}", str(Application.getInstance().getPrintInformation().materialLengths)) replaced = replaced.replace("{filament_weight}", str(Application.getInstance().getPrintInformation().materialWeights)) + # TODO: calculate filament cost replaced = replaced.replace("{filament_cost}", "Not yet implemented") + replaced = replaced.replace("{jobname}", str(Application.getInstance().getPrintInformation().jobName)) self._scene.gcode_list[self._scene.gcode_list.index(line)] = replaced