更新D600Pro2与D1000配置文件

Squashed commit of the following:

commit 65bcc85584a1e915c747fff0048c932594029ff8
Merge: 20670a7b f9e470ed
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 16:59:45 2025 +0800

    Merge commit 'f9e470ed00443cddf413d21f416a78e8eb3eec27' into release

commit f9e470ed00443cddf413d21f416a78e8eb3eec27
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 16:58:07 2025 +0800

    更新D600Pro2 和D1000配置文件

commit 20670a7b09f15d00b9428daf30aebc7e0f5ccedd
Merge: 1a87ced3 70942b19
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 14:41:10 2025 +0800

    Merge commit '70942b197a58d9ff8ac150968693abe88731f838' into release

commit 70942b197a58d9ff8ac150968693abe88731f838
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 14:40:12 2025 +0800

    修改双头偏移值页面的二维码和文本

commit 673eb5cdfef36e34fc87ee9f76b68b73ade40fc0
Merge: a676def1 991003e6
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 11:23:39 2025 +0800

    Merge remote-tracking branch 'upstream/develop' into develop

commit a676def10da5d73bc705f1a18aa5779ded951982
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 11:06:17 2025 +0800

    降低全系舵机速度

commit 6e89c481c35194cf61829258788a5d31ada06af5
Author: ruipeng <1041589370@qq.com>
Date:   Fri Jan 10 10:40:20 2025 +0800

    同步更新,完善F430NX断电续打、断料自动切头、复制镜像模式等功能及参数。

commit 991003e6cbea335eca73d3783aa1837059614724
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 31 15:03:34 2024 +0800

    优化完整 简体中文和繁体中文的翻译

commit 1a177e90d09b9b9949bff2a1e3c6b12173420620
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 31 14:10:03 2024 +0800

    优化排除对象的英文语法错误

commit e8d509cb6c2883b1fadb5ab9f9ca658e61849055
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 27 16:40:52 2024 +0800

    优化耗材检测显示内容

commit 1b7670485a918cb334119175777525f768e670be
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 27 14:56:25 2024 +0800

    完善断料自动切头功能描述

commit ecc0c3dd16442497e56f5f8ab3a0c6be00bd180e
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 27 13:40:01 2024 +0800

    实现弹窗翻译功能

commit bc6d60fa183af50b7b16fea685139ca9d5df90ea
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 27 09:53:16 2024 +0800

    优化不合理名称和不合理大小写

commit 2e650926bdba1c65baa506be1b1dd09621e8d8ea
Author: zkk <1007518571@qq.com>
Date:   Thu Dec 26 15:06:11 2024 +0800

    修复10寸屏幕偏移值微调页面出界问题

commit c481b551f777a3a6cadf7be3bfcab38448b51694
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 25 15:28:26 2024 +0800

    优化移轴设置页面没有返回按钮的问题

commit 2b3c9936bd693c8fc265d6352799f382680f4920
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 25 10:05:04 2024 +0800

    删除移动设置页面中轴反转的选项

commit 5e37d59497c54086d3f1e215cbabc03254857a58
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 25 09:05:03 2024 +0800

    优化选择语言标题

commit 5214c3697baac78bd0a465e33d6f4f3c1e30862e
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 24 10:57:41 2024 +0800

    增加设置hostname功能

commit 3709a7465cc2e0d677ecc9979fb18144f7e0ec33
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 24 10:43:46 2024 +0800

    增加工厂设置中打包模式

commit 0c2a2618beb68d50601e433beef06122fb0ffd40
Author: zkk <1007518571@qq.com>
Date:   Mon Dec 23 16:25:37 2024 +0800

    实现恢复出厂设置功能

commit e3a38f85613d53a4a063e835c34c701196010c6e
Author: zkk <1007518571@qq.com>
Date:   Mon Dec 23 15:48:17 2024 +0800

    一点格式化

commit 4e9e452e8bed4b53eaaae8f0a69142de8aa50611
Author: zkk <1007518571@qq.com>
Date:   Sat Dec 21 14:20:22 2024 +0800

    优化探针偏移值校准时如果当前激活为第一个喷头时不会重复激活喷头

