Merge branch 'master' into CURA-7427_Add_option_to_sign_in_with_different_account_while_waiting_for_printers

This commit is contained in:
Kostas Karmas 2020-05-12 13:10:41 +02:00
commit f6ebac6e34
10 changed files with 196 additions and 33 deletions

View file

@ -108,13 +108,12 @@ class PauseAtHeight(Script):
"type": "float",
"default_value": 3.3333
},
"redo_layers":
"redo_layer":
{
"label": "Redo Layers",
"description": "Redo a number of previous layers after a pause to increases adhesion.",
"unit": "layers",
"type": "int",
"default_value": 0
"label": "Redo Layer",
"description": "Redo the last layer before the pause, to get the filament flowing again after having oozed a bit during the pause.",
"type": "bool",
"default_value": false
},
"standby_temperature":
{
@ -160,7 +159,7 @@ class PauseAtHeight(Script):
park_x = self.getSettingValueByKey("head_park_x")
park_y = self.getSettingValueByKey("head_park_y")
layers_started = False
redo_layers = self.getSettingValueByKey("redo_layers")
redo_layer = self.getSettingValueByKey("redo_layer")
standby_temperature = self.getSettingValueByKey("standby_temperature")
firmware_retract = Application.getInstance().getGlobalContainerStack().getProperty("machine_firmware_retract", "value")
control_temperatures = Application.getInstance().getGlobalContainerStack().getProperty("machine_nozzle_temp_enabled", "value")
@ -264,24 +263,23 @@ class PauseAtHeight(Script):
if current_e >= 0:
break
# include a number of previous layers
for i in range(1, redo_layers + 1):
prev_layer = data[index - i]
# Maybe redo the last layer.
if redo_layer:
prev_layer = data[index - 1]
layer = prev_layer + layer
# Get extruder's absolute position at the
# beginning of the first layer redone
# beginning of the redone layer.
# see https://github.com/nallath/PostProcessingPlugin/issues/55
if i == redo_layers:
# Get X and Y from the next layer (better position for
# the nozzle)
x, y = self.getNextXY(layer)
prev_lines = prev_layer.split("\n")
for lin in prev_lines:
new_e = self.getValue(lin, "E", current_e)
if new_e != current_e:
current_e = new_e
break
# Get X and Y from the next layer (better position for
# the nozzle)
x, y = self.getNextXY(layer)
prev_lines = prev_layer.split("\n")
for lin in prev_lines:
new_e = self.getValue(lin, "E", current_e)
if new_e != current_e:
current_e = new_e
break
prepend_gcode = ";TYPE:CUSTOM\n"
prepend_gcode += ";added code by post processing\n"
@ -364,8 +362,8 @@ class PauseAtHeight(Script):
prepend_gcode += self.putValue(M = 82) + " ; switch back to absolute E values\n"
# reset extrude value to pre pause value
prepend_gcode += self.putValue(G = 92, E = current_e) + "\n"
# reset extrude value to pre pause value
prepend_gcode += self.putValue(G = 92, E = current_e) + "\n"
layer = prepend_gcode + layer

View file

@ -1,4 +1,4 @@
# Copyright (c) 2019 Ultimaker B.V.
# Copyright (c) 2020 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import os
@ -367,11 +367,18 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
self._sendCommand("M84")
def _sendNextGcodeLine(self):
if self._gcode_position >= len(self._gcode):
"""
Send the next line of g-code, at the current `_gcode_position`, via a
serial port to the printer.
If the print is done, this sets `_is_printing` to `False` as well.
"""
try:
line = self._gcode[self._gcode_position]
except IndexError: # End of print, or print got cancelled.
self._printers[0].updateActivePrintJob(None)
self._is_printing = False
return
line = self._gcode[self._gcode_position]
if ";" in line:
line = line[:line.find(";")]
@ -401,7 +408,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
if print_job is None:
controller = GenericOutputController(self)
controller.setCanUpdateFirmware(True)
print_job = PrintJobOutputModel(output_controller=controller, name=CuraApplication.getInstance().getPrintInformation().jobName)
print_job = PrintJobOutputModel(output_controller = controller, name = CuraApplication.getInstance().getPrintInformation().jobName)
print_job.updateState("printing")
self._printers[0].updateActivePrintJob(print_job)

View file

@ -78,6 +78,27 @@ class VersionUpgrade462to47(VersionUpgrade):
parser["metadata"] = {}
parser["metadata"]["setting_version"] = "15"
# Update Pause at Height script parameters if present.
if "post_processing_scripts" in parser["metadata"]:
new_scripts_entries = []
for script_str in parser["metadata"]["post_processing_scripts"].split("\n"):
if not script_str:
continue
script_str = script_str.replace(r"\\\n", "\n").replace(r"\\\\", "\\\\") # Unescape escape sequences.
script_parser = configparser.ConfigParser(interpolation=None)
script_parser.optionxform = str # type: ignore # Don't transform the setting keys as they are case-sensitive.
script_parser.read_string(script_str)
if "PauseAtHeight" in script_parser:
if "redo_layers" in script_parser["PauseAtHeight"]:
script_parser["PauseAtHeight"]["redo_layer"] = str(int(script_parser["PauseAtHeight"]["redo_layers"]) > 0)
del script_parser["PauseAtHeight"]["redo_layers"] # Has been renamed to without the S.
script_io = io.StringIO()
script_parser.write(script_io)
script_str = script_io.getvalue()
script_str = script_str.replace("\\\\", r"\\\\").replace("\n", r"\\\n") # Escape newlines because configparser sees those as section delimiters.
new_scripts_entries.append(script_str)
parser["metadata"]["post_processing_scripts"] = "\n".join(new_scripts_entries)
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]

