Cancel individual objects on the build plate


  • administrators

    I've just completed an initial implementation of the M486 code that Marlin introduced recently. See https://reprap.org/wiki/G-code#M486:_Cancel_Object for the specification. I will be looking for volunteers to test this, in particular on machines with multiple tools, because tool changes that were omitted while skipping the process of printing the cancelled object may need to be executed later.

    The M486 code has the disadvantage that individual objects need to be labelled with M486 commands. AFAIK there are no slicers that do this yet, although some slicers can label objects using comments, and there are Python scripts to convert these labels into M486 commands. So I plan to supplement M486 with the following functionality:

    1. RRF will look for comments in the GCode file that identify the object being printed. It will maintain a directory linking the object number with the object name. The object name is normally the name of the STL file being printed; except that when using S3D you have to use a different process for each object if you want to distinguish between them, so the object label is the process name.

    2. RRF will also record the minimum and maximum X and Y coordinates where which extrusion has been seen for each object, to help with object identification.

    3. The "job" object of the object model shall be enhanced to include the object directory.

    4. This means it will be possible for DWC or another UI to query the object model, list the objects being printed along with their approximate XY centre coordinates, so that a user can select one. The UI would then issue a M486 command to cancel that object.

    Can anyone see a problem with this? I'm aiming it mainly at Duet 2, because more sophisticated approaches will be possible when running Duet 3 with attached SBC.


Log in to reply