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.69k stars 1.93k forks source link

Dynamic overhang speed does not respect max volumetric speed #10203

Open mfish38 opened 1 year ago

mfish38 commented 1 year ago

Description of the bug

When dynamic overhang speed is used it overrides the max volumetric speed and sets speeds higher than the volumetric flow limit. This is prevents setting low overlaps to a high enough speed that they are limited by the volumetric speed instead of a set speed.

Project file & How to reproduce

3DBenchy.zip

For example, in the "speed for print moves" setting 300 for speeds I want to be limited by the volumetric flow setting in the Auto Speed section, which I have set to 10 mm3/s:

image image image

Trying to set dynamic overhang speeds to 300 causes the volumetric flow limit to be ignored producing flow rates in excess of 23 mm3/s: image image

Checklist of files included above

Version of PrusaSlicer

Version 2.6.0-alpha5-win64

Operating system

Windows 10 Pro 22H2 19045.2728

Printer model

ender 3 s1

mfish38 commented 1 year ago

In order to demonstrate expected behavior, and act as a hacky workaround, I examined the feed rate of the perimeters and bridges in the generated g code in the case where dynamic overhangs were off, and the volumetric limit was applied. I then used those as the overhang speeds in the dynamic overhang settings in the cases I wanted the volumetric flow to be the limiting factor, and setting lower speeds in cases where overhangs were having issues. The result looks like this where the perimeters are printed at the flow rate expected, and the problematic bow is lower/slower:

image