diff --git a/config/CreatBot_D1000/base.cfg b/config/CreatBot_D1000/base.cfg index 7aad0d815..36818fc88 100644 --- a/config/CreatBot_D1000/base.cfg +++ b/config/CreatBot_D1000/base.cfg @@ -432,7 +432,7 @@ gcode: M191 S{CHAMBER_TEMP} {% endif %} G92 E0 - M117 Printing star... + M117 Printing start... [gcode_macro END_PRINT] gcode: @@ -790,9 +790,9 @@ gcode: ######################################## [delayed_gcode _CHECK_POWER_LOSS_RECOVERY] -initial_duration: 3.5 +initial_duration: 1 gcode: - {% set was_interrupted = printer.save_variables.variables.was_interrupted | string %} + {% set was_interrupted = printer.save_variables.variables.was_interrupted | default(False) | string %} {% set enable_recovery = printer.save_variables.variables.power_loss_recovery | default(Ture) | string %} {% if enable_recovery != "False" and was_interrupted == "True" %} RESPOND TYPE=command MSG="action:prompt_begin " @@ -805,7 +805,7 @@ gcode: [gcode_shell_command _CLEAR_PLR] command: sh /home/klipper/klipper/scripts/clear_plr.sh timeout: 5. -verbose: True +verbose: False [gcode_macro _CLEAR_LAST_FILE] gcode: @@ -823,20 +823,26 @@ gcode: [gcode_shell_command _POWER_LOSS_RECOVERY] command: /home/klipper/klipper/scripts/plr.sh timeout: 420. -verbose: True +verbose: False [gcode_macro _RESUME_INTERRUPTED] gcode: + {% set sv = printer.save_variables.variables %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} RESPOND TYPE=command MSG="action:prompt_end" SET_GCODE_OFFSET Z=0 MOVE=0 - {% set z_height = params.Z_HEIGHT|default(printer.save_variables.variables.power_resume_z)|float %} - {% set is_paused = printer.save_variables.variables.power_loss_paused|default(False) %} - {% set last_file = params.GCODE_FILE|default(printer.save_variables.variables.last_file)|string %} - {% set z_offset = park_dz if is_paused else 0 %} - M118 Initiating recovery of the last print task - RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset}\"" + {% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %} + {% set is_paused = sv.power_loss_paused|default(False) %} + {% set last_file = params.GCODE_FILE|default(sv.last_file)|string %} + {% set hotend = sv.power_resume_extruder|default("extruder")%} + {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} + {% set z_offset_total = park_dz if is_paused else 0 %} + {% if hotend == "extruder1" %} + {% set z_offset_total = z_offset_total + z_offset %} + {% endif %} + M118 Recovery in progress, please wait + RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset_total}\"" SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}" SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False diff --git a/config/CreatBot_D600Pro2/base.cfg b/config/CreatBot_D600Pro2/base.cfg index 4e86ca656..7b51d60d7 100644 --- a/config/CreatBot_D600Pro2/base.cfg +++ b/config/CreatBot_D600Pro2/base.cfg @@ -432,7 +432,7 @@ gcode: M191 S{CHAMBER_TEMP} {% endif %} G92 E0 - M117 Printing star... + M117 Printing start... [gcode_macro END_PRINT] gcode: @@ -783,9 +783,9 @@ gcode: ######################################## [delayed_gcode _CHECK_POWER_LOSS_RECOVERY] -initial_duration: 3.5 +initial_duration: 1 gcode: - {% set was_interrupted = printer.save_variables.variables.was_interrupted | string %} + {% set was_interrupted = printer.save_variables.variables.was_interrupted | default(False) | string %} {% set enable_recovery = printer.save_variables.variables.power_loss_recovery | default(Ture) | string %} {% if enable_recovery != "False" and was_interrupted == "True" %} RESPOND TYPE=command MSG="action:prompt_begin " @@ -798,7 +798,7 @@ gcode: [gcode_shell_command _CLEAR_PLR] command: sh /home/klipper/klipper/scripts/clear_plr.sh timeout: 5. -verbose: True +verbose: False [gcode_macro _CLEAR_LAST_FILE] gcode: @@ -816,20 +816,26 @@ gcode: [gcode_shell_command _POWER_LOSS_RECOVERY] command: /home/klipper/klipper/scripts/plr.sh timeout: 420. -verbose: True +verbose: False [gcode_macro _RESUME_INTERRUPTED] gcode: + {% set sv = printer.save_variables.variables %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} RESPOND TYPE=command MSG="action:prompt_end" SET_GCODE_OFFSET Z=0 MOVE=0 - {% set z_height = params.Z_HEIGHT|default(printer.save_variables.variables.power_resume_z)|float %} - {% set is_paused = printer.save_variables.variables.power_loss_paused|default(False) %} - {% set last_file = params.GCODE_FILE|default(printer.save_variables.variables.last_file)|string %} - {% set z_offset = park_dz if is_paused else 0 %} - M118 Initiating recovery of the last print task - RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset}\"" + {% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %} + {% set is_paused = sv.power_loss_paused|default(False) %} + {% set last_file = params.GCODE_FILE|default(sv.last_file)|string %} + {% set hotend = sv.power_resume_extruder|default("extruder")%} + {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} + {% set z_offset_total = park_dz if is_paused else 0 %} + {% if hotend == "extruder1" %} + {% set z_offset_total = z_offset_total + z_offset %} + {% endif %} + M118 Recovery in progress, please wait + RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset_total}\"" SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}" SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False diff --git a/config/CreatBot_F430NX/base.cfg b/config/CreatBot_F430NX/base.cfg index 7a0138660..5d52940ce 100644 --- a/config/CreatBot_F430NX/base.cfg +++ b/config/CreatBot_F430NX/base.cfg @@ -558,7 +558,7 @@ gcode: M191 S{CHAMBER_TEMP} {% endif %} G92 E0 - M117 Printing star... + M117 Printing start... [gcode_macro END_PRINT] gcode: @@ -946,9 +946,9 @@ gcode: ######################################## [delayed_gcode _CHECK_POWER_LOSS_RECOVERY] -initial_duration: 3.5 +initial_duration: 1 gcode: - {% set was_interrupted = printer.save_variables.variables.was_interrupted | string %} + {% set was_interrupted = printer.save_variables.variables.was_interrupted | default(False) | string %} {% set enable_recovery = printer.save_variables.variables.power_loss_recovery | default(Ture) | string %} {% if enable_recovery != "False" and was_interrupted == "True" %} RESPOND TYPE=command MSG="action:prompt_begin " @@ -961,7 +961,7 @@ gcode: [gcode_shell_command _CLEAR_PLR] command: sh /home/klipper/klipper/scripts/clear_plr.sh timeout: 5. -verbose: True +verbose: False [gcode_macro _CLEAR_LAST_FILE] gcode: @@ -979,20 +979,26 @@ gcode: [gcode_shell_command _POWER_LOSS_RECOVERY] command: /home/klipper/klipper/scripts/plr.sh timeout: 420. -verbose: True +verbose: False [gcode_macro _RESUME_INTERRUPTED] gcode: + {% set sv = printer.save_variables.variables %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} RESPOND TYPE=command MSG="action:prompt_end" SET_GCODE_OFFSET Z=0 MOVE=0 - {% set z_height = params.Z_HEIGHT|default(printer.save_variables.variables.power_resume_z)|float %} - {% set is_paused = printer.save_variables.variables.power_loss_paused|default(False) %} - {% set last_file = params.GCODE_FILE|default(printer.save_variables.variables.last_file)|string %} - {% set z_offset = park_dz if is_paused else 0 %} - M118 Initiating recovery of the last print task - RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset}\"" + {% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %} + {% set is_paused = sv.power_loss_paused|default(False) %} + {% set last_file = params.GCODE_FILE|default(sv.last_file)|string %} + {% set hotend = sv.power_resume_extruder|default("extruder")%} + {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} + {% set z_offset_total = park_dz if is_paused else 0 %} + {% if hotend == "extruder1" %} + {% set z_offset_total = z_offset_total + z_offset %} + {% endif %} + M118 Recovery in progress, please wait + RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset_total}\"" SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}" SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False diff --git a/scripts/plr.sh b/scripts/plr.sh index 10ff1a869..564245cd0 100755 --- a/scripts/plr.sh +++ b/scripts/plr.sh @@ -20,8 +20,7 @@ sed -i 's/Z\./Z0\./g' /home/klipper/plrtmpA.$$ z_pos=$(echo "${1} + ${3}" | bc) cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' | grep -m 1 ' Z' | sed -ne "s/.* Z\([^ ]*\).*/SET_KINEMATIC_POSITION Z=${z_pos}/p" > ${PLR_PATH}/"${plr}" - -cat /home/klipper/plrtmpA.$$ | sed '/ Z'${1}'/q' | sed -ne '/\(M104\|M140\|M109\|M190\|M106\)/p' >> ${PLR_PATH}/"${plr}" +cat /home/klipper/plrtmpA.$$ | sed '/ Z'${1}'/q' | sed -ne '/\(M104\|M140\|M109\|M190\)/p' >> ${PLR_PATH}/"${plr}" line=$(cat /home/klipper/plrtmpA.$$ | sed '/ Z'${1}'/q' | sed -n '/START_PRINT/p') @@ -71,17 +70,25 @@ echo 'G28 X Y' >> ${PLR_PATH}/"${plr}" cat /home/klipper/plrtmpA.$$ | sed '/ Z'${1}'/q' | sed -ne '/\(ACTIVATE_COPY_MODE\|ACTIVATE_MIRROR_MODE\)/p' >> ${PLR_PATH}/"${plr}" echo 'G1 X5' >> ${PLR_PATH}/"${plr}" echo 'G1 Y5' >> ${PLR_PATH}/"${plr}" +cat /home/klipper/plrtmpA.$$ | sed -n '1,/Z'"${1}"'/p'| tac | grep -m 1 -o '^[T][01]' >> ${PLR_PATH}/"${plr}" echo 'G91' >> ${PLR_PATH}/"${plr}" echo 'G1 Z-5' >> ${PLR_PATH}/"${plr}" echo 'G90' >> ${PLR_PATH}/"${plr}" echo 'M106 S204' >> ${PLR_PATH}/"${plr}" -#tac /home/klipper/plrtmpA.$$ | sed -e '/ Z'${1}'[^0-9]*$/q' | tac | tail -n+2 | sed -ne '/ Z/,$ p' >> ${PLR_PATH}/"${plr}" first_line=$(cat /home/klipper/plrtmpA.$$ |sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' | grep -m 1 ' Z' | grep -E 'F[0-9]+' | sed -E 's/F[0-9]+/F3000/g') if [ "${first_line}" = "" ];then cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' >> ${PLR_PATH}/"${plr}" else + line=$(cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' | grep -m 1 ' Z') + z_pos=$(echo "$line" | sed -n 's/.*Z\([0-9.]*\).*/\1/p') + if [[ ${1} != $z_pos ]]; then + first_line=$(cat /home/klipper/plrtmpA.$$ |sed -e '1,/Z'${1}'/ { /Z'${1}'/!d }' | sed -ne '/ Z/,$ p' | grep -m 1 ' Z' | grep -E 'F[0-9]+' | sed -E 's/F[0-9]+/F3000/g') echo ${first_line} >> ${PLR_PATH}/"${plr}" + cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ { /Z'${1}'/!d }' | sed -ne '/ Z/,$ p' | tail -n +2 >> ${PLR_PATH}/"${plr}" + else + echo ${first_line} >> ${PLR_PATH}/"${plr}" cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' | tail -n +2 >> ${PLR_PATH}/"${plr}" + fi fi rm /home/klipper/plrtmpA.$$