修复自动切头开关逻辑,优化恢复打印弹窗内容

This commit is contained in:
魏瑞鹏 2024-12-27 15:29:04 +08:00
parent 765bc8dc22
commit 34b6971b41
5 changed files with 185 additions and 45 deletions

View File

@ -667,13 +667,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 +711,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 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature to %3.1f\u00B0C, this may take some time" % (msg, 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 %}
@ -736,6 +738,34 @@ gcode:
G1 Z30 F600 ; lift nozzle
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 +775,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 %}
@ -793,14 +823,13 @@ 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 msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, please heat up again and press resume" % msg) %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and press resume" % msg) %}
{% 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) %}
@ -855,7 +884,6 @@ 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 %}

View File

@ -603,13 +603,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 +647,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 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature to %3.1f\u00B0C, this may take some time" % (msg, 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 %}
@ -672,6 +674,34 @@ gcode:
G1 Z30 F600 ; lift nozzle
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 +711,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 %}
@ -729,14 +759,13 @@ 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 msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, please heat up again and press resume" % msg) %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and press resume" % msg) %}
{% 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) %}
@ -791,7 +820,6 @@ 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 %}

View File

@ -660,13 +660,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 +704,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 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature to %3.1f\u00B0C, this may take some time" % (msg, 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 %}
@ -729,6 +731,34 @@ gcode:
G1 Z30 F600 ; lift nozzle
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 +768,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 = [] %}
@ -788,14 +818,13 @@ 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 msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, please heat up again and press resume" % msg) %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and press resume" % msg) %}
{% 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) %}
@ -850,7 +879,6 @@ 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 %}

View File

@ -596,13 +596,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 +640,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 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature to %3.1f\u00B0C, this may take some time" % (msg, 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 %}
@ -665,6 +667,34 @@ gcode:
G1 Z30 F600 ; lift nozzle
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 +704,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 = [] %}
@ -724,14 +754,13 @@ 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 msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, please heat up again and press resume" % msg) %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and press resume" % msg) %}
{% 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) %}
@ -786,7 +815,6 @@ 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 %}

View File

@ -824,8 +824,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 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature to %3.1f\u00B0C, this may take some time" % (msg, 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 +848,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" %}
@ -889,6 +891,34 @@ gcode:
G1 Z30 F600 ; lift nozzle
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 +929,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 = [] %}
@ -955,14 +985,13 @@ 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 msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, please heat up again and press resume" % msg) %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and press resume" % msg) %}
{% 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) %}
@ -1024,7 +1053,6 @@ 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 %}