From f11869034b24f506093503e04429bc2848e962f4 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 16 Aug 2021 14:28:40 +0200 Subject: [PATCH 1/7] Add {material_type} and {material_name} as replacement patterns --- plugins/CuraEngineBackend/StartSliceJob.py | 4 +++- resources/definitions/fdmprinter.def.json | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 453907ffc0..8729bdf7be 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -411,8 +411,10 @@ class StartSliceJob(Job): extruder_nr = stack.getProperty("extruder_nr", "value") settings = self._all_extruders_settings[str(extruder_nr)].copy() - # Also send the material GUID. This is a setting in fdmprinter, but we have no interface for it. + # Also send the material GUID, type and name. These are settings in fdmprinter, but we have no interface for it. settings["material_guid"] = stack.material.getMetaDataEntry("GUID", "") + settings["material_type"] = stack.material.getMetaDataEntry("material", "") + settings["material_name"] = stack.material.getMetaDataEntry("name", "") # Replace the setting tokens in start and end g-code. extruder_nr = stack.getProperty("extruder_nr", "value") diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index a38cfc8852..dab3260388 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -79,6 +79,22 @@ "type": "str", "enabled": false }, + "material_type": + { + "label": "Material Type", + "description": "Type of material. This is set automatically.", + "default_value": "", + "type": "str", + "enabled": false + }, + "material_name": + { + "label": "Material Name", + "description": "Name of the material. This is set automatically.", + "default_value": "", + "type": "str", + "enabled": false + }, "material_diameter": { "label": "Diameter", From 2238234741769bcb8c967741e45d844ead1f70a4 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 24 Aug 2021 09:57:30 +0200 Subject: [PATCH 2/7] Add id & brand and don't send material properties to CuraEngine --- plugins/CuraEngineBackend/StartSliceJob.py | 17 ++++++++++++----- resources/definitions/fdmprinter.def.json | 16 ---------------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 8729bdf7be..d186a1bfd9 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -353,10 +353,19 @@ class StartSliceJob(Job): result[key] = stack.getProperty(key, "value") Job.yieldThread() - result["print_bed_temperature"] = result["material_bed_temperature"] # Renamed settings. + # Material identification in addition to non-human-readable GUID + result["material_id"] = stack.material.getMetaDataEntry("base_file", "") + result["material_type"] = stack.material.getMetaDataEntry("material", "") + result["material_name"] = stack.material.getMetaDataEntry("name", "") + result["material_brand"] = stack.material.getMetaDataEntry("brand", "") + + # Renamed settings. + result["print_bed_temperature"] = result["material_bed_temperature"] result["print_temperature"] = result["material_print_temperature"] result["travel_speed"] = result["speed_travel"] - result["time"] = time.strftime("%H:%M:%S") #Some extra settings. + + #Some extra settings. + result["time"] = time.strftime("%H:%M:%S") result["date"] = time.strftime("%d-%m-%Y") result["day"] = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][int(time.strftime("%w"))] result["initial_extruder_nr"] = CuraApplication.getInstance().getExtruderManager().getInitialExtruderNr() @@ -411,10 +420,8 @@ class StartSliceJob(Job): extruder_nr = stack.getProperty("extruder_nr", "value") settings = self._all_extruders_settings[str(extruder_nr)].copy() - # Also send the material GUID, type and name. These are settings in fdmprinter, but we have no interface for it. + # Also send the material GUID. This is a setting in fdmprinter, but we have no interface for it. settings["material_guid"] = stack.material.getMetaDataEntry("GUID", "") - settings["material_type"] = stack.material.getMetaDataEntry("material", "") - settings["material_name"] = stack.material.getMetaDataEntry("name", "") # Replace the setting tokens in start and end g-code. extruder_nr = stack.getProperty("extruder_nr", "value") diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index dab3260388..a38cfc8852 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -79,22 +79,6 @@ "type": "str", "enabled": false }, - "material_type": - { - "label": "Material Type", - "description": "Type of material. This is set automatically.", - "default_value": "", - "type": "str", - "enabled": false - }, - "material_name": - { - "label": "Material Name", - "description": "Name of the material. This is set automatically.", - "default_value": "", - "type": "str", - "enabled": false - }, "material_diameter": { "label": "Diameter", From 0bcd5eba487698a373f74e65f8b8dec935e1832c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 24 Sep 2021 13:09:37 +0200 Subject: [PATCH 3/7] Add print_temperature to print temperature settings This way it is recognised as a command to set the printing temperature, and will prevent Cura from putting its own temperature commands in. Fixes issue reported here: https://www.reddit.com/r/Cura/comments/pu98kc/stop_initial_hotend_heatup/ --- plugins/CuraEngineBackend/StartSliceJob.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index de3b375e28..dfe478cb2b 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Ultimaker B.V. +# Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import numpy @@ -455,9 +455,9 @@ class StartSliceJob(Job): bed_temperature_settings = ["material_bed_temperature", "material_bed_temperature_layer_0"] pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(bed_temperature_settings) # match {setting} as well as {setting, extruder_nr} settings["material_bed_temp_prepend"] = re.search(pattern, start_gcode) == None - print_temperature_settings = ["material_print_temperature", "material_print_temperature_layer_0", "default_material_print_temperature", "material_initial_print_temperature", "material_final_print_temperature", "material_standby_temperature"] + print_temperature_settings = ["material_print_temperature", "material_print_temperature_layer_0", "default_material_print_temperature", "material_initial_print_temperature", "material_final_print_temperature", "material_standby_temperature", "print_temperature"] pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(print_temperature_settings) # match {setting} as well as {setting, extruder_nr} - settings["material_print_temp_prepend"] = re.search(pattern, start_gcode) == None + settings["material_print_temp_prepend"] = re.search(pattern, start_gcode) is None # Replace the setting tokens in start and end g-code. # Use values from the first used extruder by default so we get the expected temperatures From 026c4062ce2eed824d9c8220cd5ba6b5a5789ee5 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 24 Sep 2021 14:08:55 +0200 Subject: [PATCH 4/7] Add logging for when the user encounters errors in setting values We want to be able to see this from the log file, to help debug issues. Done to help with cases like #10475. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 74f564c825..8636c465c0 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -428,6 +428,7 @@ class CuraEngineBackend(QObject, Backend): "Unable to slice with the current settings. The following settings have errors: {0}").format(", ".join(error_labels)), title = catalog.i18nc("@info:title", "Unable to slice"), message_type = Message.MessageType.WARNING) + Logger.warning(f"Unable to slice with the current settings. The following settings have errors: {', '.join(error_labels)}") self._error_message.show() self.setState(BackendState.Error) self.backendError.emit(job) @@ -454,6 +455,7 @@ class CuraEngineBackend(QObject, Backend): "Unable to slice due to some per-model settings. The following settings have errors on one or more models: {error_labels}").format(error_labels = ", ".join(errors.values())), title = catalog.i18nc("@info:title", "Unable to slice"), message_type = Message.MessageType.WARNING) + Logger.warning(f"Unable to slice due to per-object settings. The following settings have errors on one or more models: {', '.join(errors.values())}") self._error_message.show() self.setState(BackendState.Error) self.backendError.emit(job) From 413913a5a85773c90e333bce8aa2884ffaaf605d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 24 Sep 2021 15:00:03 +0200 Subject: [PATCH 5/7] Modernise logging Hopefully this prevents issues like Sentry issue CURA-2WB. --- plugins/Toolbox/src/Toolbox.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index b91b580779..2c06c87047 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Ultimaker B.V. +# Copyright (c) 2021 Ultimaker B.V. # Toolbox is released under the terms of the LGPLv3 or higher. import json @@ -542,7 +542,7 @@ class Toolbox(QObject, Extension): # Make API Calls # -------------------------------------------------------------------------- def _makeRequestByType(self, request_type: str) -> None: - Logger.log("d", "Requesting [%s] metadata from server.", request_type) + Logger.debug(f"Requesting {request_type} metadata from server.") url = self._request_urls[request_type] callback = lambda r, rt = request_type: self._onDataRequestFinished(rt, r) @@ -554,7 +554,7 @@ class Toolbox(QObject, Extension): @pyqtSlot(str) def startDownload(self, url: str) -> None: - Logger.log("i", "Attempting to download & install package from %s.", url) + Logger.info(f"Attempting to download & install package from {url}.") callback = lambda r: self._onDownloadFinished(r) error_callback = lambda r, e: self._onDownloadFailed(r, e) @@ -572,7 +572,7 @@ class Toolbox(QObject, Extension): @pyqtSlot() def cancelDownload(self) -> None: - Logger.log("i", "User cancelled the download of a package. request %s", self._download_request_data) + Logger.info(f"User cancelled the download of a package. request {self._download_request_data}") if self._download_request_data is not None: self._application.getHttpRequestManager().abortRequest(self._download_request_data) self._download_request_data = None @@ -585,7 +585,7 @@ class Toolbox(QObject, Extension): # Handlers for Network Events # -------------------------------------------------------------------------- def _onDataRequestError(self, request_type: str, reply: "QNetworkReply", error: "QNetworkReply.NetworkError") -> None: - Logger.log("e", "Request [%s] failed due to error [%s]: %s", request_type, error, reply.errorString()) + Logger.error(f"Request {request_type} failed due to error {error}: {reply.errorString()}") self.setViewPage("errored") def _onDataRequestFinished(self, request_type: str, reply: "QNetworkReply") -> None: From c6c325facb43eb26635194a765d921d852c88d62 Mon Sep 17 00:00:00 2001 From: Eryone <40707672+Eryone@users.noreply.github.com> Date: Fri, 24 Sep 2021 21:03:51 +0800 Subject: [PATCH 6/7] Update the thinker printer profile (#10431) * Adding Eryone Thinker profile to Cura - adding printer definition - adding extruder definition - adding image plate - adding platform object - adding quality profiles * Minor update eryone_thinker.def.json Fix initial fan speed * Improve model textures and draw order Fixed draw order of model by seperating the mesh into parts and ordering them before export. Add more colors to the texture to allow for more distictant parts. * Reduced mesh size by remodeling the bed height adjustment wheels. * Updated Eryone Thinker name to include Series in the name * Update eryone_thinker.def.json * Improve End GCode Ensure we disable bed temp and turn off all fans. Move the nozzle up by 0.5mm and retract to remove wipe on model top layer. * Minor fixes to start and end gcode * Eryone Thinker Profile improvements. Adding Extra Fast profile. Added acceleration speed for Fast. Minor updates to definition for default material to be Eryone PLA and some other setting to work better with profiles. * Delete eryone_thinker.def.json * Create eryone_thinker.def.json * Updating Eryone Thinker Definition Added changes again due to for reconcile stomping the original * Update eryone_thinker_fast.inst.cfg Update the layer_height to 0.25mm Co-authored-by: Demetrius Apostolopoulos <75643490+dapostol73@users.noreply.github.com> --- resources/definitions/eryone_thinker.def.json | 12 +++--- .../eryone_thinker_extra_fast.inst.cfg | 37 +++++++++++++++++++ .../eryone_thinker_fast.inst.cfg | 4 +- 3 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg diff --git a/resources/definitions/eryone_thinker.def.json b/resources/definitions/eryone_thinker.def.json index 6534b8c471..f5487f986a 100644 --- a/resources/definitions/eryone_thinker.def.json +++ b/resources/definitions/eryone_thinker.def.json @@ -12,7 +12,7 @@ "platform_texture": "eryone_thinker_plate.png", "platform_offset": [0, -120, 0], "has_materials": true, - "preferred_material": "generic_pla", + "preferred_material": "eryone_pla", "has_machine_quality": true, "preferred_quality_type": "normal", "machine_extruder_trains": @@ -57,10 +57,10 @@ "default_value": "Marlin" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z10.0 F600 ;move the platform down 10mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Y-3 F1200 ;move to prime\nG1 X10 F1200 ;\nG1 Z0.1 F600 ;get ready to prime\nG1 X120 E15 F1200 ;prime nozzle \nG1 X120 F3600 ;quick wipe\nG92 E0 ;zero the extruded length\nG5 ;enable resume from power failure\nM117 Printing..." + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z10.0 F600 ;move the platform down 10mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Y-3 F1200 ;move to prime\nG1 X10 F1200 ;\nG1 Z0.1 F600 ;get ready to prime\nG1 X120 E15 F1200 ;prime nozzle \nG1 X120 F3600 ;quick wipe\nG92 E0 ;zero the extruded length\nM413 S1 ;enable resume from power failure\nM117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;turn off extruder\nM140 S0 ;turn off bed\nM107 ;turn off all fans\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 E-5 F300\nG1 Z+0.5 E-5 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y250 F4800 ; position for easy part removal\nM84 ;steppers off" + "default_value": "M104 S0 ;turn off extruder\nM140 S0 ;turn off bed\nM107 ;turn off all fans\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y250 F4800 ; position for easy part removal\nM84 ;steppers off" }, "acceleration_enabled": { "value": true @@ -160,7 +160,7 @@ "value": 10 }, "skirt_brim_speed": { - "value": 40 + "value": "math.ceil(speed_print * 40 / 60)" }, "skirt_gap": { "value": 5 @@ -229,7 +229,7 @@ "value": 3 }, "wall_thickness": { - "value": "1.2" + "value": "line_width * wall_line_count" }, "bottom_layers": { "value": "4" @@ -250,4 +250,4 @@ "value": "'z_seam_corner_inner'" } } -} +} \ No newline at end of file diff --git a/resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg b/resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg new file mode 100644 index 0000000000..a824d8f84a --- /dev/null +++ b/resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg @@ -0,0 +1,37 @@ +[general] +version = 4 +name = Extra Fast +definition = eryone_thinker + +[metadata] +setting_version = 17 +type = quality +quality_type = verydraft +weight = -3 +global_quality = True + +[values] +acceleration_print = 1500 +acceleration_travel = 3000 +infill_sparse_density = 10 +initial_layer_line_width_factor = 100.0 +layer_height = 0.3 +layer_height_0 = =layer_height +material_bed_temperature = =default_material_bed_temperature +material_bed_temperature_layer_0 = =material_bed_temperature +material_final_print_temperature = =material_print_temperature +material_initial_print_temperature = =material_print_temperature +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =max(-273.15, material_print_temperature + 5) +skirt_brim_speed = =math.ceil(speed_print * 40 / 50) +speed_print = 100.0 +speed_infill = =math.ceil(speed_print * 60 / 50) +speed_topbottom = =math.ceil(speed_print * 40 / 50) +speed_travel = =speed_print if magic_spiralize else 150 +speed_layer_0 = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_print * 40 / 50) +speed_wall_x = =math.ceil(speed_print * 60 / 50) +speed_z_hop = =math.ceil(speed_print * 30 / 60) +top_layers = 4 +bottom_layers = 2 +wall_line_count = 2 diff --git a/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg b/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg index f7d701f771..125fc1e15a 100644 --- a/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg +++ b/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg @@ -11,9 +11,11 @@ weight = -1 global_quality = True [values] +acceleration_print = 1500 +acceleration_travel = 3000 infill_sparse_density = 15 initial_layer_line_width_factor = 100.0 -layer_height = 0.3 +layer_height = 0.25 layer_height_0 = =layer_height material_bed_temperature = =default_material_bed_temperature material_bed_temperature_layer_0 = =material_bed_temperature From f2ed6d9054de18fd0842a850a69f5413c001acae Mon Sep 17 00:00:00 2001 From: Hellbot Development Team <71886550+DevelopmentHellbot@users.noreply.github.com> Date: Fri, 24 Sep 2021 11:08:39 -0300 Subject: [PATCH 7/7] Update Definitions and Extruders of Magna 2 230/300 dual Add start and end gcode for correct change of extruders CURA-8597 #10298 --- resources/definitions/hellbot_magna_2_230_dual.def.json | 5 ++--- resources/definitions/hellbot_magna_2_300_dual.def.json | 5 ++--- .../hellbot_magna_2_230_dual_extruder_0.def.json | 8 +++++++- .../hellbot_magna_2_230_dual_extruder_1.def.json | 8 +++++++- .../hellbot_magna_2_300_dual_extruder_0.def.json | 8 +++++++- .../hellbot_magna_2_300_dual_extruder_1.def.json | 8 +++++++- 6 files changed, 32 insertions(+), 10 deletions(-) diff --git a/resources/definitions/hellbot_magna_2_230_dual.def.json b/resources/definitions/hellbot_magna_2_230_dual.def.json index ad15ddf264..56b42a7929 100644 --- a/resources/definitions/hellbot_magna_2_230_dual.def.json +++ b/resources/definitions/hellbot_magna_2_230_dual.def.json @@ -39,11 +39,10 @@ "default_value": 2 }, "machine_start_gcode": { - "default_value": "G21\nG90\nM107\nG28 X0 Y0\nG28 Z0\nG1 Z15.0 F300\nT0\nG92 E0\nG1 F700 E-80\nT1\nG92 E0\nG1 F1000 X1 Y1 Z0.3\nG1 F600 X200 E60\nG1 F1000 Y3\nG1 F600 X1 E120\nT1\nG92 E0\nG28 X0 Y0\nG1 F700 E-80\nT0\nG92 E0" - }, + "default_value": "M104 T0 S{material_print_temperature}\nM104 T1 S{material_print_temperature}\nM109 T0 S{material_print_temperature}\nM109 T1 S{material_print_temperature}\nG21\nG90 \nG28 X0 Y0 \nG28 Z0 \nG1 Z15.0 F300 \nT0 \nG92 E0 \nG1 F700 E-80 \nT1 \nG92 E0 \nG1 F1000 X1 Y1 Z0.3 \nG1 F600 X200 E60 \nG1 F1000 Y3 \nG1 F600 X1 E120 \nT1 \nG92 E0 \nG28 X0 Y0 \nG1 F700 E-80 \nT0 \nG92 E0" + }, "machine_end_gcode": { "default_value": "M104 T0 S0\nM104 T1 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84" } - } } diff --git a/resources/definitions/hellbot_magna_2_300_dual.def.json b/resources/definitions/hellbot_magna_2_300_dual.def.json index cd94d03100..1917d4b0c1 100644 --- a/resources/definitions/hellbot_magna_2_300_dual.def.json +++ b/resources/definitions/hellbot_magna_2_300_dual.def.json @@ -39,11 +39,10 @@ "default_value": 2 }, "machine_start_gcode": { - "default_value": "G21\nG90\nM107\nG28 X0 Y0\nG28 Z0\nG1 Z15.0 F300\nT0\nG92 E0\nG1 F700 E-80\nT1\nG92 E0\nG1 F1000 X1 Y1 Z0.3\nG1 F600 X200 E60\nG1 F1000 Y3\nG1 F600 X1 E120\nT1\nG92 E0\nG28 X0 Y0\nG1 F700 E-80\nT0\nG92 E0" - }, + "default_value": "M104 T0 S{material_print_temperature}\nM104 T1 S{material_print_temperature}\nM109 T0 S{material_print_temperature}\nM109 T1 S{material_print_temperature}\nG21\nG90 \nG28 X0 Y0 \nG28 Z0 \nG1 Z15.0 F300 \nT0 \nG92 E0 \nG1 F700 E-80 \nT1 \nG92 E0 \nG1 F1000 X1 Y1 Z0.3 \nG1 F600 X200 E60 \nG1 F1000 Y3 \nG1 F600 X1 E120 \nT1 \nG92 E0 \nG28 X0 Y0 \nG1 F700 E-80 \nT0 \nG92 E0" + }, "machine_end_gcode": { "default_value": "M104 T0 S0\nM104 T1 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84" } - } } diff --git a/resources/extruders/hellbot_magna_2_230_dual_extruder_0.def.json b/resources/extruders/hellbot_magna_2_230_dual_extruder_0.def.json index b572ea4318..a043143f26 100644 --- a/resources/extruders/hellbot_magna_2_230_dual_extruder_0.def.json +++ b/resources/extruders/hellbot_magna_2_230_dual_extruder_0.def.json @@ -13,6 +13,12 @@ "maximum_value": "1" }, "machine_nozzle_size": { "default_value": 0.4 }, - "material_diameter": { "default_value": 1.75 } + "material_diameter": { "default_value": 1.75 }, + "machine_extruder_start_code": { + "default_value": "T0 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}" + }, + "machine_extruder_end_code": { + "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X230 Y200 \nG1 F3000 E-100 \nG92 E0 \nG90" + } } } diff --git a/resources/extruders/hellbot_magna_2_230_dual_extruder_1.def.json b/resources/extruders/hellbot_magna_2_230_dual_extruder_1.def.json index 398822b156..70650e6f1a 100644 --- a/resources/extruders/hellbot_magna_2_230_dual_extruder_1.def.json +++ b/resources/extruders/hellbot_magna_2_230_dual_extruder_1.def.json @@ -13,6 +13,12 @@ "maximum_value": "1" }, "machine_nozzle_size": { "default_value": 0.4 }, - "material_diameter": { "default_value": 1.75 } + "material_diameter": { "default_value": 1.75 }, + "machine_extruder_start_code": { + "default_value": "T1 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}" + }, + "machine_extruder_end_code": { + "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X230 Y200 \nG1 F3000 E-100 \nG92 E0 \nG90" + } } } diff --git a/resources/extruders/hellbot_magna_2_300_dual_extruder_0.def.json b/resources/extruders/hellbot_magna_2_300_dual_extruder_0.def.json index af68cc9422..b397e32789 100644 --- a/resources/extruders/hellbot_magna_2_300_dual_extruder_0.def.json +++ b/resources/extruders/hellbot_magna_2_300_dual_extruder_0.def.json @@ -13,6 +13,12 @@ "maximum_value": "1" }, "machine_nozzle_size": { "default_value": 0.4 }, - "material_diameter": { "default_value": 1.75 } + "material_diameter": { "default_value": 1.75 }, + "machine_extruder_start_code": { + "default_value": "T0 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}" + }, + "machine_extruder_end_code": { + "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X300 Y250 \nG1 F3000 E-100 \nG92 E0 \nG90" + } } } diff --git a/resources/extruders/hellbot_magna_2_300_dual_extruder_1.def.json b/resources/extruders/hellbot_magna_2_300_dual_extruder_1.def.json index 3585978d6e..618ed06d0b 100644 --- a/resources/extruders/hellbot_magna_2_300_dual_extruder_1.def.json +++ b/resources/extruders/hellbot_magna_2_300_dual_extruder_1.def.json @@ -13,6 +13,12 @@ "maximum_value": "1" }, "machine_nozzle_size": { "default_value": 0.4 }, - "material_diameter": { "default_value": 1.75 } + "material_diameter": { "default_value": 1.75 }, + "machine_extruder_start_code": { + "default_value": "T1 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}" + }, + "machine_extruder_end_code": { + "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X300 Y250 \nG1 F3000 E-100 \nG92 E0 \nG90" + } } }