Files
2024-01-09 17:33:02 +08:00

171 lines
4.8 KiB
INI
Executable File

# Createdate: 2023/08/09
# Ender-3V3 KE
[gcode_macro PRINTER_PARAM]
variable_z_safe_pause: 0.0
variable_z_safe_g28: 5.0
variable_max_x_position: 220.0
variable_max_y_position: 220.0
variable_max_z_position: 240.0
variable_auto_g29: 0
variable_x_home_pos: -3
variable_y_home_pos: -5
gcode:
[force_move]
enable_force_move: true
[gcode_macro xyz_ready]
variable_x_ready: 0
variable_y_ready: 0
variable_z_ready: 0
variable_x_moved: 0
variable_y_moved: 0
variable_z_moved: 0
variable_safe_z: 5
gcode:
[gcode_macro _IF_HOME_Z]
gcode:
{% if printer['gcode_macro xyz_ready'].z_ready|int == 1 %}
{% if printer.toolhead.position.z|int < 10 %}
{% set z_park = 10.0 - printer.toolhead.position.z|int %}
G91
G1 z{z_park} F600
G90
{% endif %}
{% else %}
{% if printer['gcode_macro xyz_ready'].z_moved|int == 0 %}
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1
{% endif %}
{% endif %}
[gcode_macro _IF_MOVE_X]
gcode:
{% if printer['gcode_macro xyz_ready'].x_moved|int == 0 %}
{% if printer['gcode_macro xyz_ready'].y_moved|int == 0 %}
{% set SAFE_Z = printer['gcode_macro xyz_ready'].safe_z|int%}
FORCE_MOVE STEPPER=stepper_z DISTANCE={SAFE_Z} VELOCITY=20
{% endif %}
# FORCE_MOVE STEPPER=stepper_x DISTANCE=10 VELOCITY=20
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_moved VALUE=1
{% endif %}
[gcode_macro _IF_MOVE_Y]
gcode:
{% if printer['gcode_macro xyz_ready'].y_moved|int == 0 %}
{% if printer['gcode_macro xyz_ready'].x_moved|int == 0 %}
{% set SAFE_Z =printer['gcode_macro xyz_ready'].safe_z|int%}
FORCE_MOVE STEPPER=stepper_z DISTANCE={SAFE_Z} VELOCITY=20
{% endif %}
# FORCE_MOVE STEPPER=stepper_y DISTANCE=10 VELOCITY=20
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_moved VALUE=1
{% endif %}
[gcode_macro _HOME_X]
gcode:
_IF_MOVE_X
{% if printer['gcode_macro xyz_ready'].z_moved|int == 1 %}
{% if printer.toolhead.position.z|int < 10 %}
{% set z_park = 10.0 - printer.toolhead.position.z|int %}
G91
G1 z{z_park} F600
G90
{% endif %}
{% endif %}
G28 X
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1
G1 x10 F4800
G28 x
G91 X5 F2000
G90
[gcode_macro _HOME_Y]
gcode:
_IF_MOVE_Y
{% if printer['gcode_macro xyz_ready'].z_moved|int == 1 %}
{% if printer.toolhead.position.z|int < 10 %}
{% set z_park = 10.0 - printer.toolhead.position.z|int %}
G91
G1 z{z_park} F600
G90
{% endif %}
{% endif %}
G28 Y
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1
G1 Y10 F4800
G28 Y
G91
G1 y5 F2000
G90
[gcode_macro _HOME_Z]
gcode:
{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}
{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}
_IF_HOME_Z
{% endif %}
{% endif %}
{% if printer['gcode_macro xyz_ready'].x_ready|int == 0 %}
_HOME_X
{% endif %}
{% if printer['gcode_macro xyz_ready'].y_ready|int == 0 %}
_HOME_Y
{% endif %}
G90
{% set bl_offset = printer.configfile.settings['bltouch'] %}
{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position/2 - bl_offset.x_offset %}
{% set y_park = printer['gcode_macro PRINTER_PARAM'].max_y_position/2 - bl_offset.y_offset %}
{action_respond_info("x_park = %s \n" % (x_park))}
{action_respond_info("y_park = %s \n" % (y_park))}
G1 x{x_park} y{y_park} F6000
G4 P500 # P1000
G28 Z
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1
G1 X110Y110Z5 F2400
[homing_override]
axes: xyz
gcode:
BED_MESH_SAVE
BED_MESH_CLEAR
{% set x_axes = printer.toolhead.homed_axes %}
{% if x_axes is defined and x_axes[0] is defined %}
{action_respond_info(
"x_axes: %s \n"
% (x_axes))}
{% else %}
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_moved VALUE=0
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_moved VALUE=0
SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0
{action_respond_info(
"axes is NULL\n")}
{% endif %}
{% set home_all = 'X' not in params and 'Y' not in params %}
{% if 'Z' in params and 'X' not in params and 'Y' not in params %}
{% if x_axes[0] is defined and x_axes[1] is defined %}
{% set home_all = 0 %}
{% endif %}
{% endif %}
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %} # G28
{% if home_all or 'X' in params %} # G28 / G28 X / G28 X Y / G28 X Y Z
_HOME_X
{% endif %}
{% if home_all or 'Y' in params %} # G28 / G28 Y / G28 X Y / G28 X Y Z
_HOME_Y
{% endif %}
{% if home_all or 'Z' in params %} # G28 / G28 Z / G28 X Y Z
_HOME_Z
BED_MESH_PROFILE LOAD="default"
{% endif %}
G4 P500