commit 3b85e8e8d59b0d4eae75f80d9e637fe9dc272cbe
Merge: 882850db 10ec2029
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 18 17:26:08 2024 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipperScreen into develop

commit 882850dbde648598e5f91281101d0ea01fd56d56
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 18 17:21:16 2024 +0800

    补充双喷头偏移校准页面二维码图片

commit 10ec2029eb73e66874d5a0ec492c016480641110
Author: ruipeng <1041589370@qq.com>
Date:   Wed Dec 18 17:17:18 2024 +0800

    增加自动切换喷头开关选项

commit 3d6eed9d9526b77472ba7df29014b5768c594026
Author: zkk <1007518571@qq.com>
Date:   Mon Dec 16 16:33:34 2024 +0800

    喷头偏移值校准功能的实现

commit 40ecbb3ea4827c9bac1aa271cccc958c94c1114a
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 13 09:20:00 2024 +0800

    z探针校准时指定默认激活工具头为第一个头

commit bce3caa409618ef5bc2067865940d14a1441c0f8
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 13 09:19:19 2024 +0800

    优化z探针校准时候移动过慢问题

commit 4f3aa9aa4c581ae9e7a740bd37f9e80ba064c27f
Merge: e3fd413d 1a69b518
Author: zkk <1007518571@qq.com>
Date:   Thu Dec 12 10:30:00 2024 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipperScreen into develop

commit e3fd413d6256414441e9fe653c1132b1799a5cb2
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 10 14:34:13 2024 +0800

    修复打印时没有修改z偏移值 仍提示保存z偏移的按钮的bug

commit 594fb668fe94fe907c028bf65ecced43ea8660cb
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 10 14:25:04 2024 +0800

    设置自适应调平选项默认为关闭状态

commit 1a87ced3f5725569a6b9a7ee5f5250044d01d852
Merge: 629416d1 6064a6e1
Author: zkk <1007518571@qq.com>
Date:   Fri Nov 29 10:18:32 2024 +0800

    Merge branch 'develop' into release
This commit is contained in:
张开科 2025-01-10 17:00:03 +08:00
parent 7d287f416a
commit 072f226674
2 changed files with 389 additions and 125 deletions

View File

