prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.72k stars 1.93k forks source link

[REQUEST] Move to XY then down to Z at print start #10078

Open Merlin246 opened 1 year ago

Merlin246 commented 1 year ago

Is your feature request related to a problem? Please describe. Moving to the start XY after going to first layer height Z at travel speeds causes mesh compensation to intermittently stop the travel. Also causes any oozing to get stuck to the nozzle.

Describe the solution you'd like Swap the layer change and XY positioning gcode order at the start of the print, then turn on mesh compensation.

Current GCode G29 S1 . . . G1 Z0.2 G1 Xxxx Yxxx

Requested Change G29 S2; turn off mesh bed compensation G1 Z10 G1 Xxxx Yyyy G29 S1; turn on mesh bed compensation G1 Z0.2 start print

Describe how it would work See above

Describe alternatives you've considered Not have a slightly oozing extruder... D;

Edit: Added a line to turn off mesh-bed compensation in Requested Change section.

foreachthing commented 1 year ago

Yeah, I feel you!!! For exactly that purpose, I've written this post-processing script: https://github.com/foreachthing/Slic3rPostProcessing. It does just that.

Add this line (modified to your environment) to: Print Settings -> Output options -> Post-processing scripts: "C:\Python\python.exe" "c:\pathtoyour\cloned-dir\Slic3rPostProcessing\SPP-Python\Slic3rPostProcessor.py" --xy ;

Before _(0919Shape-Box) and after _(0920Shape-Box) post-processing: image

Merlin246 commented 1 year ago

@foreachthing Wow that's great, will definitely give it a go! Is it possible to add turning off mesh compensation before the XY move and then back on just before the Z move?

Also will RRF be an issue for this?

foreachthing commented 1 year ago

turning off mesh compensation

What do you mean? All I do, is move existing lines around and adjust the speed towards first layer height. You can pull my code and change it to your needs. Or maybe make a FR in my repository, not here!

will RRF be an issue for this?

What is RRF?

Merlin246 commented 1 year ago

What do you mean?

Mesh compensation is the movement in Z to match the uneven-ness of the bed. When travelling at high speeds it can cause jerky motion if the bed (like mine) is exceptionally not flat and has to make large corrections. However at 10mm+ there is no risk in colliding with the bed so it can be turned off for that initial movement so the motion is smoother.

What is RRF?

RepRap Firmware - the firmware used by Duet3D control boards.

foreachthing commented 1 year ago

My code is optimized for an Ultimaker with a flat, glass plated bed. So, no. No meshcompensation. You'd have to come up with that yourself. RepRap? Maybe... just try it ;-)

NyxCode commented 1 year ago

Would also really like to see this implemented!