自动切头功能
This commit is contained in:
parent
fa74a82184
commit
ef148604da
@ -361,18 +361,25 @@ gcode:
|
||||
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
|
||||
{% set printing = printer.print_stats.state == "printing" %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro T1]
|
||||
gcode:
|
||||
@ -381,18 +388,25 @@ gcode:
|
||||
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
|
||||
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
|
||||
{% set x_offset = x_offset - 59 %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
|
||||
{% set printing = (printer.print_stats.state == "printing") %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro PROBE_SERVO_OPEN]
|
||||
gcode:
|
||||
@ -648,13 +662,57 @@ gcode:
|
||||
else True if params.RESTORE|default(1)|int == 1 else False %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||
{% endfor %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_extruder VALUE="'{printer.toolhead.extruder}'"
|
||||
|
||||
[gcode_macro _RESUME_EXTRUDER]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
|
||||
{% 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 extruder_filament and extruder1_filament %}
|
||||
{% if toolchange == "t0" %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif toolchange == "t1" %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if extruder_filament %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif extruder1_filament %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if printer.toolhead.extruder != resume_extruder %}
|
||||
T{0 if resume_extruder|default("extruder") == "extruder" else 1 }
|
||||
{% endif %}
|
||||
_FILAMENT_UPDATE
|
||||
|
||||
[gcode_macro _EXTRUDER_TEMPERATURE_HANDLE]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set last_extruder_temp = client.last_extruder_temp %}
|
||||
{% set last_extruder1_temp = client.last_extruder1_temp %}
|
||||
{% set resume_extruder = client.resume_extruder|lower %}
|
||||
{% if resume_extruder != printer.toolhead.extruder %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{last_extruder1_temp}"
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder1_temp VALUE="{last_extruder_temp}"
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
{% set extruder_info = [
|
||||
{'index': 0, 'name': 'last_extruder_temp'},
|
||||
{'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)}'
|
||||
{% for info in extruder_info %}
|
||||
{% set variable = printer["gcode_macro RESUME"][info.name] %}
|
||||
{% if variable.restore %}
|
||||
@ -685,23 +743,27 @@ variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
||||
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||
variable_restore_idle_timeout: 0
|
||||
variable_idle_state: False
|
||||
variable_filament_state: False
|
||||
variable_filament_state: ""
|
||||
variable_change_runout: ""
|
||||
variable_autoshift: False
|
||||
variable_resume_extruder: ""
|
||||
gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
{% set do_resume = False %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% set runout = True %}
|
||||
##### end of definitions #####
|
||||
_FILAMENT_UPDATE
|
||||
_RESUME_EXTRUDER AUTOSHIFT={autoshift}
|
||||
_EXTRUDER_TEMPERATURE_HANDLE
|
||||
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
#### Printer comming from timeout idle state ####
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||
# we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise
|
||||
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||
{client.user_temp_macro|default("")}
|
||||
{% set do_resume = True %}
|
||||
{% elif can_extrude %}
|
||||
@ -724,17 +786,20 @@ gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||
{% set auto_extruder = params.AUTO|default(False) %}
|
||||
{% set sp_move = client.speed_move|default(velocity) %}
|
||||
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% if filament_state %}
|
||||
{% if do_resume %}
|
||||
{% if do_resume or auto_extruder %}
|
||||
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||
{client.user_resume_macro|default("")}
|
||||
_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) %}
|
||||
{% endif %}
|
||||
@ -776,7 +841,7 @@ gcode:
|
||||
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE="{{'runout': runout, 'extruder': runout_resume, 'extruder1': runout_resume1}}"
|
||||
|
||||
[gcode_macro _RUNOUT_HANDLE]
|
||||
description: filament state update
|
||||
@ -788,11 +853,22 @@ gcode:
|
||||
|
||||
[gcode_macro _RUNOUT_PAUSE]
|
||||
gcode:
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set svv = printer.save_variables.variables %}
|
||||
{% set autoshift_extruder = svv.auto_change_nozzle|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set target_extruder = "extruder1" if printer.toolhead.extruder == "extruder" else "extruder" %}
|
||||
{% if not filament_state %}
|
||||
{% set msg_extruder = "extruder" if printer.toolhead.extruder == "extruder" else "extruder1" %}
|
||||
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||
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}'
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
########################################
|
||||
@ -1022,7 +1098,7 @@ timeout: 5.
|
||||
verbose: False
|
||||
|
||||
[gcode_macro _NOZZLE_Z_OFFSET_CALIBRATE]
|
||||
gcode:
|
||||
gcode:
|
||||
G28 X Y
|
||||
G28 Z
|
||||
G91
|
||||
|
@ -297,18 +297,25 @@ gcode:
|
||||
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
|
||||
{% set printing = printer.print_stats.state == "printing" %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro T1]
|
||||
gcode:
|
||||
@ -317,18 +324,25 @@ gcode:
|
||||
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
|
||||
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
|
||||
{% set x_offset = x_offset - 59 %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
|
||||
{% set printing = (printer.print_stats.state == "printing") %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro PROBE_SERVO_OPEN]
|
||||
gcode:
|
||||
@ -584,13 +598,57 @@ gcode:
|
||||
else True if params.RESTORE|default(1)|int == 1 else False %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||
{% endfor %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_extruder VALUE="'{printer.toolhead.extruder}'"
|
||||
|
||||
[gcode_macro _RESUME_EXTRUDER]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
|
||||
{% 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 extruder_filament and extruder1_filament %}
|
||||
{% if toolchange == "t0" %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif toolchange == "t1" %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if extruder_filament %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif extruder1_filament %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if printer.toolhead.extruder != resume_extruder %}
|
||||
T{0 if resume_extruder|default("extruder") == "extruder" else 1 }
|
||||
{% endif %}
|
||||
_FILAMENT_UPDATE
|
||||
|
||||
[gcode_macro _EXTRUDER_TEMPERATURE_HANDLE]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set last_extruder_temp = client.last_extruder_temp %}
|
||||
{% set last_extruder1_temp = client.last_extruder1_temp %}
|
||||
{% set resume_extruder = client.resume_extruder|lower %}
|
||||
{% if resume_extruder != printer.toolhead.extruder %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{last_extruder1_temp}"
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder1_temp VALUE="{last_extruder_temp}"
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
{% set extruder_info = [
|
||||
{'index': 0, 'name': 'last_extruder_temp'},
|
||||
{'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)}'
|
||||
{% for info in extruder_info %}
|
||||
{% set variable = printer["gcode_macro RESUME"][info.name] %}
|
||||
{% if variable.restore %}
|
||||
@ -621,23 +679,27 @@ variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
||||
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||
variable_restore_idle_timeout: 0
|
||||
variable_idle_state: False
|
||||
variable_filament_state: False
|
||||
variable_filament_state: ""
|
||||
variable_change_runout: ""
|
||||
variable_autoshift: False
|
||||
variable_resume_extruder: ""
|
||||
gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
{% set do_resume = False %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% set runout = True %}
|
||||
##### end of definitions #####
|
||||
_FILAMENT_UPDATE
|
||||
_RESUME_EXTRUDER AUTOSHIFT={autoshift}
|
||||
_EXTRUDER_TEMPERATURE_HANDLE
|
||||
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
#### Printer comming from timeout idle state ####
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||
# we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise
|
||||
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||
{client.user_temp_macro|default("")}
|
||||
{% set do_resume = True %}
|
||||
{% elif can_extrude %}
|
||||
@ -660,17 +722,20 @@ gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||
{% set auto_extruder = params.AUTO|default(False) %}
|
||||
{% set sp_move = client.speed_move|default(velocity) %}
|
||||
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% if filament_state %}
|
||||
{% if do_resume %}
|
||||
{% if do_resume or auto_extruder %}
|
||||
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||
{client.user_resume_macro|default("")}
|
||||
_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) %}
|
||||
{% endif %}
|
||||
@ -712,7 +777,7 @@ gcode:
|
||||
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE="{{'runout': runout, 'extruder': runout_resume, 'extruder1': runout_resume1}}"
|
||||
|
||||
[gcode_macro _RUNOUT_HANDLE]
|
||||
description: filament state update
|
||||
@ -724,11 +789,22 @@ gcode:
|
||||
|
||||
[gcode_macro _RUNOUT_PAUSE]
|
||||
gcode:
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set svv = printer.save_variables.variables %}
|
||||
{% set autoshift_extruder = svv.auto_change_nozzle|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set target_extruder = "extruder1" if printer.toolhead.extruder == "extruder" else "extruder" %}
|
||||
{% if not filament_state %}
|
||||
{% set msg_extruder = "extruder" if printer.toolhead.extruder == "extruder" else "extruder1" %}
|
||||
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||
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}'
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
########################################
|
||||
@ -958,7 +1034,7 @@ timeout: 5.
|
||||
verbose: False
|
||||
|
||||
[gcode_macro _NOZZLE_Z_OFFSET_CALIBRATE]
|
||||
gcode:
|
||||
gcode:
|
||||
G28 X Y
|
||||
G28 Z
|
||||
G91
|
||||
|
@ -361,18 +361,25 @@ gcode:
|
||||
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
|
||||
{% set printing = printer.print_stats.state == "printing" %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro T1]
|
||||
gcode:
|
||||
@ -381,18 +388,25 @@ gcode:
|
||||
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
|
||||
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
|
||||
{% set x_offset = x_offset - 59 %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
|
||||
{% set printing = (printer.print_stats.state == "printing") %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro PROBE_SERVO_OPEN]
|
||||
gcode:
|
||||
@ -641,13 +655,57 @@ gcode:
|
||||
else True if params.RESTORE|default(1)|int == 1 else False %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||
{% endfor %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_extruder VALUE="'{printer.toolhead.extruder}'"
|
||||
|
||||
[gcode_macro _RESUME_EXTRUDER]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
|
||||
{% 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 extruder_filament and extruder1_filament %}
|
||||
{% if toolchange == "t0" %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif toolchange == "t1" %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if extruder_filament %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif extruder1_filament %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if printer.toolhead.extruder != resume_extruder %}
|
||||
T{0 if resume_extruder|default("extruder") == "extruder" else 1 }
|
||||
{% endif %}
|
||||
_FILAMENT_UPDATE
|
||||
|
||||
[gcode_macro _EXTRUDER_TEMPERATURE_HANDLE]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set last_extruder_temp = client.last_extruder_temp %}
|
||||
{% set last_extruder1_temp = client.last_extruder1_temp %}
|
||||
{% set resume_extruder = client.resume_extruder|lower %}
|
||||
{% if resume_extruder != printer.toolhead.extruder %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{last_extruder1_temp}"
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder1_temp VALUE="{last_extruder_temp}"
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
{% set extruder_info = [
|
||||
{'index': 0, 'name': 'last_extruder_temp'},
|
||||
{'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)}'
|
||||
{% for info in extruder_info %}
|
||||
{% set variable = printer["gcode_macro RESUME"][info.name] %}
|
||||
{% if variable.restore %}
|
||||
@ -678,23 +736,29 @@ variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
||||
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||
variable_restore_idle_timeout: 0
|
||||
variable_idle_state: False
|
||||
variable_filament_state: False
|
||||
variable_filament_state: ""
|
||||
variable_change_runout: ""
|
||||
variable_autoshift: False
|
||||
variable_resume_extruder: ""
|
||||
gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
{% set do_resume = False %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% set runout = True %}
|
||||
##### end of definitions #####
|
||||
_FILAMENT_UPDATE
|
||||
_RESUME_EXTRUDER AUTOSHIFT={autoshift}
|
||||
_EXTRUDER_TEMPERATURE_HANDLE
|
||||
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
|
||||
#### Printer comming from timeout idle state ####
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||
# we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise
|
||||
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||
{client.user_temp_macro|default("")}
|
||||
{% set do_resume = True %}
|
||||
{% elif can_extrude %}
|
||||
@ -717,17 +781,20 @@ gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||
{% set auto_extruder = params.AUTO|default(False) %}
|
||||
{% set sp_move = client.speed_move|default(velocity) %}
|
||||
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% if filament_state %}
|
||||
{% if do_resume %}
|
||||
{% if do_resume or auto_extruder %}
|
||||
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||
{client.user_resume_macro|default("")}
|
||||
_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) %}
|
||||
{% endif %}
|
||||
@ -769,7 +836,7 @@ gcode:
|
||||
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE="{{'runout': runout, 'extruder': runout_resume, 'extruder1': runout_resume1}}"
|
||||
|
||||
[gcode_macro _RUNOUT_HANDLE]
|
||||
description: filament state update
|
||||
@ -781,11 +848,22 @@ gcode:
|
||||
|
||||
[gcode_macro _RUNOUT_PAUSE]
|
||||
gcode:
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set svv = printer.save_variables.variables %}
|
||||
{% set autoshift_extruder = svv.auto_change_nozzle|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set target_extruder = "extruder1" if printer.toolhead.extruder == "extruder" else "extruder" %}
|
||||
{% if not filament_state %}
|
||||
{% set msg_extruder = "extruder" if printer.toolhead.extruder == "extruder" else "extruder1" %}
|
||||
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||
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}'
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
########################################
|
||||
@ -1015,7 +1093,7 @@ timeout: 5.
|
||||
verbose: False
|
||||
|
||||
[gcode_macro _NOZZLE_Z_OFFSET_CALIBRATE]
|
||||
gcode:
|
||||
gcode:
|
||||
G28 X Y
|
||||
G28 Z
|
||||
G91
|
||||
|
@ -297,18 +297,25 @@ gcode:
|
||||
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
|
||||
{% set printing = printer.print_stats.state == "printing" %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
SET_SERVO SERVO=switch_nozzle angle=45
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro T1]
|
||||
gcode:
|
||||
@ -317,18 +324,25 @@ gcode:
|
||||
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
|
||||
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
|
||||
{% set x_offset = x_offset - 59 %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
|
||||
{% set printing = (printer.print_stats.state == "printing") %}
|
||||
{% if filament_insert or printing == False %}
|
||||
SET_SERVO SERVO=switch_nozzle angle=135
|
||||
G4 P500
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder1 filament has been run out."}'
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
SET_SERVO SERVO=switch_nozzle angle=225
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
_RUNOUT_HANDLE
|
||||
|
||||
[gcode_macro PROBE_SERVO_OPEN]
|
||||
gcode:
|
||||
@ -577,13 +591,57 @@ gcode:
|
||||
else True if params.RESTORE|default(1)|int == 1 else False %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||
{% endfor %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_extruder VALUE="'{printer.toolhead.extruder}'"
|
||||
|
||||
[gcode_macro _RESUME_EXTRUDER]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
|
||||
{% 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 extruder_filament and extruder1_filament %}
|
||||
{% if toolchange == "t0" %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif toolchange == "t1" %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if extruder_filament %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif extruder1_filament %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if printer.toolhead.extruder != resume_extruder %}
|
||||
T{0 if resume_extruder|default("extruder") == "extruder" else 1 }
|
||||
{% endif %}
|
||||
_FILAMENT_UPDATE
|
||||
|
||||
[gcode_macro _EXTRUDER_TEMPERATURE_HANDLE]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set last_extruder_temp = client.last_extruder_temp %}
|
||||
{% set last_extruder1_temp = client.last_extruder1_temp %}
|
||||
{% set resume_extruder = client.resume_extruder|lower %}
|
||||
{% if resume_extruder != printer.toolhead.extruder %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{last_extruder1_temp}"
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder1_temp VALUE="{last_extruder_temp}"
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
{% set extruder_info = [
|
||||
{'index': 0, 'name': 'last_extruder_temp'},
|
||||
{'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)}'
|
||||
{% for info in extruder_info %}
|
||||
{% set variable = printer["gcode_macro RESUME"][info.name] %}
|
||||
{% if variable.restore %}
|
||||
@ -614,23 +672,29 @@ variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
||||
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||
variable_restore_idle_timeout: 0
|
||||
variable_idle_state: False
|
||||
variable_filament_state: False
|
||||
variable_filament_state: ""
|
||||
variable_change_runout: ""
|
||||
variable_autoshift: False
|
||||
variable_resume_extruder: ""
|
||||
gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
{% set do_resume = False %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% set runout = True %}
|
||||
##### end of definitions #####
|
||||
_FILAMENT_UPDATE
|
||||
_RESUME_EXTRUDER AUTOSHIFT={autoshift}
|
||||
_EXTRUDER_TEMPERATURE_HANDLE
|
||||
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
|
||||
#### Printer comming from timeout idle state ####
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||
# we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise
|
||||
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||
{client.user_temp_macro|default("")}
|
||||
{% set do_resume = True %}
|
||||
{% elif can_extrude %}
|
||||
@ -653,17 +717,20 @@ gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||
{% set auto_extruder = params.AUTO|default(False) %}
|
||||
{% set sp_move = client.speed_move|default(velocity) %}
|
||||
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% if filament_state %}
|
||||
{% if do_resume %}
|
||||
{% if do_resume or auto_extruder %}
|
||||
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||
{client.user_resume_macro|default("")}
|
||||
_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) %}
|
||||
{% endif %}
|
||||
@ -705,7 +772,7 @@ gcode:
|
||||
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE="{{'runout': runout, 'extruder': runout_resume, 'extruder1': runout_resume1}}"
|
||||
|
||||
[gcode_macro _RUNOUT_HANDLE]
|
||||
description: filament state update
|
||||
@ -717,11 +784,22 @@ gcode:
|
||||
|
||||
[gcode_macro _RUNOUT_PAUSE]
|
||||
gcode:
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set svv = printer.save_variables.variables %}
|
||||
{% set autoshift_extruder = svv.auto_change_nozzle|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set target_extruder = "extruder1" if printer.toolhead.extruder == "extruder" else "extruder" %}
|
||||
{% if not filament_state %}
|
||||
{% set msg_extruder = "extruder" if printer.toolhead.extruder == "extruder" else "extruder1" %}
|
||||
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||
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}'
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
########################################
|
||||
@ -951,7 +1029,7 @@ timeout: 5.
|
||||
verbose: False
|
||||
|
||||
[gcode_macro _NOZZLE_Z_OFFSET_CALIBRATE]
|
||||
gcode:
|
||||
gcode:
|
||||
G28 X Y
|
||||
G28 Z
|
||||
G91
|
||||
|
@ -438,25 +438,33 @@ gcode:
|
||||
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
{% if "x" not in printer.toolhead.homed_axes %}
|
||||
G28 X
|
||||
{% 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 %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %}
|
||||
{% set printing = printer.print_stats.state == "printing" %}
|
||||
{% if filament_insert or printing == False %}
|
||||
{% if "x" not in printer.toolhead.homed_axes %}
|
||||
G28 X
|
||||
{% set x_home = true %}
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
G1 X0 F6000
|
||||
{% 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 %}
|
||||
SET_GCODE_OFFSET Z=0
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y=0
|
||||
SET_GCODE_OFFSET X=0
|
||||
G1 X0 F6000
|
||||
{% endif %}
|
||||
{% else %}
|
||||
PAUSE
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
|
||||
RESPOND TYPE=error MSG='{"Noting! extruder filament has been run out."}'
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro _PARK_extruder1]
|
||||
@ -472,26 +480,34 @@ gcode:
|
||||
{% set y_offset = svv.dual_y_offset|default(0)|float %}
|
||||
{% set z_offset = svv.dual_z_offset|default(0)|float %}
|
||||
|
||||
{% if "x" not in printer.toolhead.homed_axes %}
|
||||
G28 X
|
||||
{% set x_home = true %}
|
||||
{% 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
|
||||
RESTORE_GCODE_STATE NAME=park1
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %}
|
||||
{% set printing = (printer.print_stats.state == "printing") %}
|
||||
{% if filament_insert or printing == False %}
|
||||
{% if "x" not in printer.toolhead.homed_axes %}
|
||||
G28 X
|
||||
{% set x_home = true %}
|
||||
{% endif %}
|
||||
SET_GCODE_OFFSET Y={y_offset}
|
||||
SET_GCODE_OFFSET X={x_offset}
|
||||
G1 X455 F6000
|
||||
|
||||
{% 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
|
||||
RESTORE_GCODE_STATE NAME=park1
|
||||
{% if "z" in printer.toolhead.homed_axes | lower %}
|
||||
SET_GCODE_OFFSET Z={z_offset} MOVE=1
|
||||
{% else %}
|
||||
SET_GCODE_OFFSET Z={z_offset}
|
||||
{% 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."}'
|
||||
{% endif %}
|
||||
|
||||
|
||||
@ -791,13 +807,17 @@ gcode:
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_dual VALUE=True
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_extruder VALUE="'{printer.toolhead.extruder}'"
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
{% set extruder_info = [
|
||||
{'index': 0, 'name': 'last_extruder_temp'},
|
||||
{'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)}'
|
||||
{% for info in extruder_info %}
|
||||
{% set variable = printer["gcode_macro RESUME"][info.name] %}
|
||||
{% if variable.restore %}
|
||||
@ -815,6 +835,46 @@ gcode:
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
[gcode_macro _RESUME_EXTRUDER]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set autoshift_on = params.AUTOSHIFT|default(False) %}
|
||||
{% 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 extruder_filament and extruder1_filament %}
|
||||
{% if toolchange == "t0" %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif toolchange == "t1" %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if extruder_filament %}
|
||||
{% set resume_extruder = "extruder" %}
|
||||
{% elif extruder1_filament %}
|
||||
{% set resume_extruder = "extruder1" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if printer.toolhead.extruder != resume_extruder %}
|
||||
T{0 if resume_extruder|default("extruder") == "extruder" else 1 }
|
||||
{% endif %}
|
||||
_FILAMENT_UPDATE
|
||||
|
||||
[gcode_macro _EXTRUDER_TEMPERATURE_HANDLE]
|
||||
gcode:
|
||||
{% set client = printer['gcode_macro RESUME']|default({}) %}
|
||||
{% set last_extruder_temp = client.last_extruder_temp %}
|
||||
{% set last_extruder1_temp = client.last_extruder1_temp %}
|
||||
{% set resume_extruder = client.resume_extruder|lower %}
|
||||
{% if resume_extruder != printer.toolhead.extruder %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{ last_extruder1_temp }"
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder1_temp VALUE="{ last_extruder_temp }"
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro _USER_CANCEL]
|
||||
gcode:
|
||||
G91
|
||||
@ -829,33 +889,35 @@ variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||
variable_restore_idle_timeout: 0
|
||||
variable_idle_state: False
|
||||
variable_resume_dual: False
|
||||
variable_filament_state: False
|
||||
variable_filament_state: ""
|
||||
variable_change_runout: ""
|
||||
variable_autoshift: False
|
||||
variable_resume_extruder: ""
|
||||
gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
{% set do_resume = False %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% set runout = True %}
|
||||
##### end of definitions #####
|
||||
{% if printer["dual_carriage"] is defined %}
|
||||
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
|
||||
{% if resume_dual %}
|
||||
_FILAMENT_UPDATE
|
||||
{% if resume_dual %}
|
||||
RESTORE_DUAL_CARRIAGE_STATE
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_dual VALUE=False
|
||||
{% endif %}
|
||||
{% else %}
|
||||
_RESUME_EXTRUDER AUTOSHIFT={autoshift}
|
||||
{% endif %}
|
||||
_EXTRUDER_TEMPERATURE_HANDLE
|
||||
|
||||
_FILAMENT_UPDATE
|
||||
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||
#### Printer comming from timeout idle state ####
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||
# we need to use the unicode (\u00B0) for the ¡ã as py2 env's would throw an error otherwise
|
||||
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||
{client.user_temp_macro|default("")}
|
||||
{% set do_resume = True %}
|
||||
{% elif can_extrude %}
|
||||
@ -878,17 +940,20 @@ gcode:
|
||||
##### get user parameters or use default #####
|
||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||
{% set auto_extruder = params.AUTO|default(False) %}
|
||||
{% set sp_move = client.speed_move|default(velocity) %}
|
||||
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||
{% set prompt_txt = [] %}
|
||||
{% if filament_state %}
|
||||
{% if do_resume %}
|
||||
{% if do_resume or auto_extruder %}
|
||||
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||
{client.user_resume_macro|default("")}
|
||||
_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) %}
|
||||
{% endif %}
|
||||
@ -930,7 +995,7 @@ gcode:
|
||||
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE="{{'runout': runout, 'extruder': runout_resume, 'extruder1': runout_resume1}}"
|
||||
|
||||
[gcode_macro _RUNOUT_HANDLE]
|
||||
description: filament state update
|
||||
@ -942,12 +1007,29 @@ gcode:
|
||||
|
||||
[gcode_macro _RUNOUT_PAUSE]
|
||||
gcode:
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||
{% set svv = printer.save_variables.variables %}
|
||||
{% set autoshift_extruder = svv.auto_change_nozzle|default(False) %}
|
||||
{% set filament_state = printer['gcode_macro RESUME'].filament_state.runout|default(False) %}
|
||||
{% set target_extruder = "extruder1" if printer.toolhead.extruder == "extruder" else "extruder" %}
|
||||
{% set idex = False %}
|
||||
{% if printer["dual_carriage"] is defined %}
|
||||
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
|
||||
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
|
||||
{% set idex = True %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if not filament_state %}
|
||||
{% set runout = printer['filament_switch_sensor extruder'].filament_detected %}
|
||||
{% set msg_extruder = "extruder1" if runout else "extruder" %}
|
||||
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||
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}'
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
########################################
|
||||
|
Loading…
x
Reference in New Issue
Block a user