Merge commit 'b2b98c057a7d23f9c8b0aec4c14844f7c24d6bde' into release

This commit is contained in:
张开科 2024-12-31 15:15:14 +08:00
commit e052ab0957
7 changed files with 1904 additions and 236 deletions

View File

@ -378,7 +378,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Left extruder filament has been run out."}'
{% endif %}
[gcode_macro T1]
@ -405,7 +405,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Right extruder filament has been run out."}'
{% endif %}
[gcode_macro PROBE_SERVO_OPEN]
@ -458,6 +458,10 @@ gcode:
G92 E0
M117 Printing start...
[gcode_macro PRINT_START]
gcode:
START_PRINT
[gcode_macro END_PRINT]
gcode:
M400
@ -472,6 +476,10 @@ gcode:
G0 X590 Y590 F3600
# BED_MESH_CLEAR
[gcode_macro PRINT_END]
gcode:
END_PRINT
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 120
variable_purge_distance: 25
@ -501,24 +509,6 @@ gcode:
G1 E-{unload_distance} F{max_velocity} # fast-unload
RESTORE_GCODE_STATE NAME=unload_state
[gcode_macro SET_X_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_x_offset=params.S|default(-60)|float %}
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
[gcode_macro SET_Y_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_y_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
[gcode_macro SET_Z_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_z_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
[gcode_macro _ACTIVATE_DEFAULT_EXTRUDER]
gcode:
{% if printer.toolhead.extruder == 'extruder' %}
@ -667,13 +657,13 @@ gcode:
[gcode_macro _RESUME_EXTRUDER]
gcode:
{% set client = printer['gcode_macro RESUME']|default({}) %}
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
{% set autoshift_on = params.AUTOSHIFT|default(False)|lower %}
{% set toolchange = client.change_runout|lower|default("") %}
{% set extruder_filament = client.filament_state.extruder %}
{% set extruder1_filament = client.filament_state.extruder1 %}
{% set resume_extruder = client.resume_extruder|default("extruder") %}
{% if autoshift_on %}
{% if autoshift_on == 'true' %}
{% if extruder_filament and extruder1_filament %}
{% if toolchange == "t0" %}
{% set resume_extruder = "extruder" %}
@ -711,8 +701,10 @@ gcode:
{'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %}
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" %
(printer.toolhead.extruder, value)}'
{% if printer[printer.toolhead.extruder].temperature < value-3 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature, this may take some time." % msg}'
{% endif %}
{% for info in extruder_info %}
{% set variable = printer["gcode_macro RESUME"][info.name] %}
{% if variable.restore %}
@ -732,10 +724,40 @@ gcode:
[gcode_macro _USER_CANCEL]
gcode:
{% if 'z' in printer.toolhead.homed_axes %}
G91
G1 Z30 F600 ; lift nozzle
{% endif %}
M84
[gcode_macro _CLIENT_EXTRUDE]
description: Extrudes, if the extruder is hot enough
gcode:
##### get user parameters or use default #####
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
{% set absolute_extrude = printer.gcode_move.absolute_extrude %}
##### end of definitions #####
{% if printer.toolhead.extruder != '' %}
{% if printer[printer.toolhead.extruder].can_extrude %}
{% if use_fw_retract %}
{% if length < 0 %}
G10
{% else %}
G11
{% endif %}
{% else %}
M83
G1 E{length} F{(speed|float|abs) * 60}
{% if absolute_extrude %}
M82
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
@ -745,10 +767,10 @@ variable_restore_idle_timeout: 0
variable_idle_state: False
variable_filament_state: ""
variable_change_runout: ""
variable_autoshift: False
variable_resume_extruder: ""
gcode:
##### get user parameters or use default #####
{% set autoshift = printer.save_variables.variables.auto_change_nozzle|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set do_resume = False %}
{% set runout = True %}
@ -768,16 +790,10 @@ gcode:
{% set do_resume = True %}
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
#### Printer comming out of regular PAUSE state ####
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
_ACT_RESUME DO_RESUME={do_resume}
@ -799,17 +815,17 @@ gcode:
_CLIENT_EXTRUDE
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None"
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE="False"
{% else %}
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and continue." % msg) %}
{% endif %}
##### Generate User Information box in case of abort #####
{% if not (filament_state and do_resume) %}
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
RESPOND TYPE=command MSG="action:prompt_begin RESUME ABORTED !"
{% for element in prompt_txt %}
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
{% endfor %}
@ -860,14 +876,14 @@ gcode:
{% if not filament_state %}
PAUSE
{% if autoshift_extruder %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE=True
{% if printer["gcode_macro RESUME"].filament_state[target_extruder] %}
RESUME
{% else %}
RESPOND TYPE=error MSG='{"Noting! All extruders filament has been run out."}'
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Noting! \"%s\" filament has been run out." % printer.toolhead.extruder}'
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=error MSG='{"Noting! %s extruder filament has been run out." % msg}'
{% endif %}
{% endif %}

View File

@ -314,7 +314,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Left extruder filament has been run out."}'
{% endif %}
[gcode_macro T1]
@ -341,7 +341,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Right extruder filament has been run out."}'
{% endif %}
[gcode_macro PROBE_SERVO_OPEN]
@ -394,6 +394,10 @@ gcode:
G92 E0
M117 Printing start...
[gcode_macro PRINT_START]
gcode:
START_PRINT
[gcode_macro END_PRINT]
gcode:
M400
@ -408,6 +412,10 @@ gcode:
G0 X590 Y590 F3600
# BED_MESH_CLEAR
[gcode_macro PRINT_END]
gcode:
END_PRINT
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 120
variable_purge_distance: 25
@ -437,24 +445,6 @@ gcode:
G1 E-{unload_distance} F{max_velocity} # fast-unload
RESTORE_GCODE_STATE NAME=unload_state
[gcode_macro SET_X_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_x_offset=params.S|default(-60)|float %}
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
[gcode_macro SET_Y_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_y_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
[gcode_macro SET_Z_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_z_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
[gcode_macro _ACTIVATE_DEFAULT_EXTRUDER]
gcode:
{% if printer.toolhead.extruder == 'extruder' %}
@ -603,13 +593,13 @@ gcode:
[gcode_macro _RESUME_EXTRUDER]
gcode:
{% set client = printer['gcode_macro RESUME']|default({}) %}
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
{% set autoshift_on = params.AUTOSHIFT|default(False)|lower %}
{% set toolchange = client.change_runout|lower|default("") %}
{% set extruder_filament = client.filament_state.extruder %}
{% set extruder1_filament = client.filament_state.extruder1 %}
{% set resume_extruder = client.resume_extruder|default("extruder") %}
{% if autoshift_on %}
{% if autoshift_on == 'true' %}
{% if extruder_filament and extruder1_filament %}
{% if toolchange == "t0" %}
{% set resume_extruder = "extruder" %}
@ -647,8 +637,10 @@ gcode:
{'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %}
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" %
(printer.toolhead.extruder, value)}'
{% if printer[printer.toolhead.extruder].temperature < value-3 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature, this may take some time." % msg}'
{% endif %}
{% for info in extruder_info %}
{% set variable = printer["gcode_macro RESUME"][info.name] %}
{% if variable.restore %}
@ -668,10 +660,40 @@ gcode:
[gcode_macro _USER_CANCEL]
gcode:
{% if 'z' in printer.toolhead.homed_axes %}
G91
G1 Z30 F600 ; lift nozzle
{% endif %}
M84
[gcode_macro _CLIENT_EXTRUDE]
description: Extrudes, if the extruder is hot enough
gcode:
##### get user parameters or use default #####
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
{% set absolute_extrude = printer.gcode_move.absolute_extrude %}
##### end of definitions #####
{% if printer.toolhead.extruder != '' %}
{% if printer[printer.toolhead.extruder].can_extrude %}
{% if use_fw_retract %}
{% if length < 0 %}
G10
{% else %}
G11
{% endif %}
{% else %}
M83
G1 E{length} F{(speed|float|abs) * 60}
{% if absolute_extrude %}
M82
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
@ -681,10 +703,10 @@ variable_restore_idle_timeout: 0
variable_idle_state: False
variable_filament_state: ""
variable_change_runout: ""
variable_autoshift: False
variable_resume_extruder: ""
gcode:
##### get user parameters or use default #####
{% set autoshift = printer.save_variables.variables.auto_change_nozzle|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set do_resume = False %}
{% set runout = True %}
@ -704,16 +726,10 @@ gcode:
{% set do_resume = True %}
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
#### Printer comming out of regular PAUSE state ####
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
_ACT_RESUME DO_RESUME={do_resume}
@ -735,17 +751,17 @@ gcode:
_CLIENT_EXTRUDE
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None"
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE="False"
{% else %}
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and continue." % msg) %}
{% endif %}
##### Generate User Information box in case of abort #####
{% if not (filament_state and do_resume) %}
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
RESPOND TYPE=command MSG="action:prompt_begin RESUME ABORTED !"
{% for element in prompt_txt %}
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
{% endfor %}
@ -796,14 +812,14 @@ gcode:
{% if not filament_state %}
PAUSE
{% if autoshift_extruder %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE=True
{% if printer["gcode_macro RESUME"].filament_state[target_extruder] %}
RESUME
{% else %}
RESPOND TYPE=error MSG='{"Noting! All extruders filament has been run out."}'
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Noting! \"%s\" filament has been run out." % printer.toolhead.extruder}'
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=error MSG='{"Noting! %s extruder filament has been run out." % msg}'
{% endif %}
{% endif %}

View File

@ -378,7 +378,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Left extruder filament has been run out."}'
{% endif %}
[gcode_macro T1]
@ -405,7 +405,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Right extruder filament has been run out."}'
{% endif %}
[gcode_macro PROBE_SERVO_OPEN]
@ -458,6 +458,10 @@ gcode:
G92 E0
M117 Printing start...
[gcode_macro PRINT_START]
gcode:
START_PRINT
[gcode_macro END_PRINT]
gcode:
M400
@ -472,6 +476,10 @@ gcode:
G0 X590 Y590 F3600
# BED_MESH_CLEAR
[gcode_macro PRINT_END]
gcode:
END_PRINT
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 120
variable_purge_distance: 25
@ -501,24 +509,6 @@ gcode:
G1 E-{unload_distance} F{max_velocity} # fast-unload
RESTORE_GCODE_STATE NAME=unload_state
[gcode_macro SET_X_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_x_offset=params.S|default(-60)|float %}
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
[gcode_macro SET_Y_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_y_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
[gcode_macro SET_Z_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_z_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
[gcode_macro _ACTIVATE_DEFAULT_EXTRUDER]
gcode:
{% if printer.toolhead.extruder == 'extruder' %}
@ -660,13 +650,13 @@ gcode:
[gcode_macro _RESUME_EXTRUDER]
gcode:
{% set client = printer['gcode_macro RESUME']|default({}) %}
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
{% set autoshift_on = params.AUTOSHIFT|default(False)|lower %}
{% set toolchange = client.change_runout|lower|default("") %}
{% set extruder_filament = client.filament_state.extruder %}
{% set extruder1_filament = client.filament_state.extruder1 %}
{% set resume_extruder = client.resume_extruder %}
{% if autoshift_on %}
{% if autoshift_on == 'true' %}
{% if extruder_filament and extruder1_filament %}
{% if toolchange == "t0" %}
{% set resume_extruder = "extruder" %}
@ -704,8 +694,10 @@ gcode:
{'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %}
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" %
(printer.toolhead.extruder, value)}'
{% if printer[printer.toolhead.extruder].temperature < value-3 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature, this may take some time." % msg}'
{% endif %}
{% for info in extruder_info %}
{% set variable = printer["gcode_macro RESUME"][info.name] %}
{% if variable.restore %}
@ -725,10 +717,40 @@ gcode:
[gcode_macro _USER_CANCEL]
gcode:
{% if 'z' in printer.toolhead.homed_axes %}
G91
G1 Z30 F600 ; lift nozzle
{% endif %}
M84
[gcode_macro _CLIENT_EXTRUDE]
description: Extrudes, if the extruder is hot enough
gcode:
##### get user parameters or use default #####
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
{% set absolute_extrude = printer.gcode_move.absolute_extrude %}
##### end of definitions #####
{% if printer.toolhead.extruder != '' %}
{% if printer[printer.toolhead.extruder].can_extrude %}
{% if use_fw_retract %}
{% if length < 0 %}
G10
{% else %}
G11
{% endif %}
{% else %}
M83
G1 E{length} F{(speed|float|abs) * 60}
{% if absolute_extrude %}
M82
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
@ -738,10 +760,10 @@ variable_restore_idle_timeout: 0
variable_idle_state: False
variable_filament_state: ""
variable_change_runout: ""
variable_autoshift: False
variable_resume_extruder: ""
gcode:
##### get user parameters or use default #####
{% set autoshift = printer.save_variables.variables.auto_change_nozzle|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set do_resume = False %}
{% set prompt_txt = [] %}
@ -763,16 +785,10 @@ gcode:
{% set do_resume = True %}
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
#### Printer comming out of regular PAUSE state ####
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
_ACT_RESUME DO_RESUME={do_resume}
@ -794,17 +810,17 @@ gcode:
_CLIENT_EXTRUDE
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None"
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE="False"
{% else %}
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and continue." % msg) %}
{% endif %}
##### Generate User Information box in case of abort #####
{% if not (filament_state and do_resume) %}
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
RESPOND TYPE=command MSG="action:prompt_begin RESUME ABORTED !"
{% for element in prompt_txt %}
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
{% endfor %}
@ -855,14 +871,14 @@ gcode:
{% if not filament_state %}
PAUSE
{% if autoshift_extruder %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE=True
{% if printer["gcode_macro RESUME"].filament_state[target_extruder] %}
RESUME
{% else %}
RESPOND TYPE=error MSG='{"Noting! All extruders filament has been run out."}'
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Noting! \"%s\" filament has been run out." % printer.toolhead.extruder}'
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=error MSG='{"Noting! %s extruder filament has been run out." % msg}'
{% endif %}
{% endif %}

View File

@ -314,7 +314,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Left extruder filament has been run out."}'
{% endif %}
[gcode_macro T1]
@ -341,7 +341,7 @@ gcode:
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Right extruder filament has been run out."}'
{% endif %}
[gcode_macro PROBE_SERVO_OPEN]
@ -394,6 +394,10 @@ gcode:
G92 E0
M117 Printing start...
[gcode_macro PRINT_START]
gcode:
START_PRINT
[gcode_macro END_PRINT]
gcode:
M400
@ -408,6 +412,10 @@ gcode:
G0 X590 Y590 F3600
# BED_MESH_CLEAR
[gcode_macro PRINT_END]
gcode:
END_PRINT
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 120
variable_purge_distance: 25
@ -437,24 +445,6 @@ gcode:
G1 E-{unload_distance} F{max_velocity} # fast-unload
RESTORE_GCODE_STATE NAME=unload_state
[gcode_macro SET_X_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_x_offset=params.S|default(-60)|float %}
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
[gcode_macro SET_Y_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_y_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
[gcode_macro SET_Z_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_z_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
[gcode_macro _ACTIVATE_DEFAULT_EXTRUDER]
gcode:
{% if printer.toolhead.extruder == 'extruder' %}
@ -596,13 +586,13 @@ gcode:
[gcode_macro _RESUME_EXTRUDER]
gcode:
{% set client = printer['gcode_macro RESUME']|default({}) %}
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
{% set autoshift_on = params.AUTOSHIFT|default(False)|lower %}
{% set toolchange = client.change_runout|lower|default("") %}
{% set extruder_filament = client.filament_state.extruder %}
{% set extruder1_filament = client.filament_state.extruder1 %}
{% set resume_extruder = client.resume_extruder|default("extruder") %}
{% if autoshift_on %}
{% if autoshift_on == 'true' %}
{% if extruder_filament and extruder1_filament %}
{% if toolchange == "t0" %}
{% set resume_extruder = "extruder" %}
@ -640,8 +630,10 @@ gcode:
{'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %}
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" %
(printer.toolhead.extruder, value)}'
{% if printer[printer.toolhead.extruder].temperature < value-3 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature, this may take some time." % msg}'
{% endif %}
{% for info in extruder_info %}
{% set variable = printer["gcode_macro RESUME"][info.name] %}
{% if variable.restore %}
@ -661,10 +653,40 @@ gcode:
[gcode_macro _USER_CANCEL]
gcode:
{% if 'z' in printer.toolhead.homed_axes %}
G91
G1 Z30 F600 ; lift nozzle
{% endif %}
M84
[gcode_macro _CLIENT_EXTRUDE]
description: Extrudes, if the extruder is hot enough
gcode:
##### get user parameters or use default #####
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
{% set absolute_extrude = printer.gcode_move.absolute_extrude %}
##### end of definitions #####
{% if printer.toolhead.extruder != '' %}
{% if printer[printer.toolhead.extruder].can_extrude %}
{% if use_fw_retract %}
{% if length < 0 %}
G10
{% else %}
G11
{% endif %}
{% else %}
M83
G1 E{length} F{(speed|float|abs) * 60}
{% if absolute_extrude %}
M82
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
@ -674,10 +696,10 @@ variable_restore_idle_timeout: 0
variable_idle_state: False
variable_filament_state: ""
variable_change_runout: ""
variable_autoshift: False
variable_resume_extruder: ""
gcode:
##### get user parameters or use default #####
{% set autoshift = printer.save_variables.variables.auto_change_nozzle|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set do_resume = False %}
{% set prompt_txt = [] %}
@ -699,16 +721,10 @@ gcode:
{% set do_resume = True %}
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
#### Printer comming out of regular PAUSE state ####
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
_ACT_RESUME DO_RESUME={do_resume}
@ -730,17 +746,17 @@ gcode:
_CLIENT_EXTRUDE
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None"
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE="False"
{% else %}
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and continue." % msg) %}
{% endif %}
##### Generate User Information box in case of abort #####
{% if not (filament_state and do_resume) %}
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
RESPOND TYPE=command MSG="action:prompt_begin RESUME ABORTED !"
{% for element in prompt_txt %}
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
{% endfor %}
@ -791,14 +807,14 @@ gcode:
{% if not filament_state %}
PAUSE
{% if autoshift_extruder %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE=True
{% if printer["gcode_macro RESUME"].filament_state[target_extruder] %}
RESUME
{% else %}
RESPOND TYPE=error MSG='{"Noting! All extruders filament has been run out."}'
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Noting! \"%s\" filament has been run out." % printer.toolhead.extruder}'
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=error MSG='{"Noting! %s extruder filament has been run out." % msg}'
{% endif %}
{% endif %}

View File

@ -102,10 +102,10 @@ cs_pin: PE8
spi_software_sclk_pin: PB3
spi_software_mosi_pin: PB5
spi_software_miso_pin: PB4
run_current: 1.0
run_current: 1.5
interpolate: True
sense_resistor: 0.075
stealthchop_threshold: 200
stealthchop_threshold: 300
[stepper_y]
step_pin: PD4
@ -180,7 +180,7 @@ max_temp: 80
[verify_heater chamber]
max_error: 120
hysteresis: 0
hysteresis: 100
check_gain_time: 3600
heating_gain: 0.01
@ -200,6 +200,10 @@ max_power: 1.0
shutdown_speed: 0.0
kick_start_time: 1.0
[controller_fan _controller_fan]
pin: PC6
fan_speed: 1
[delayed_gcode INIT_LIGHT]
initial_duration:0.01
gcode:
@ -215,7 +219,7 @@ initial_WHITE: 0
[neopixel _Status_light]
pin: PB8
chain_count: 1
color_order: RGB
color_order: GRB
initial_RED: 0.3
initial_GREEN: 0.3
initial_BLUE: 0.3
@ -438,12 +442,9 @@ gcode:
{% set x_home = true %}
{% endif %}
{% if printer.toolhead.extruder != 'extruder' or x_home %}
SAVE_GCODE_STATE NAME=park0
G90
_PARK_{printer.toolhead.extruder}
ACTIVATE_EXTRUDER EXTRUDER=extruder
SET_DUAL_CARRIAGE CARRIAGE=0
RESTORE_GCODE_STATE NAME=park0
{% if "z" in printer.toolhead.homed_axes | lower %}
SET_GCODE_OFFSET Z=0 MOVE=1
{% else %}
@ -451,12 +452,15 @@ gcode:
{% endif %}
SET_GCODE_OFFSET Y=0
SET_GCODE_OFFSET X=0
SAVE_GCODE_STATE NAME=park0
G90
G1 X0 F6000
RESTORE_GCODE_STATE NAME=park0
{% endif %}
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Left extruder filament has been run out."}'
{% endif %}
[gcode_macro _PARK_extruder1]
@ -481,11 +485,12 @@ gcode:
{% endif %}
{% if printer.toolhead.extruder != 'extruder1' or x_home %}
SAVE_GCODE_STATE NAME=park1
G90
_PARK_{printer.toolhead.extruder}
ACTIVATE_EXTRUDER EXTRUDER=extruder1
SET_DUAL_CARRIAGE CARRIAGE=1
SAVE_GCODE_STATE NAME=park1
G90
G1 X455 F6000
RESTORE_GCODE_STATE NAME=park1
{% if "z" in printer.toolhead.homed_axes | lower %}
SET_GCODE_OFFSET Z={z_offset} MOVE=1
@ -494,43 +499,53 @@ gcode:
{% endif %}
SET_GCODE_OFFSET Y={y_offset}
SET_GCODE_OFFSET X={x_offset}
G1 X455 F6000
{% endif %}
{% else %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
RESPOND TYPE=error MSG='{"Noting! Right extruder filament has been run out."}'
{% endif %}
[gcode_macro ACTIVATE_COPY_MODE]
gcode:
SET_GCODE_VARIABLE MACRO=_SET_DUAL_MODE VARIABLE=dual_mode VALUE='"copy"'
_SET_DUAL_MODE MODE="copy"
[gcode_macro ACTIVATE_MIRROR_MODE]
gcode:
SET_GCODE_VARIABLE MACRO=_SET_DUAL_MODE VARIABLE=dual_mode VALUE='"mirror"'
_SET_DUAL_MODE MODE="mirror"
[gcode_macro _ACTIVATE_PRIMARY_MODE]
gcode:
SET_GCODE_VARIABLE MACRO=_SET_DUAL_MODE VARIABLE=dual_mode VALUE='"primary"'
_SET_DUAL_MODE MODE="primary"
[gcode_macro _SET_DUAL_MODE]
variable_dual_mode: "primary"
gcode:
{% set mode = params.MODE|default("primary") %}
{% if 'xyz' in printer.toolhead.homed_axes %}
{% if mode == "copy" or mode == "mirror"%}
G90
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X0 F6000
ACTIVATE_EXTRUDER EXTRUDER=extruder
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
{% if dual_mode == "copy" %}
{% endif %}
{% if mode == "copy" %}
G1 X227.5 F6000
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
{% elif dual_mode == "mirror" %}
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
{% elif mode == "mirror" %}
G1 X455 F6000
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR
{% endif %}
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
{% elif mode == "primary" %}
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
ACTIVATE_EXTRUDER EXTRUDER=extruder
SET_DUAL_CARRIAGE CARRIAGE=0
{% endif %}
_RUNOUT_HANDLE
{% endif %}
SET_GCODE_VARIABLE MACRO=_SET_DUAL_MODE VARIABLE=dual_mode VALUE='"{mode}"'
[gcode_macro PROBE_SERVO_OPEN]
gcode:
@ -588,6 +603,10 @@ gcode:
G92 E0
M117 Printing start...
[gcode_macro PRINT_START]
gcode:
START_PRINT
[gcode_macro END_PRINT]
gcode:
M400
@ -595,10 +614,14 @@ gcode:
G1 E-10.0 F3600
G91
{% if printer["dual_carriage"] is defined %}
{% set dual_mode = printer['gcode_macro _SET_DUAL_MODE'].dual_mode|default("primary") %}
{% if dual_mode == "copy" or dual_mode == "mirror" %}
G0 Z1.00 F6000
G90
_PARK_extruder
_PARK_extruder1
_ACTIVATE_PRIMARY_MODE
G91
{% endif %}
{% else %}
G0 Z1.00 X20.0 Y20.0 F6000
{% endif %}
@ -609,6 +632,10 @@ gcode:
G0 Y300 F3600
# BED_MESH_CLEAR
[gcode_macro PRINT_END]
gcode:
END_PRINT
[gcode_macro SET_LED]
rename_existing: LED_SET
gcode:
@ -633,23 +660,14 @@ gcode:
LED_SET LED={led_name} RED={red} GREEN={green} BLUE={blue} WHITE={white} INDEX={index} TRANSMIT={transmit} SYNC={sync}
{% endif %}
[gcode_macro SET_X_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_x_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
[gcode_macro SET_Y_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_y_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
[gcode_macro SET_Z_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_z_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
[led_effect runstate]
leds:
neopixel:_Status_light
autostart: true
frame_rate: 24
hot: extruder extruder1 heater_bed chamber
layers:
status 0 0 top (0.3, 0.3, 0.3),( 0, 0, 0.3),(0, 0.3, 0)
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 90
@ -681,15 +699,18 @@ gcode:
rename_existing: C28
gcode:
{% set homing_cmd = ''%}
{% set dual_mode = printer['gcode_macro _SET_DUAL_MODE'].dual_mode|default("primary") %}
{% set save_dual_mode = printer['gcode_macro _SET_DUAL_MODE'].dual_mode|default("primary") %}
{% set do_x = 'X' in params|string %}
{% set do_y = 'Y' in params|string %}
{% set do_z = 'Z' in params|string %}
{% if save_dual_mode == "copy" or save_dual_mode == "mirror" %}
_SET_DUAL_MODE MODE="primary"
{% endif %}
{% if do_x %}
{% set homing_cmd = 'X ' %}
{% endif %}
{% if do_y %}
SET_STEPPER_ENABLE STEPPER=stepper_y ENABLE=1
{% set homing_cmd = homing_cmd + 'Y ' %}
{% endif %}
{% if do_z %}
@ -700,6 +721,7 @@ gcode:
{% endif %}
{% endif %}
{% if not homing_cmd %}
SET_STEPPER_ENABLE STEPPER=stepper_y ENABLE=1
C28
_RESTORE_DEFAULT_EXTRUDER
{% else %}
@ -708,8 +730,8 @@ gcode:
_RESTORE_DEFAULT_EXTRUDER
{% endif %}
{% endif %}
{% if dual_mode == "copy" or dual_mode == "mirror" %}
_SET_DUAL_MODE
{% if save_dual_mode == "copy" or save_dual_mode == "mirror" %}
_SET_DUAL_MODE MODE={save_dual_mode}
{% endif %}
[gcode_macro M109]
@ -824,8 +846,10 @@ gcode:
{'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %}
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" %
(printer.toolhead.extruder, value)}'
{% if printer[printer.toolhead.extruder].temperature < value-3 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature, this may take some time." % msg}'
{% endif %}
{% for info in extruder_info %}
{% set variable = printer["gcode_macro RESUME"][info.name] %}
{% if variable.restore %}
@ -846,13 +870,13 @@ gcode:
[gcode_macro _RESUME_EXTRUDER]
gcode:
{% set client = printer['gcode_macro RESUME']|default({}) %}
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
{% set autoshift_on = params.AUTOSHIFT|default(False)|lower %}
{% set toolchange = client.change_runout|lower|default("") %}
{% set extruder_filament = client.filament_state.extruder %}
{% set extruder1_filament = client.filament_state.extruder1 %}
{% set resume_extruder = client.resume_extruder|default("extruder") %}
{% if autoshift_on %}
{% if autoshift_on == 'true' %}
{% if extruder_filament and extruder1_filament %}
{% if toolchange == "t0" %}
{% set resume_extruder = "extruder" %}
@ -885,10 +909,40 @@ gcode:
[gcode_macro _USER_CANCEL]
gcode:
{% if 'z' in printer.toolhead.homed_axes %}
G91
G1 Z30 F600 ; lift nozzle
{% endif %}
M84
[gcode_macro _CLIENT_EXTRUDE]
description: Extrudes, if the extruder is hot enough
gcode:
##### get user parameters or use default #####
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
{% set absolute_extrude = printer.gcode_move.absolute_extrude %}
##### end of definitions #####
{% if printer.toolhead.extruder != '' %}
{% if printer[printer.toolhead.extruder].can_extrude %}
{% if use_fw_retract %}
{% if length < 0 %}
G10
{% else %}
G11
{% endif %}
{% else %}
M83
G1 E{length} F{(speed|float|abs) * 60}
{% if absolute_extrude %}
M82
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
@ -899,10 +953,10 @@ variable_idle_state: False
variable_resume_dual: False
variable_filament_state: ""
variable_change_runout: ""
variable_autoshift: False
variable_resume_extruder: ""
gcode:
##### get user parameters or use default #####
{% set autoshift = printer.save_variables.variables.auto_change_nozzle|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set do_resume = False %}
{% set prompt_txt = [] %}
@ -930,16 +984,10 @@ gcode:
{% set do_resume = True %}
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
#### Printer comming out of regular PAUSE state ####
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
_ACT_RESUME DO_RESUME={do_resume}
@ -961,17 +1009,17 @@ gcode:
_CLIENT_EXTRUDE
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None"
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE="False"
{% else %}
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and continue." % msg) %}
{% endif %}
##### Generate User Information box in case of abort #####
{% if not (filament_state and do_resume) %}
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
RESPOND TYPE=command MSG="action:prompt_begin RESUME ABORTED !"
{% for element in prompt_txt %}
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
{% endfor %}
@ -1029,14 +1077,14 @@ gcode:
{% if not filament_state %}
PAUSE
{% if autoshift_extruder and idex == False %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=autoshift VALUE=True
{% if printer["gcode_macro RESUME"].filament_state[target_extruder] %}
RESUME
{% else %}
RESPOND TYPE=error MSG='{"Noting! All extruders filament has been run out."}'
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Noting! \"%s\" filament has been run out." % printer.toolhead.extruder}'
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=error MSG='{"Noting! %s extruder filament has been run out." % msg}'
{% endif %}
{% endif %}
@ -1126,8 +1174,8 @@ gcode:
{% set svv = printer.save_variables.variables %}
{% set adaptive_mesh = svv.adaptive_meshing|default(false)|lower %}
{% if printer["dual_carriage"] is defined %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if current_idex_mode == "copy" or idex_mode == "mirror" %}
{% set current_idex_mode = printer['gcode_macro _SET_DUAL_MODE'].dual_mode|default("primary") %}
{% if current_idex_mode == "copy" or current_idex_mode == "mirror" %}
{% set idex_mode = True %}
{% endif %}
{% endif %}

1556
klippy/extras/led_effect.py Normal file

File diff suppressed because it is too large Load Diff

View File

@ -53,10 +53,10 @@ class PrintStats:
def note_cancel(self):
self._note_finish("cancelled")
def _note_finish(self, state, error_message = ""):
self.error_message = error_message
if self.print_start_time is None:
return
self.state = state
self.error_message = error_message
eventtime = self.reactor.monotonic()
self.total_duration = eventtime - self.print_start_time
if self.filament_used < 0.0000001: