OrcaSlicer
OrcaSlicer copied to clipboard
Variable fan speed
This PR implements variable cooling fan speed interpolated between overhang threshold/speed and bridge speed.
Currently there is only single fan speed above threshold, in extreme case providing the same speed for all external surface:
If some threshold is set the same speed will be applied to all overhangs and bridges:
New new bridge speed parameter is introduced:
Overhangs speed is used for threshold, and bridge speed for bridges (100% overhangs), with interpolation through the range.
20% for external wall with increase to 100% for bridges:
This PR has been written before commit deprecate overhang_speed_classic option and enable slowdown_for_curled_perimeters by default and contains support for "Classic" mode. If this mode is gone for sure the support could be removed.
Have you noticed any improvement in the actual printing? I have my doubts that this approach will work. The fan needs some time to reach the new speed, and by the time it starts blowing air at the desired flow, the nozzle has already moved on. This makes the results highly unpredictable and negatively impacts print quality.
Furthermore, frequently changing the fan speed tends to cause issues with Klipper. OrcaSlicer even had to be specially optimized to generate fewer M106 commands to mitigate this problem: https://github.com/SoftFever/OrcaSlicer/issues/804
Have you noticed any improvement in the actual printing?
Well, it's difficult to say. I implemented this because I want some cooling for curled overhangs, but not as for bridges, to get maximum layer adhesion and avoid wrapping. Results seems to be good.
The fan needs some time to reach the new speed,
I use "Fan speed-up" time option. Not perfect, but in general it works.
frequently changing the fan speed tends to cause issues with Klipper
We can either round fan speed to some reasonable value (e.g. 5%), or round (or put in already existing range 0-10-25-50-75-95) overhang degree.
Furthermore, frequently changing the fan speed tends to cause issues with Klipper. OrcaSlicer even had to be specially optimized to generate fewer M106 commands to mitigate this problem: #804
https://github.com/prusa3d/PrusaSlicer/commit/a2cabdd74bf9c1ce886cf776e88b6848923fa619 PrusaSlicer pushed a fix for this in their release build last week. Do you mind porting it over, @vovodroid? I am happy to test this feature more in the coming month to collect more data
Do you mind porting it over, @vovodroid?
I don't think so(((. There are a lot of changes and I don't use Klipper anyway.
Do you mind porting it over, @vovodroid?
I don't think so(((. There are a lot of changes and I don't use Klipper anyway.
hahaha, no worries. I was hoping it would be easy.
Edit: I will give it a try anyway, thanks for implementing this
Round fan speed to 10% to reduce speed changes.
I think it's not always preferable to have max overhang speed == bridge speed. On my setup, steep overhangs print great with 100% fan. But on long bridges the fans blow so much air that the extrusion lines are blown away, resulting in worse bridges. So it would be great to those two settings decoupled so you could set a lower bridge fan speed.
May I ask if @vovodroid will continue to resolve conflicts? I believe that minimizing speed variations while printing PETG can effectively improve print quality. Under normal circumstances, the fan size when printing PETG is around 15%, which is relatively low, but when there is overhang, the airflow should indeed be adjusted appropriately rather than the speed. Using Prusa's variable airflow to print PETG will yield better results than CuraSlicer's variable speed.
Sure, I saw new internal bridge fun and adapt this PR.
May I ask if @vovodroid will continue to resolve conflicts? I believe that minimizing speed variations while printing PETG can effectively improve print quality. Under normal circumstances, the fan size when printing PETG is around 15%, which is relatively low, but when there is overhang, the airflow should indeed be adjusted appropriately rather than the speed. Using Prusa's variable airflow to print PETG will yield better results than CuraSlicer's variable speed.
I dont disagree with your point as indeed some materials benefit from faster bridging and overhangs.
But don't forget you'll always get speed variations. What you see on the slicer is not what you'll get in the printer. For example if you encounter a 90 degree corner, the printer will slow down to 5mm/sec and then speed up again.
So the printer must be tuned to be able to print well accounting for speed changes, as they are inevitable. Nailing pressure advance is the key thing there, plus possibly reducing PA smooth time to 0.02 instead of 0.04, to minimise deviation from ideal calculated extruder movements.
Round fan speed to 10% to reduce speed changes.
Round to 5%, 10% could be too much for powerful fans.
Now fixes #9988 [BUG] Wrong overhang cooling
When will this be merged?