# 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