@ -40,7 +40,7 @@ canbus_interface: can0
kinematics: cartesian
max_velocity: 300
max_accel: 5000
max_z_velocity: 10
max_z_velocity: 7
max_z_accel: 100
square_corner_velocity: 2.5
@ -51,6 +51,7 @@ mesh_min: 40,60
mesh_max: 1000, 1000
probe_count: 6,6
mesh_pps: 2,2
fade_end: 10
algorithm: bicubic
bicubic_tension: 0.2
@ -360,34 +361,57 @@ gcode:
[gcode_macro T0]
gcode:
SET_SERVO SERVO=switch_nozzle angle=135
G4 P500
SET_GCODE_OFFSET Z=0
SET_GCODE_OFFSET Y=0
SET_GCODE_OFFSET X=0
SET_SERVO SERVO=switch_nozzle angle=45
ACTIVATE_EXTRUDER EXTRUDER=extruder
_RUNOUT_HANDLE
{% 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 %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
RESPOND TYPE=error MSG='{"Noting! Left extruder filament has been run out."}'
{% endif %}
[gcode_macro T1]
gcode:
{% set sv = printer.save_variables.variables %}
{% set x_offset = sv.dual_x_offset|default(60)|float %}
{% set y_offset = sv.dual_y_offset|default(0)|float %}
{% set z_offset = sv.dual_z_offset|default(0)|float %}
SET_SERVO SERVO=switch_nozzle angle=135
G4 P500
SET_GCODE_OFFSET Z={z_offset}
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
{% set x_offset = sv.nozzle_x_offset_val|default(0)|float %}
{% 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 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 %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
RESPOND TYPE=error MSG='{"Noting! Right extruder filament has been run out."}'
{% endif %}
[gcode_macro PROBE_SERVO_OPEN]
gcode:
SET_SERVO SERVO=probe_servo angle=15
G4 P1000
G4 P2000
[gcode_macro PROBE_SERVO_CLOSE]
gcode:
@ -399,6 +423,11 @@ gcode:
_CLEAR_LAST_FILE
_RUNOUT_HANDLE
[gcode_macro _CANCEL_PRINT_BASE]
description: Call when cancelled to print
gcode:
# Nothing
[gcode_macro START_PRINT]
gcode:
{% set BED_TEMP = params.BED|default(0)|float %}
@ -434,6 +463,10 @@ gcode:
G92 E0
M117 Printing start...
[gcode_macro PRINT_START]
gcode:
START_PRINT
[gcode_macro END_PRINT]
gcode:
M400
@ -448,6 +481,10 @@ gcode:
G0 X590 Y590 F3600
# BED_MESH_CLEAR
[gcode_macro PRINT_END]
gcode:
END_PRINT
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 120
variable_purge_distance: 25
@ -477,24 +514,6 @@ gcode:
G1 E-{unload_distance} F{max_velocity} # fast-unload
RESTORE_GCODE_STATE NAME=unload_state
[gcode_macro SET_X_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_x_offset=params.S|default(-60)|float %}
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
[gcode_macro SET_Y_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_y_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
[gcode_macro SET_Z_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_z_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
[gcode_macro _ACTIVATE_DEFAULT_EXTRUDER]
gcode:
{% if printer.toolhead.extruder == 'extruder' %}
@ -638,13 +657,59 @@ 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)|lower %}
{% set toolchange = client.change_runout|lower|default("") %}
{% set extruder_filament = client.filament_state.extruder %}
{% set extruder1_filament = client.filament_state.extruder1 %}
{% set resume_extruder = client.resume_extruder|default("extruder") %}
{% if autoshift_on == 'true' %}
{% 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 %}
{% if printer[printer.toolhead.extruder].temperature < value-3 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature, this may take some time." % msg}'
{% endif %}
{% for info in extruder_info %}
{% set variable = printer["gcode_macro RESUME"][info.name] %}
{% if variable.restore %}
@ -664,10 +729,40 @@ gcode:
[gcode_macro _USER_CANCEL]
gcode:
G91
G1 Z30 F600 ; lift nozzle
{% if 'z' in printer.toolhead.homed_axes %}
G91
G1 Z30 F600 ; lift nozzle
{% endif %}
M84
[gcode_macro _CLIENT_EXTRUDE]
description: Extrudes, if the extruder is hot enough
gcode:
##### get user parameters or use default #####
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
{% set absolute_extrude = printer.gcode_move.absolute_extrude %}
##### end of definitions #####
{% if printer.toolhead.extruder != '' %}
{% if printer[printer.toolhead.extruder].can_extrude %}
{% if use_fw_retract %}
{% if length < 0 %}
G10
{% else %}
G11
{% endif %}
{% else %}
M83
G1 E{length} F{(speed|float|abs) * 60}
{% if absolute_extrude %}
M82
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
@ -675,37 +770,35 @@ 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_resume_extruder: ""
gcode:
##### get user parameters or use default #####
{% set autoshift = printer.save_variables.variables.auto_change_nozzle|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set 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 %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
#### Printer comming out of regular PAUSE state ####
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
_ACT_RESUME DO_RESUME={do_resume}
@ -714,27 +807,30 @@ 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"
{% else %}
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and continue." % msg) %}
{% endif %}
##### Generate User Information box in case of abort #####
{% if not (filament_state and do_resume) %}
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
RESPOND TYPE=command MSG="action:prompt_begin RESUME ABORTED !"
{% for element in prompt_txt %}
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
{% endfor %}
@ -766,7 +862,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
@ -778,11 +874,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 %}
{% 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 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=error MSG='{"Noting! %s extruder filament has been run out." % msg}'
{% endif %}
{% endif %}
########################################
@ -1001,3 +1108,27 @@ gcode:
_BED_MESH_CALIBRATE PROFILE={default_profile} mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y} # End of verbose
BED_MESH_PROFILE LOAD={default_profile}
########################################
# Nozzle Calibrate
########################################
[gcode_shell_command fetch_assets]
command: sh /home/klipper/klipper/scripts/fetch_assets.sh
timeout: 5.
verbose: False
[gcode_macro _NOZZLE_Z_OFFSET_CALIBRATE]
gcode:
G28 X Y
G28 Z
G91
G0 x-60 F6000
SET_GCODE_OFFSET Z=0 MOVE=0
SET_SERVO SERVO=switch_nozzle angle=225
ACTIVATE_EXTRUDER EXTRUDER=extruder1
[gcode_macro _NOZZLE_XY_OFFSET_CALIBRATE]
gcode:
RUN_SHELL_COMMAND CMD=fetch_assets PARAMS="\"Gcode\" \"D1000HS\" \"NozzleAglin.zip\""
SDCARD_PRINT_FILE FILENAME=".PresetModel/NozzleAglin.gcode"

View File

@ -51,6 +51,7 @@ mesh_min: 40,60
mesh_max: 600, 600
probe_count: 6,6
mesh_pps: 2,2
fade_end: 10
algorithm: bicubic
bicubic_tension: 0.2
@ -360,29 +361,52 @@ gcode:
[gcode_macro T0]
gcode:
SET_SERVO SERVO=switch_nozzle angle=135
G4 P500
SET_GCODE_OFFSET Z=0
SET_GCODE_OFFSET Y=0
SET_GCODE_OFFSET X=0
SET_SERVO SERVO=switch_nozzle angle=45
ACTIVATE_EXTRUDER EXTRUDER=extruder
_RUNOUT_HANDLE
{% 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 %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T0"'
RESPOND TYPE=error MSG='{"Noting! Left extruder filament has been run out."}'
{% endif %}
[gcode_macro T1]
gcode:
{% set sv = printer.save_variables.variables %}
{% set x_offset = sv.dual_x_offset|default(60)|float %}
{% set y_offset = sv.dual_y_offset|default(0)|float %}
{% set z_offset = sv.dual_z_offset|default(0)|float %}
SET_SERVO SERVO=switch_nozzle angle=135
G4 P500
SET_GCODE_OFFSET Z={z_offset}
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
{% set x_offset = sv.nozzle_x_offset_val|default(0)|float %}
{% 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 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 %}
PAUSE
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE='"T1"'
RESPOND TYPE=error MSG='{"Noting! Right extruder filament has been run out."}'
{% endif %}
[gcode_macro PROBE_SERVO_OPEN]
gcode:
@ -399,6 +423,11 @@ gcode:
_CLEAR_LAST_FILE
_RUNOUT_HANDLE
[gcode_macro _CANCEL_PRINT_BASE]
description: Call when cancelled to print
gcode:
# Nothing
[gcode_macro START_PRINT]
gcode:
{% set BED_TEMP = params.BED|default(0)|float %}
@ -434,6 +463,10 @@ gcode:
G92 E0
M117 Printing start...
[gcode_macro PRINT_START]
gcode:
START_PRINT
[gcode_macro END_PRINT]
gcode:
M400
@ -448,6 +481,10 @@ gcode:
G0 X590 Y590 F3600
# BED_MESH_CLEAR
[gcode_macro PRINT_END]
gcode:
END_PRINT
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 120
variable_purge_distance: 25
@ -477,24 +514,6 @@ gcode:
G1 E-{unload_distance} F{max_velocity} # fast-unload
RESTORE_GCODE_STATE NAME=unload_state
[gcode_macro SET_X_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_x_offset=params.S|default(-60)|float %}
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
[gcode_macro SET_Y_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_y_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
[gcode_macro SET_Z_OFFSET]
gcode:
{% set svv = printer.save_variables.variables %}
{% set dual_z_offset=params.S|default(0)|float %}
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
[gcode_macro _ACTIVATE_DEFAULT_EXTRUDER]
gcode:
{% if printer.toolhead.extruder == 'extruder' %}
@ -631,13 +650,59 @@ 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)|lower %}
{% set toolchange = client.change_runout|lower|default("") %}
{% set extruder_filament = client.filament_state.extruder %}
{% set extruder1_filament = client.filament_state.extruder1 %}
{% set resume_extruder = client.resume_extruder %}
{% if autoshift_on == 'true' %}
{% 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 %}
{% if printer[printer.toolhead.extruder].temperature < value-3 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=echo MSG='{"Restoring %s extruder temperature, this may take some time." % msg}'
{% endif %}
{% for info in extruder_info %}
{% set variable = printer["gcode_macro RESUME"][info.name] %}
{% if variable.restore %}
@ -657,10 +722,40 @@ gcode:
[gcode_macro _USER_CANCEL]
gcode:
G91
G1 Z30 F600 ; lift nozzle
{% if 'z' in printer.toolhead.homed_axes %}
G91
G1 Z30 F600 ; lift nozzle
{% endif %}
M84
[gcode_macro _CLIENT_EXTRUDE]
description: Extrudes, if the extruder is hot enough
gcode:
##### get user parameters or use default #####
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
{% set absolute_extrude = printer.gcode_move.absolute_extrude %}
##### end of definitions #####
{% if printer.toolhead.extruder != '' %}
{% if printer[printer.toolhead.extruder].can_extrude %}
{% if use_fw_retract %}
{% if length < 0 %}
G10
{% else %}
G11
{% endif %}
{% else %}
M83
G1 E{length} F{(speed|float|abs) * 60}
{% if absolute_extrude %}
M82
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
@ -668,37 +763,37 @@ 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_resume_extruder: ""
gcode:
##### get user parameters or use default #####
{% set autoshift = printer.save_variables.variables.auto_change_nozzle|default(False) %}
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set 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 %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
#### Printer comming out of regular PAUSE state ####
{% elif can_extrude %}
{% set do_resume = True %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% endif %}
_ACT_RESUME DO_RESUME={do_resume}
@ -707,27 +802,30 @@ 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"
{% else %}
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder not hot enough, will reheat and continue." % msg) %}
{% endif %}
{% else %}
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
{% set _d = prompt_txt.append("%s extruder detects no filament, please load filament and continue." % msg) %}
{% endif %}
##### Generate User Information box in case of abort #####
{% if not (filament_state and do_resume) %}
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
RESPOND TYPE=command MSG="action:prompt_begin RESUME ABORTED !"
{% for element in prompt_txt %}
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
{% endfor %}
@ -759,7 +857,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
@ -771,11 +869,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 %}
{% 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 %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
RESPOND TYPE=error MSG='{"Noting! %s extruder filament has been run out." % msg}'
{% endif %}
{% endif %}
########################################
@ -994,3 +1103,27 @@ gcode:
_BED_MESH_CALIBRATE PROFILE={default_profile} mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y} # End of verbose
BED_MESH_PROFILE LOAD={default_profile}
########################################
# Nozzle Calibrate
########################################
[gcode_shell_command fetch_assets]
command: sh /home/klipper/klipper/scripts/fetch_assets.sh
timeout: 5.
verbose: False
[gcode_macro _NOZZLE_Z_OFFSET_CALIBRATE]
gcode:
G28 X Y
G28 Z
G91
G0 x-60 F6000
SET_GCODE_OFFSET Z=0 MOVE=0
SET_SERVO SERVO=switch_nozzle angle=225
ACTIVATE_EXTRUDER EXTRUDER=extruder1
[gcode_macro _NOZZLE_XY_OFFSET_CALIBRATE]
gcode:
RUN_SHELL_COMMAND CMD=fetch_assets PARAMS="\"Gcode\" \"D600Pro2HS\" \"NozzleAglin.zip\""
SDCARD_PRINT_FILE FILENAME=".PresetModel/NozzleAglin.gcode"