View file

@ -0,0 +1,35 @@
{
"version": 2,
"name": "Leapfrog Creatr HS",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Psychometer",
"manufacturer": "Leapfrog B.V.",
"file_formats": "text/x-gcode",
"supports_usb_connection": true,
"machine_extruder_trains":
{
"0": "leapfrog_creatr_hs_extruder_right",
"1": "leapfrog_creatr_hs_extruder_left"
}
},
"overrides": {
"machine_name": {"default_value": "Leapfrog Creatr HS" },
"machine_width": {"default_value": 270},
"machine_depth": {"default_value": 280},
"machine_height": {"default_value": 180},
"machine_shape": { "default_value": "Rectangular"},
"machine_center_is_zero": {"default_value": false},
"machine_heated_bed": {"default_value": true},
"build_volume_temperature": {"enabled": false},
"machine_gcode_flavor": {"default_value": "Marlin"},
"machine_head_with_fans_polygon": {"default_value": [[-40, -50 ], [-40, 100], [40, -50 ], [40, 100]]},
"gantry_height": {"value": "2"},
"machine_extruder_count": {"default_value": 2},
"machine_start_gcode": {"default_value": "M107 ; start with the fan off\nG28 X0 Y0 ; home XY axes\nG28 Z0 ; home Z\nG92 X0 Y0 Z0 E0 ; reset software positions\nG1 Z15.0 F180\nT0\nG92 E0 ; zero the extruded length\nG1 E3 F200\nG92 E0 ; zero the extruded length again\nG1 F225"},
"machine_end_gcode": {"default_value": "M104 S0 T0 ; turn off right extruder\nM104 S0 T1 ; turn off left extruder\nM140 S0 T0 ; turn off bed\nG1 Z200 F1200 ; drop bed\nG28 X0 ; home X axis\nM84 ; disable motors"}
}
}

View file

