mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Update PauseAtHeight.py
Change M18 to M84, add beep option and allow newlines in "Additional GCODE" fields
This commit is contained in:
parent
cba956be19
commit
2ef4836802
1 changed files with 43 additions and 16 deletions
|
@ -58,16 +58,25 @@ class PauseAtHeight(Script):
|
||||||
"default_value": "marlin",
|
"default_value": "marlin",
|
||||||
"value": "\\\"griffin\\\" if machine_gcode_flavor==\\\"Griffin\\\" else \\\"reprap\\\" if machine_gcode_flavor==\\\"RepRap (RepRap)\\\" else \\\"repetier\\\" if machine_gcode_flavor==\\\"Repetier\\\" else \\\"bq\\\" if \\\"BQ\\\" in machine_name or \\\"Flying Bear Ghost 4S\\\" in machine_name else \\\"marlin\\\""
|
"value": "\\\"griffin\\\" if machine_gcode_flavor==\\\"Griffin\\\" else \\\"reprap\\\" if machine_gcode_flavor==\\\"RepRap (RepRap)\\\" else \\\"repetier\\\" if machine_gcode_flavor==\\\"Repetier\\\" else \\\"bq\\\" if \\\"BQ\\\" in machine_name or \\\"Flying Bear Ghost 4S\\\" in machine_name else \\\"marlin\\\""
|
||||||
},
|
},
|
||||||
|
"hold_steppers_on":
|
||||||
|
{
|
||||||
|
"label": "Keep motors engaged",
|
||||||
|
"description": "Keep the steppers engaged to allow change of filament without moving the head. Applying too much force will move the head/bed anyway",
|
||||||
|
"type": "bool",
|
||||||
|
"default_value": true,
|
||||||
|
"enabled": "pause_method != \\\"griffin\\\""
|
||||||
|
},
|
||||||
"disarm_timeout":
|
"disarm_timeout":
|
||||||
{
|
{
|
||||||
"label": "Disarm timeout",
|
"label": "Disarm timeout",
|
||||||
"description": "After this time steppers are going to disarm (meaning that they can easily lose their positions). Set this to 0 if you don't want to set any duration.",
|
"description": "After this time steppers are going to disarm (meaning that they can easily lose their positions). Set this to 0 if you don't want to set any duration and disarm immediately.",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"value": "0",
|
"value": "60",
|
||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
"minimum_value_warning": "0",
|
"minimum_value_warning": "0",
|
||||||
"maximum_value_warning": "1800",
|
"maximum_value_warning": "1800",
|
||||||
"unit": "s"
|
"unit": "s",
|
||||||
|
"enabled": "hold_steppers_on"
|
||||||
},
|
},
|
||||||
"head_park_enabled":
|
"head_park_enabled":
|
||||||
{
|
{
|
||||||
|
@ -192,6 +201,22 @@ class PauseAtHeight(Script):
|
||||||
"default_value": "RepRap (Marlin/Sprinter)",
|
"default_value": "RepRap (Marlin/Sprinter)",
|
||||||
"enabled": false
|
"enabled": false
|
||||||
},
|
},
|
||||||
|
"beep_at_pause":
|
||||||
|
{
|
||||||
|
"label": "Beep at pause",
|
||||||
|
"description": "Make a beep when pausing",
|
||||||
|
"type": "bool",
|
||||||
|
"default_value": true
|
||||||
|
},
|
||||||
|
"beep_length":
|
||||||
|
{
|
||||||
|
"label": "Beep length",
|
||||||
|
"description": "How much should the beep last",
|
||||||
|
"type": "int",
|
||||||
|
"default_value": "1000",
|
||||||
|
"unit": "ms",
|
||||||
|
"enabled": "beep_at_pause"
|
||||||
|
},
|
||||||
"custom_gcode_before_pause":
|
"custom_gcode_before_pause":
|
||||||
{
|
{
|
||||||
"label": "G-code Before Pause",
|
"label": "G-code Before Pause",
|
||||||
|
@ -242,6 +267,7 @@ class PauseAtHeight(Script):
|
||||||
pause_at = self.getSettingValueByKey("pause_at")
|
pause_at = self.getSettingValueByKey("pause_at")
|
||||||
pause_height = self.getSettingValueByKey("pause_height")
|
pause_height = self.getSettingValueByKey("pause_height")
|
||||||
pause_layer = self.getSettingValueByKey("pause_layer")
|
pause_layer = self.getSettingValueByKey("pause_layer")
|
||||||
|
hold_steppers_on = self.getSettingValueByKey("hold_steppers_on")
|
||||||
disarm_timeout = self.getSettingValueByKey("disarm_timeout")
|
disarm_timeout = self.getSettingValueByKey("disarm_timeout")
|
||||||
retraction_amount = self.getSettingValueByKey("retraction_amount")
|
retraction_amount = self.getSettingValueByKey("retraction_amount")
|
||||||
retraction_speed = self.getSettingValueByKey("retraction_speed")
|
retraction_speed = self.getSettingValueByKey("retraction_speed")
|
||||||
|
@ -260,6 +286,8 @@ class PauseAtHeight(Script):
|
||||||
display_text = self.getSettingValueByKey("display_text")
|
display_text = self.getSettingValueByKey("display_text")
|
||||||
gcode_before = self.getSettingValueByKey("custom_gcode_before_pause")
|
gcode_before = self.getSettingValueByKey("custom_gcode_before_pause")
|
||||||
gcode_after = self.getSettingValueByKey("custom_gcode_after_pause")
|
gcode_after = self.getSettingValueByKey("custom_gcode_after_pause")
|
||||||
|
beep_at_pause = self.getSettingValueByKey("beep_at_pause")
|
||||||
|
beep_length = self.getSettingValueByKey("beep_length")
|
||||||
|
|
||||||
pause_method = self.getSettingValueByKey("pause_method")
|
pause_method = self.getSettingValueByKey("pause_method")
|
||||||
pause_command = {
|
pause_command = {
|
||||||
|
@ -437,19 +465,26 @@ class PauseAtHeight(Script):
|
||||||
prepend_gcode += "M117 " + display_text + "\n"
|
prepend_gcode += "M117 " + display_text + "\n"
|
||||||
|
|
||||||
# Set the disarm timeout
|
# Set the disarm timeout
|
||||||
if disarm_timeout > 0:
|
if hold_steppers_on:
|
||||||
prepend_gcode += self.putValue(M = 18, S = disarm_timeout) + " ; Set the disarm timeout\n"
|
prepend_gcode += self.putValue(M = 84, S = 3600) + " ; Keep steppers engaged for 1h\n"
|
||||||
|
elif disarm_timeout > 0:
|
||||||
|
prepend_gcode += self.putValue(M = 84, S = disarm_timeout) + " ; Set the disarm timeout\n"
|
||||||
|
|
||||||
|
# Beep at pause
|
||||||
|
if beep_at_pause:
|
||||||
|
prepend_gcode += self.putValue(M = 300, S = 440, P = beep_length) + " ; Beep\n"
|
||||||
|
|
||||||
|
|
||||||
# Set a custom GCODE section before pause
|
# Set a custom GCODE section before pause
|
||||||
if gcode_before:
|
if gcode_before:
|
||||||
prepend_gcode += gcode_before + "\n"
|
prepend_gcode += gcode_before.replace(";","\n") + "\n"
|
||||||
|
|
||||||
# Wait till the user continues printing
|
# Wait till the user continues printing
|
||||||
prepend_gcode += pause_command + " ; Do the actual pause\n"
|
prepend_gcode += pause_command + " ; Do the actual pause\n"
|
||||||
|
|
||||||
# Set a custom GCODE section before pause
|
# Set a custom GCODE section before pause
|
||||||
if gcode_after:
|
if gcode_after:
|
||||||
prepend_gcode += gcode_after + "\n"
|
prepend_gcode += gcode_after.replace(";","\n") + "\n"
|
||||||
|
|
||||||
if pause_method == "repetier":
|
if pause_method == "repetier":
|
||||||
#Push the filament back,
|
#Push the filament back,
|
||||||
|
@ -479,15 +514,7 @@ class PauseAtHeight(Script):
|
||||||
else:
|
else:
|
||||||
Logger.log("w", "No previous feedrate found in gcode, feedrate for next layer(s) might be incorrect")
|
Logger.log("w", "No previous feedrate found in gcode, feedrate for next layer(s) might be incorrect")
|
||||||
|
|
||||||
extrusion_mode_string = "absolute"
|
prepend_gcode += self.putValue(M = 82) + "\n"
|
||||||
extrusion_mode_numeric = 82
|
|
||||||
|
|
||||||
relative_extrusion = Application.getInstance().getGlobalContainerStack().getProperty("relative_extrusion", "value")
|
|
||||||
if relative_extrusion:
|
|
||||||
extrusion_mode_string = "relative"
|
|
||||||
extrusion_mode_numeric = 83
|
|
||||||
|
|
||||||
prepend_gcode += self.putValue(M = extrusion_mode_numeric) + " ; switch back to " + extrusion_mode_string + " E values\n"
|
|
||||||
|
|
||||||
# reset extrude value to pre pause value
|
# reset extrude value to pre pause value
|
||||||
prepend_gcode += self.putValue(G = 92, E = current_e) + "\n"
|
prepend_gcode += self.putValue(G = 92, E = current_e) + "\n"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue