优化双头打印时断电续打可能出现的异常问题
This commit is contained in:
parent
35572fdf47
commit
55e60aecd2
@ -432,7 +432,7 @@ gcode:
|
|||||||
M191 S{CHAMBER_TEMP}
|
M191 S{CHAMBER_TEMP}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
G92 E0
|
G92 E0
|
||||||
M117 Printing star...
|
M117 Printing start...
|
||||||
|
|
||||||
[gcode_macro END_PRINT]
|
[gcode_macro END_PRINT]
|
||||||
gcode:
|
gcode:
|
||||||
@ -790,9 +790,9 @@ gcode:
|
|||||||
########################################
|
########################################
|
||||||
|
|
||||||
[delayed_gcode _CHECK_POWER_LOSS_RECOVERY]
|
[delayed_gcode _CHECK_POWER_LOSS_RECOVERY]
|
||||||
initial_duration: 3.5
|
initial_duration: 1
|
||||||
gcode:
|
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 %}
|
{% set enable_recovery = printer.save_variables.variables.power_loss_recovery | default(Ture) | string %}
|
||||||
{% if enable_recovery != "False" and was_interrupted == "True" %}
|
{% if enable_recovery != "False" and was_interrupted == "True" %}
|
||||||
RESPOND TYPE=command MSG="action:prompt_begin "
|
RESPOND TYPE=command MSG="action:prompt_begin "
|
||||||
@ -805,7 +805,7 @@ gcode:
|
|||||||
[gcode_shell_command _CLEAR_PLR]
|
[gcode_shell_command _CLEAR_PLR]
|
||||||
command: sh /home/klipper/klipper/scripts/clear_plr.sh
|
command: sh /home/klipper/klipper/scripts/clear_plr.sh
|
||||||
timeout: 5.
|
timeout: 5.
|
||||||
verbose: True
|
verbose: False
|
||||||
|
|
||||||
[gcode_macro _CLEAR_LAST_FILE]
|
[gcode_macro _CLEAR_LAST_FILE]
|
||||||
gcode:
|
gcode:
|
||||||
@ -823,20 +823,26 @@ gcode:
|
|||||||
[gcode_shell_command _POWER_LOSS_RECOVERY]
|
[gcode_shell_command _POWER_LOSS_RECOVERY]
|
||||||
command: /home/klipper/klipper/scripts/plr.sh
|
command: /home/klipper/klipper/scripts/plr.sh
|
||||||
timeout: 420.
|
timeout: 420.
|
||||||
verbose: True
|
verbose: False
|
||||||
|
|
||||||
[gcode_macro _RESUME_INTERRUPTED]
|
[gcode_macro _RESUME_INTERRUPTED]
|
||||||
gcode:
|
gcode:
|
||||||
|
{% set sv = printer.save_variables.variables %}
|
||||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
{% set park_dz = client.custom_park_dz|default(2.0)|abs %}
|
{% set park_dz = client.custom_park_dz|default(2.0)|abs %}
|
||||||
RESPOND TYPE=command MSG="action:prompt_end"
|
RESPOND TYPE=command MSG="action:prompt_end"
|
||||||
SET_GCODE_OFFSET Z=0 MOVE=0
|
SET_GCODE_OFFSET Z=0 MOVE=0
|
||||||
{% set z_height = params.Z_HEIGHT|default(printer.save_variables.variables.power_resume_z)|float %}
|
{% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %}
|
||||||
{% set is_paused = printer.save_variables.variables.power_loss_paused|default(False) %}
|
{% set is_paused = sv.power_loss_paused|default(False) %}
|
||||||
{% set last_file = params.GCODE_FILE|default(printer.save_variables.variables.last_file)|string %}
|
{% set last_file = params.GCODE_FILE|default(sv.last_file)|string %}
|
||||||
{% set z_offset = park_dz if is_paused else 0 %}
|
{% set hotend = sv.power_resume_extruder|default("extruder")%}
|
||||||
M118 Initiating recovery of the last print task
|
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
|
||||||
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset}\""
|
{% 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}"
|
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
|
||||||
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ gcode:
|
|||||||
M191 S{CHAMBER_TEMP}
|
M191 S{CHAMBER_TEMP}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
G92 E0
|
G92 E0
|
||||||
M117 Printing star...
|
M117 Printing start...
|
||||||
|
|
||||||
[gcode_macro END_PRINT]
|
[gcode_macro END_PRINT]
|
||||||
gcode:
|
gcode:
|
||||||
@ -783,9 +783,9 @@ gcode:
|
|||||||
########################################
|
########################################
|
||||||
|
|
||||||
[delayed_gcode _CHECK_POWER_LOSS_RECOVERY]
|
[delayed_gcode _CHECK_POWER_LOSS_RECOVERY]
|
||||||
initial_duration: 3.5
|
initial_duration: 1
|
||||||
gcode:
|
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 %}
|
{% set enable_recovery = printer.save_variables.variables.power_loss_recovery | default(Ture) | string %}
|
||||||
{% if enable_recovery != "False" and was_interrupted == "True" %}
|
{% if enable_recovery != "False" and was_interrupted == "True" %}
|
||||||
RESPOND TYPE=command MSG="action:prompt_begin "
|
RESPOND TYPE=command MSG="action:prompt_begin "
|
||||||
@ -798,7 +798,7 @@ gcode:
|
|||||||
[gcode_shell_command _CLEAR_PLR]
|
[gcode_shell_command _CLEAR_PLR]
|
||||||
command: sh /home/klipper/klipper/scripts/clear_plr.sh
|
command: sh /home/klipper/klipper/scripts/clear_plr.sh
|
||||||
timeout: 5.
|
timeout: 5.
|
||||||
verbose: True
|
verbose: False
|
||||||
|
|
||||||
[gcode_macro _CLEAR_LAST_FILE]
|
[gcode_macro _CLEAR_LAST_FILE]
|
||||||
gcode:
|
gcode:
|
||||||
@ -816,20 +816,26 @@ gcode:
|
|||||||
[gcode_shell_command _POWER_LOSS_RECOVERY]
|
[gcode_shell_command _POWER_LOSS_RECOVERY]
|
||||||
command: /home/klipper/klipper/scripts/plr.sh
|
command: /home/klipper/klipper/scripts/plr.sh
|
||||||
timeout: 420.
|
timeout: 420.
|
||||||
verbose: True
|
verbose: False
|
||||||
|
|
||||||
[gcode_macro _RESUME_INTERRUPTED]
|
[gcode_macro _RESUME_INTERRUPTED]
|
||||||
gcode:
|
gcode:
|
||||||
|
{% set sv = printer.save_variables.variables %}
|
||||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
{% set park_dz = client.custom_park_dz|default(2.0)|abs %}
|
{% set park_dz = client.custom_park_dz|default(2.0)|abs %}
|
||||||
RESPOND TYPE=command MSG="action:prompt_end"
|
RESPOND TYPE=command MSG="action:prompt_end"
|
||||||
SET_GCODE_OFFSET Z=0 MOVE=0
|
SET_GCODE_OFFSET Z=0 MOVE=0
|
||||||
{% set z_height = params.Z_HEIGHT|default(printer.save_variables.variables.power_resume_z)|float %}
|
{% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %}
|
||||||
{% set is_paused = printer.save_variables.variables.power_loss_paused|default(False) %}
|
{% set is_paused = sv.power_loss_paused|default(False) %}
|
||||||
{% set last_file = params.GCODE_FILE|default(printer.save_variables.variables.last_file)|string %}
|
{% set last_file = params.GCODE_FILE|default(sv.last_file)|string %}
|
||||||
{% set z_offset = park_dz if is_paused else 0 %}
|
{% set hotend = sv.power_resume_extruder|default("extruder")%}
|
||||||
M118 Initiating recovery of the last print task
|
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
|
||||||
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset}\""
|
{% 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}"
|
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
|
||||||
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
||||||
|
|
||||||
|
@ -558,7 +558,7 @@ gcode:
|
|||||||
M191 S{CHAMBER_TEMP}
|
M191 S{CHAMBER_TEMP}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
G92 E0
|
G92 E0
|
||||||
M117 Printing star...
|
M117 Printing start...
|
||||||
|
|
||||||
[gcode_macro END_PRINT]
|
[gcode_macro END_PRINT]
|
||||||
gcode:
|
gcode:
|
||||||
@ -946,9 +946,9 @@ gcode:
|
|||||||
########################################
|
########################################
|
||||||
|
|
||||||
[delayed_gcode _CHECK_POWER_LOSS_RECOVERY]
|
[delayed_gcode _CHECK_POWER_LOSS_RECOVERY]
|
||||||
initial_duration: 3.5
|
initial_duration: 1
|
||||||
gcode:
|
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 %}
|
{% set enable_recovery = printer.save_variables.variables.power_loss_recovery | default(Ture) | string %}
|
||||||
{% if enable_recovery != "False" and was_interrupted == "True" %}
|
{% if enable_recovery != "False" and was_interrupted == "True" %}
|
||||||
RESPOND TYPE=command MSG="action:prompt_begin "
|
RESPOND TYPE=command MSG="action:prompt_begin "
|
||||||
@ -961,7 +961,7 @@ gcode:
|
|||||||
[gcode_shell_command _CLEAR_PLR]
|
[gcode_shell_command _CLEAR_PLR]
|
||||||
command: sh /home/klipper/klipper/scripts/clear_plr.sh
|
command: sh /home/klipper/klipper/scripts/clear_plr.sh
|
||||||
timeout: 5.
|
timeout: 5.
|
||||||
verbose: True
|
verbose: False
|
||||||
|
|
||||||
[gcode_macro _CLEAR_LAST_FILE]
|
[gcode_macro _CLEAR_LAST_FILE]
|
||||||
gcode:
|
gcode:
|
||||||
@ -979,20 +979,26 @@ gcode:
|
|||||||
[gcode_shell_command _POWER_LOSS_RECOVERY]
|
[gcode_shell_command _POWER_LOSS_RECOVERY]
|
||||||
command: /home/klipper/klipper/scripts/plr.sh
|
command: /home/klipper/klipper/scripts/plr.sh
|
||||||
timeout: 420.
|
timeout: 420.
|
||||||
verbose: True
|
verbose: False
|
||||||
|
|
||||||
[gcode_macro _RESUME_INTERRUPTED]
|
[gcode_macro _RESUME_INTERRUPTED]
|
||||||
gcode:
|
gcode:
|
||||||
|
{% set sv = printer.save_variables.variables %}
|
||||||
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
{% set park_dz = client.custom_park_dz|default(2.0)|abs %}
|
{% set park_dz = client.custom_park_dz|default(2.0)|abs %}
|
||||||
RESPOND TYPE=command MSG="action:prompt_end"
|
RESPOND TYPE=command MSG="action:prompt_end"
|
||||||
SET_GCODE_OFFSET Z=0 MOVE=0
|
SET_GCODE_OFFSET Z=0 MOVE=0
|
||||||
{% set z_height = params.Z_HEIGHT|default(printer.save_variables.variables.power_resume_z)|float %}
|
{% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %}
|
||||||
{% set is_paused = printer.save_variables.variables.power_loss_paused|default(False) %}
|
{% set is_paused = sv.power_loss_paused|default(False) %}
|
||||||
{% set last_file = params.GCODE_FILE|default(printer.save_variables.variables.last_file)|string %}
|
{% set last_file = params.GCODE_FILE|default(sv.last_file)|string %}
|
||||||
{% set z_offset = park_dz if is_paused else 0 %}
|
{% set hotend = sv.power_resume_extruder|default("extruder")%}
|
||||||
M118 Initiating recovery of the last print task
|
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
|
||||||
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset}\""
|
{% 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}"
|
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
|
||||||
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
||||||
|
|
||||||
|
@ -20,8 +20,7 @@ sed -i 's/Z\./Z0\./g' /home/klipper/plrtmpA.$$
|
|||||||
z_pos=$(echo "${1} + ${3}" | bc)
|
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 -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\)/p' >> ${PLR_PATH}/"${plr}"
|
||||||
cat /home/klipper/plrtmpA.$$ | sed '/ Z'${1}'/q' | sed -ne '/\(M104\|M140\|M109\|M190\|M106\)/p' >> ${PLR_PATH}/"${plr}"
|
|
||||||
|
|
||||||
line=$(cat /home/klipper/plrtmpA.$$ | sed '/ Z'${1}'/q' | sed -n '/START_PRINT/p')
|
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}"
|
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 X5' >> ${PLR_PATH}/"${plr}"
|
||||||
echo 'G1 Y5' >> ${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 'G91' >> ${PLR_PATH}/"${plr}"
|
||||||
echo 'G1 Z-5' >> ${PLR_PATH}/"${plr}"
|
echo 'G1 Z-5' >> ${PLR_PATH}/"${plr}"
|
||||||
echo 'G90' >> ${PLR_PATH}/"${plr}"
|
echo 'G90' >> ${PLR_PATH}/"${plr}"
|
||||||
echo 'M106 S204' >> ${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')
|
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
|
if [ "${first_line}" = "" ];then
|
||||||
cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' >> ${PLR_PATH}/"${plr}"
|
cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' >> ${PLR_PATH}/"${plr}"
|
||||||
else
|
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}"
|
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}"
|
cat /home/klipper/plrtmpA.$$ | sed -e '1,/Z'${1}'/ d' | sed -ne '/ Z/,$ p' | tail -n +2 >> ${PLR_PATH}/"${plr}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
rm /home/klipper/plrtmpA.$$
|
rm /home/klipper/plrtmpA.$$
|
||||||
|
Loading…
x
Reference in New Issue
Block a user