@ -0,0 +1,35 @@
{
"version": 2,
"name": "Leapfrog Creatr HS XL",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Psychometer",
"manufacturer": "Leapfrog B.V.",
"file_formats": "text/x-gcode",
"supports_usb_connection": true,
"machine_extruder_trains":
{
"0": "leapfrog_creatr_hs_xl_extruder_right",
"1": "leapfrog_creatr_hs_xl_extruder_left"
}
},
"overrides": {
"machine_name": {"default_value": "Leapfrog Creatr HS XL" },
"machine_width": {"default_value": 270},
"machine_depth": {"default_value": 280},
"machine_height": {"default_value": 590},
"machine_shape": { "default_value": "Rectangular"},
"machine_center_is_zero": {"default_value": false},
"machine_heated_bed": {"default_value": true},
"build_volume_temperature": {"enabled": false},
"machine_gcode_flavor": {"default_value": "Marlin"},
"machine_head_with_fans_polygon": {"default_value": [[-40, -50 ], [-40, 100], [40, -50 ], [40, 100]]},
"gantry_height": {"value": "2"},
"machine_extruder_count": {"default_value": 2},
"machine_start_gcode": {"default_value": "M107 ; start with the fan off\nG28 X0 Y0 ; home XY axes\nG28 Z0 ; home Z\nG92 X0 Y0 Z0 E0 ; reset software positions\nG1 Z15.0 F180\nT0\nG92 E0 ; zero the extruded length\nG1 E3 F200\nG92 E0 ; zero the extruded length again\nG1 F225"},
"machine_end_gcode": {"default_value": "G92 E0 ; Zero extruder\nG1 E-6.00 F1500 ; Retract filament\nM104 S0 T0 ; turn off right extruder\nM104 S0 T1 ; turn off left extruder\nM140 S0 T0 ; turn off bed\nG1 Z590 F1200 ; drop bed\nG28 X0 ; home X axis\nG1 Y270 F12000 ; Move Y axis to the backside\nM84 ; disable motors"}
}
}

View file

@ -0,0 +1,18 @@
{
"version": 2,
"name": "Left extruder",
"inherits": "fdmextruder",
"metadata": {
"machine": "leapfrog_creatr_hs",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1
},
"machine_nozzle_size": { "default_value": 0.35 },
"material_diameter": { "default_value": 1.75 },
"machine_nozzle_offset_x": { "default_value": 20 },
"machine_nozzle_offset_y": { "default_value": 25 }
}
}

View file

@ -0,0 +1,18 @@
{
"version": 2,
"name": "Right extruder",
"inherits": "fdmextruder",
"metadata": {
"machine": "leapfrog_creatr_hs",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0
},
"machine_nozzle_size": { "default_value": 0.35 },
"material_diameter": { "default_value": 1.75 },
"machine_nozzle_offset_x": { "default_value": 35 },
"machine_nozzle_offset_y": { "default_value": 25 }
}
}

View file

@ -0,0 +1,18 @@
{
"version": 2,
"name": "Left extruder",
"inherits": "fdmextruder",
"metadata": {
"machine": "leapfrog_creatr_hs_xl",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1
},
"machine_nozzle_size": { "default_value": 0.35 },
"material_diameter": { "default_value": 1.75 },
"machine_nozzle_offset_x": { "default_value": 20 },
"machine_nozzle_offset_y": { "default_value": 25 }
}
}

View file

@ -0,0 +1,18 @@
{
"version": 2,
"name": "Right extruder",
"inherits": "fdmextruder",
"metadata": {
"machine": "leapfrog_creatr_hs_xl",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0
},
"machine_nozzle_size": { "default_value": 0.35 },
"material_diameter": { "default_value": 1.75 },
"machine_nozzle_offset_x": { "default_value": 35 },
"machine_nozzle_offset_y": { "default_value": 25 }
}
}

View file

@ -40,11 +40,6 @@ fragment =
uniform lowp float u_renderError;
float round(float f)
{
return sign(f) * floor(abs(f) + 0.5);
}
void main()
{
mediump vec4 finalColor = vec4(0.0);
@ -68,7 +63,7 @@ fragment =
finalColor = (-normal.y > u_overhangAngle) ? u_overhangColor : finalColor;
vec3 grid = vec3(f_vertex.x - floor(f_vertex.x - 0.5), f_vertex.y - floor(f_vertex.y - 0.5), f_vertex.z - floor(f_vertex.z - 0.5));
highp vec3 grid = vec3(f_vertex.x - floor(f_vertex.x - 0.5), f_vertex.y - floor(f_vertex.y - 0.5), f_vertex.z - floor(f_vertex.z - 0.5));
finalColor.a = (u_renderError > 0.5) && dot(grid, grid) < 0.245 ? 0.667 : 1.0;
gl_FragColor = finalColor;