Ultimaker / Cura

3D printer / slicing GUI built on top of the Uranium framework
GNU Lesser General Public License v3.0
6.17k stars 2.07k forks source link

Ability to scale ironing extrusion multiplier based on area/travel distance #4056

Open Chompworks opened 6 years ago

Chompworks commented 6 years ago

Application Version 3.4

Platform Mac, although I imagine this is multiplatform

Printer Multiple (seen on Ultimaker 2+, CR-10, etc)

Steps to Reproduce N/A - Feature request

Actual Results N/A - Feature request

Expected results N/A - Feature request

Additional Information

With ironing, best results are obtained by scaling the extrusion multiplier based on the surface area of flat surfaces to be ironed. For small areas (e.g. under 5cm x 5cm) you can use 10-15% and get good results. For larger areas, two to three or more times bigger than the stated small area, using 10-15% can lead to surface scarring and burn patterns, unless you boost the extrusion multiplier to the region of 20-25%. However, conversely 20-25% on small areas is too much and can lead to over extrusion building up around the ends of ironing passes, and in turn, lumpy flat surfaces.

Obviously on some models this isn't a problem. On others that combine large and small top layers, there is no easy way to address this. Would it be possible to add/expose functionality to allow scaling of the ironing extrusion multiplier based on an ironing layer's overall surface area (or even at a more basic level, the length of a zig-zag ironing travel move, which may be a simpler way to achieve the same result)

This should allow complex models to benefit from ironing, without the need for splicing gcode together.

BagelOrb commented 6 years ago

Do you have any theory as to why you see such a relation between area size and extrusion multiplier?

What do you think is the physical underlying principles here?

Chompworks commented 6 years ago

To me, I suspect its the printer struggling to keep the nozzle primed at the desired amount for long passes, especially taking into account acceleration. Thus why the extrusion multiplier needs raising to avoid the burn pattern.

But without a different approach to keeping a consistent extrusion like linear advance, scaling the extrusion multiplier may be the best way to work around this issue.

Ghostkeeper commented 6 years ago

I think scaling the extrusion multiplier would be fairly ineffective. This extrusion multiplier is all about keeping pressure on the nozzle chamber. Because the extrusion rate is so low, there is a considerable delay between the feeder increasing the feed rate and the nozzle actually extruding more. With considerable, I mean several seconds on direct drive printers and more like half a minute on Bowden-style printers.

Scaling the nozzle speed is a much more viable option. How that relation between line length and nozzle speed works though is really unknown. It must be the acceleration (since the line is continuous, just has corners) but it's hard to think of a way to encode that relation neatly.