优化暂停下的断电续打 z值不对问题
This commit is contained in:
parent
d0443135bc
commit
3b927fcd22
@ -628,14 +628,16 @@ gcode:
|
||||
|
||||
[gcode_macro _USER_PAUSE]
|
||||
gcode:
|
||||
{% set extruderTools = [('extruder', 'last_extruder_temp'),
|
||||
{% set extruderTools = [('extruder', 'last_extruder_temp'),
|
||||
('extruder1', 'last_extruder1_temp')] %}
|
||||
{% for extruder_name, name in extruderTools %}
|
||||
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %}
|
||||
{% set restore = False if printer[extruder_name] == ''
|
||||
{% set act = printer.gcode_move.gcode_position %}
|
||||
SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z}
|
||||
{% for extruder_name, name in extruderTools %}
|
||||
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %}
|
||||
{% set restore = False if printer[extruder_name] == ''
|
||||
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={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||
{% endfor %}
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
@ -825,12 +827,16 @@ verbose: True
|
||||
|
||||
[gcode_macro _RESUME_INTERRUPTED]
|
||||
gcode:
|
||||
{% 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 %}
|
||||
M118 Initiating recovery of the last print task: {last_file}
|
||||
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\""
|
||||
{% 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}\""
|
||||
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
|
||||
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
||||
|
||||
|
@ -621,14 +621,16 @@ gcode:
|
||||
|
||||
[gcode_macro _USER_PAUSE]
|
||||
gcode:
|
||||
{% set extruderTools = [('extruder', 'last_extruder_temp'),
|
||||
{% set extruderTools = [('extruder', 'last_extruder_temp'),
|
||||
('extruder1', 'last_extruder1_temp')] %}
|
||||
{% for extruder_name, name in extruderTools %}
|
||||
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %}
|
||||
{% set restore = False if printer[extruder_name] == ''
|
||||
{% set act = printer.gcode_move.gcode_position %}
|
||||
SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z}
|
||||
{% for extruder_name, name in extruderTools %}
|
||||
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %}
|
||||
{% set restore = False if printer[extruder_name] == ''
|
||||
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={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||
{% endfor %}
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
@ -818,12 +820,16 @@ verbose: True
|
||||
|
||||
[gcode_macro _RESUME_INTERRUPTED]
|
||||
gcode:
|
||||
{% 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 %}
|
||||
M118 Initiating recovery of the last print task: {last_file}
|
||||
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\""
|
||||
{% 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}\""
|
||||
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
|
||||
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
||||
|
||||
|
@ -763,23 +763,25 @@ gcode:
|
||||
|
||||
[gcode_macro _USER_PAUSE]
|
||||
gcode:
|
||||
{% set extruderTools = [('extruder', 'last_extruder_temp'),
|
||||
{% set extruderTools = [('extruder', 'last_extruder_temp'),
|
||||
('extruder1', 'last_extruder1_temp')] %}
|
||||
{% for extruder_name, name in extruderTools %}
|
||||
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %}
|
||||
{% set restore = False if printer[extruder_name] == ''
|
||||
{% set act = printer.gcode_move.gcode_position %}
|
||||
SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z}
|
||||
{% for extruder_name, name in extruderTools %}
|
||||
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %}
|
||||
{% set restore = False if printer[extruder_name] == ''
|
||||
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={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||
{% endfor %}
|
||||
|
||||
{% 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' %}
|
||||
SAVE_DUAL_CARRIAGE_STATE
|
||||
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_dual VALUE=True
|
||||
{% 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' %}
|
||||
SAVE_DUAL_CARRIAGE_STATE
|
||||
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_dual VALUE=True
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro _USER_TEMP_RESUME]
|
||||
gcode:
|
||||
@ -981,12 +983,16 @@ verbose: True
|
||||
|
||||
[gcode_macro _RESUME_INTERRUPTED]
|
||||
gcode:
|
||||
{% 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 %}
|
||||
M118 Initiating recovery of the last print task: {last_file}
|
||||
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\""
|
||||
{% 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}\""
|
||||
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
|
||||
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# $1 z_height $2 filename
|
||||
# $1 z_height $2 filename $3 z_offset
|
||||
|
||||
mkdir -p ~/printer_data/gcodes/.plr
|
||||
filepath=$(sed -n "s/.*filepath *= *'\([^']*\)'.*/\1/p" /home/klipper/printer_data/config/config_variables.cfg)
|
||||
@ -17,7 +17,8 @@ file_content=$(cat "${filepath}" | awk '/; thumbnail begin/{flag=1;next}/; thumb
|
||||
|
||||
echo "$file_content" | sed 's/\r$//' | awk -F"Z" 'BEGIN{OFS="Z"} {if ($2 ~ /^[0-9]+$/) $2=$2".0"} 1' > /home/klipper/plrtmpA.$$
|
||||
sed -i 's/Z\./Z0\./g' /home/klipper/plrtmpA.$$
|
||||
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=\1/p' > ${PLR_PATH}/"${plr}"
|
||||
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}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user