# KCNC Probe Wrapper API # KCNC_PROBE AXIS={axis} DELTA={delta} RESOLUTION={resolution} UNTIL=contact # KCNC_PROBE AXIS={axis} DELTA={delta} RESOLUTION={resolution} UNTIL=nocontanct [gcode_macro kcnc_probed] variable_last_x_status: 0 variable_last_x_pos: "-" variable_last_y_status: 0 variable_last_y_pos: "-" variable_last_z_status: 0 variable_last_z_pos: "-" variable_next_gcodemacro: "-" gcode: RESPOND PREFIX="info" MSG="Probe result: see variables" [gcode_macro kcnc_probe] gcode: {% set axis = params.AXIS | string %} {% set delta = params.DELTA | float %} {% set resolution = params.RESOLUTION | float %} {% set until = params.UNTIL | string %} # {% set gcodemacro = params.GCODEMACRO | string %} SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_x_pos VALUE="'-'" SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_x_status VALUE="0" SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_y_pos VALUE="'-'" SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_y_status VALUE="0" SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_z_pos VALUE="'-'" SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_z_status VALUE="0" # {% if params.gcodemacro is defined %} # SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=next_gcodemacro VALUE="{gcodemacro}" # {% else %} # SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=next_gcodemacro VALUE="'-'" # {% endif %} RESPOND PREFIX="info" MSG="Probing on {axis}, distance {delta}, resolution {resolution}, until {until} using probe-endstop method and running {printer['gcode_macro kcnc_probed'].next_gcodemacro}" {% set moves_left = delta/resolution %} ## negative moves {% if moves_left < 0 %} {% set moves_left = -1 * moves_left %} {% set resolution = -1 * resolution %} {% endif %} SET_GCODE_VARIABLE MACRO=kcnc_probee VARIABLE=move_axis VALUE="'{axis}'" SET_GCODE_VARIABLE MACRO=kcnc_probee VARIABLE=move_offset VALUE="{resolution}" SET_GCODE_VARIABLE MACRO=kcnc_probee VARIABLE=moves_left VALUE="{moves_left}" SET_GCODE_VARIABLE MACRO=kcnc_probee VARIABLE=move_until VALUE="'{until}'" SET_GCODE_VARIABLE MACRO=kcnc_probee VARIABLE=run_gcode_end VALUE="'kcnc_probe_finished'" SET_GCODE_VARIABLE MACRO=kcnc_probee VARIABLE=run_delayed_gcode_end VALUE="'-'" KCNC_PROBEE_RUN [gcode_macro kcnc_probe_finished] gcode: {% set axis=printer['gcode_macro kcnc_probee'].move_axis %} RESPOND PREFIX="info" MSG="Probing finished with result {printer['gcode_macro kcnc_probee'].last_hit_found}" SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_{axis}_status VALUE="{printer['gcode_macro kcnc_probee'].last_hit_found}" {% set axis = printer['gcode_macro kcnc_probee'].move_axis %} #{% if "x"==axis %} SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_x_pos VALUE={printer.gcode.gcode_position.x}; #{% endif %} #{% if "y"==axis %} SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_y_pos VALUE={printer.gcode.gcode_position.y}; #{% endif %} #{% if "z"==axis %} SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=last_z_pos VALUE={printer.gcode.gcode_position.z}; #{% endif %} RESPOND PREFIX="info" MSG="Macro: {printer['gcode_macro kcnc_probed'].next_gcodemacro}" {% if printer['gcode_macro kcnc_probed'].next_gcodemacro!="-" %} {printer['gcode_macro kcnc_probed'].next_gcodemacro} SET_GCODE_VARIABLE MACRO=kcnc_probed VARIABLE=next_gcodemacro VALUE="'-'" {% endif %}