CuraEngine icon indicating copy to clipboard operation
CuraEngine copied to clipboard

Cura does not lower bed to avoid highest printed part before homing X/Y at completion of One At A Time sequence print

Open ansonl opened this issue 3 years ago • 6 comments

Application Version

4.13.1

Platform

Windows 10

Qt

PyQt

Display Driver

N/A

Steps to Reproduce

  1. Place a tall (lower left) and short object (upper right) on the build surface in Cura.
  2. Set printing Sequence to One At A Time
  3. Print

Actual Results

At the end of the print, when the gcode homes X/Y, Cura does not generate gcode to lower the printing bed to the tallest object printed height so the printhead will home X/Y at the height of the last object printed which may not be the tallest object printed on the build surface. The print head will slam into the already printed objects and homing will fail.

Expected results

Cura should lower the bed to the tallest height of all printed objects before moving onto the next printed object in the sequence and before homing X/Y at the conclusion of the print.

Additional Information Capture

IMG_6471-min IMG_6472-min

ansonl avatar Feb 19 '22 14:02 ansonl

Hi @ansonl thank you for your report. Could you share your project file (file - save project) here as a .zip?

fvrmr avatar Feb 25 '22 15:02 fvrmr

@fvrmr, attached.

I don't have the original project file but was able to replicate the position and sequence with two sample objects. When I generate gcode for the attached project, the taller object on the left prints first. When the second lower object is done printing, the printer will proceed directly to homing X/Y and will hit the taller object as it homes X first.

Cura_test_sequence.zip

ansonl avatar Feb 25 '22 15:02 ansonl

This is a problem with settings, but more specifically it's a problem with the default end g-code of the Ultimaker Original+. It has this line:

G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way

In the case of one-at-a-time printing, this is dangerous.

Ghostkeeper avatar Mar 07 '22 01:03 Ghostkeeper

@Ghostkeeper If the printer doesn't move the nozzle out of the way at the end of the print, won't that create a risk of oozing depending on how the user's printer is set up? Would it make sense for all printers to lower the bed at the end below the highest print height anyways.

ansonl avatar Mar 07 '22 03:03 ansonl

Yes, it should move the head away before signalling end-of-print, because the end-of-print takes a while to process, retracts the filament, etc. Directly moving vertically tends to leave a little tail on the top of the print though. I believe that with the Ultimaker 2 we move horizontally by 20mm or so in the end g-code, and then end the print, after which the firmware moves the bed down. This is theoretically still dangerous (other objects could be hit by that 20mm move, or it could go out of bounds) but that almost never happens™.

Ghostkeeper avatar Mar 12 '22 18:03 Ghostkeeper

My end gcode only moves 2 mm horizontally to break the string after retracting, and works fine. This would almost surely be safe for arbitrary one-at-a-time prints.

richfelker avatar Mar 21 '22 21:03 richfelker