# Cancel object (aka Marlin/RRF M486 commands) support # # Enable object exclusion [exclude_object] [gcode_macro M486] gcode: # Parameters known to M486 are as follows: # [C] Cancel the current object # [P] Cancel the object with the given index # [S] Set the index of the current object. # If the object with the given index has been canceled, this will cause # the firmware to skip to the next object. The value -1 is used to # indicate something that isn’t an object and shouldn’t be skipped. # [T] Reset the state and set the number of objects # [U] Un-cancel the object with the given index. This command will be # ignored if the object has already been skipped {% if 'exclude_object' not in printer %} {action_raise_error("[exclude_object] is not enabled")} {% endif %} {% if 'T' in params %} EXCLUDE_OBJECT RESET=1 {% for i in range(params.T | int) %} EXCLUDE_OBJECT_DEFINE NAME={i} {% endfor %} {% endif %} {% if 'C' in params %} EXCLUDE_OBJECT CURRENT=1 {% endif %} {% if 'P' in params %} EXCLUDE_OBJECT NAME={params.P} {% endif %} {% if 'S' in params %} {% if params.S == '-1' %} {% if printer.exclude_object.current_object %} EXCLUDE_OBJECT_END NAME={printer.exclude_object.current_object} {% endif %} {% else %} EXCLUDE_OBJECT_START NAME={params.S} {% endif %} {% endif %} {% if 'U' in params %} EXCLUDE_OBJECT RESET=1 NAME={params.U} {% endif %}