Move print bed to front at the end of a print rather than the back

  • I have a Monoprice Maker Select Plus, currently using Ultimaker Cura 3.6.0 with the default settings for a Wanhao Duplicator i3 Plus. Right now when a print finishes, the bed retreats towards the back of the machine. I'd rather present the bed forward for easier part removal.

    Here is my ending G-Code:

    M104 S0      ;extruder heater off 
    G91 ;relative positioning
    G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
    G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
    G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
    M84 ;steppers off
    G90 ;absolute positioning

    It looks like I need to change that G28 line third from the bottom, but I'm not sure what to change it to. I've not yet done any g-code manipulation of my own. I don't know what units it's using, and it looks like it still has relative positioning, so even then I don't know it's a good idea to just set it for the max size of the bed.

    So how can I change this code to move the bed as I want?

  • 0scar

    0scar Correct answer

    3 years ago

    Note that this reference states that:

    Because the behavior of G28 is unspecified, it is recommended not to automatically include G28 in your ending GCode. On a Cartesian this will result in damaging the printed object. If you need to move the carriage at the completion of a print, use G0 or G1.

    So you need to use a G0 or G1 move.

    When using Ultimaker Cura (like many other slicers), there is built in functionality known as keywords with a complete list found here.

    The keyword machine_depth is the one that is of use to you, embed this in your end G-code in between curly brackets and it will expand to the bed size of your machine (replacing G28 X0 Y0):

    G1 X0 Y{machine_depth}

    For me this compiles to (e.g. for my coreXY printer):

    G1 X0 Y300

    To set the speed, just add the following command prior to the one above:

    G1 F2500

    Adding this line before the actual move ensures that the speed is constant, if F2500 would have been included in the move command (like G1 X0 Y{machine_depth} F2500), this defines the end speed, it would start moving at the last speed value prior to the move.

    This results in adding the following lines in your endscript:

    G1 F2500
    G1 X0 Y{machine_depth}

License under CC-BY-SA with attribution

Content dated before 7/24/2021 11:53 AM