gcode宏
变量
SET_GCODE_VARIABLE 命令可以在宏调用之间保存状态。变量名不能包含任何大写字符。
‵‵‵
[gcode_macro start_probe]
variable_bed_temp: 0
gcode:
保存参数到bed_temp变量
SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target}
禁用热床
M140
进行探测
PROBE
在结束时调用finish_probe脚本
finish_probe
[gcode_macro finish_probe]
gcode:
恢复热床温度
M140 S{printer[“gcode_macro start_probe”].bed_temp}
‵‵‵
if
‵‵‵
{% set tooltemp = 300.0 %}
{% if tooltemp <= printer.extruder.temperature %}
M118 热端的温度还不够热!
{% else %}
M118 热端温度现在已经足够热了
{% endif %}
‵‵‵
{% 和%} 这两个符号中间的东西与普通的G代码不同,你要把它当作逻辑判断来执行
循环
‵‵‵
[gcode_macro clean_nozzle]
gcode:
{% set wipe_count = 8 %}
SAVE_GCODE_STATE NAME=clean_nozzle_state
G90
G0 Z15 F300
{% for wipe in range(wipe_count) %}
{% for coordinate in [(275, 4),(235, 4)] %}
G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000
{% endfor %}
{% endfor %}
RESTORE_GCODE_STATE NAME=clean_nozzle_state
‵‵‵
保存恢复状态
‵‵‵
[gcode_macro MOVE_UP] # 向上移动
gcode:
SAVE_GCODE_STATE NAME=my_move_up_state # 保存名称为my_move_up_state的G代码状态
G91 # 相对模式
G1 Z10 F300 # 慢慢往上移动 10mm,5mm/s
RESTORE_GCODE_STATE NAME=my_move_up_state # 恢复名称为my_move_up_state的G代码状态
‵‵‵
调用
‵‵‵
;show message
{ action_respond_info(“Pause zhop exceeds maximum Z height.”) }
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
SAVE_GCODE_STATE NAME=PAUSEPARK
SET_IDLE_TIMEOUT TIMEOUT=43200
‵‵‵