supermerill / SuperSlicer

G-code generator for 3D printers (Prusa, Voron, Creality, etc.)
4.11k stars 519 forks source link

Too much flow in fills and flow control of solid fill is missing #2348

Open CuredPrusa opened 2 years ago

CuredPrusa commented 2 years ago

Version

Version 2.3.57 Build: SuperSlicer_2.3.57.10

Operating system type + version

Operating System: Windows System Architecture: 64 bit Windows Version: Windows 10 (build 19043), 64-bit edition Total RAM size [MB]: 34,287MB

Behavior

Parameters: Fill patern is not "(filled)", "Enforce_full_fill_volume" is off, nozzle is 0.8, line is 0.82, layer is 0.32, PLA.

There's no flow control of solid fill, but I have found a workaround if just one top solid layer is enough -I reduce "over_bridge_flow_ratio". However, that solid layer above the bridge is not changing the flow then (why??), but it is changing a pattern density. Ok, this could actually fix the overflow problem, but it's not right.

Screenshot (24) Screenshot (26) Screenshot (27) Screenshot (28) Screenshot (29)

I think this is a bug, at least related to "above the bridge" flow control. But here's a new feature request: To fine tune the perfection of a print, each line type should have its own flow adjustment.

supermerill commented 2 years ago

project file?

Note that the flow for the fills, as for the perimeter is made to be exact. if it's not, you have to change the filament flow multiplier to get the right flow. If your filament is not fluid enough (to allow it to flow on small void spaces), you can also set the filament max overlap to a lower value.

CCS86 commented 2 years ago

I have found the "flow over bridge" to be non-functional.

CuredPrusa commented 2 years ago

Thanks for response supermerill. Unfortunatelly I can't get any flows running good. I expect 100% to be matching by calculation and then I play with more or less to fine tune. But 100% in my case is just bulges. Lines like perimeters, brim, infill are fine. Could it be that calculation for big nozzle has some bug? Here's the project. TestFlow_BE.zip

CuredPrusa commented 2 years ago

I have found the "flow over bridge" to be non-functional.

So I guess it's a bug, related to flow over bridge

CuredPrusa commented 2 years ago

Some picture of print, with and without flow correction with correction without correction n

supermerill commented 2 years ago

use filament extrusion mult. TestFlow_BE.zip

@CCS86 it works well. Maybe you're confused because it create overlap instead of cahnging the E values.

CuredPrusa commented 2 years ago

I wrote already: normal infill lines, perimeter lines, brim lines -those are fine, good bonding, not overextruded. Extrusion multiplier works for all extruded plastic as far as I know. But I tested it anyway, And exactly as I thought, walls which were good before are missing width now.

unnamed

CuredPrusa commented 2 years ago

My personal conclusion after observation.

Each time when Slicer has to automatically calculate...

...and that is always related to...

**1. Gap Fill

  1. Bridge
  2. Bottom
  3. Top
  4. Solid**

...the Slicer is calculating:

It could be that this is coming from Prusa. It could be that this is not visible to users of "normal" small nozzles. Maybe magnitude of error is related to nozzle size. Maybe it's even beneficial with smaller nozzle, for better overlap. But with larger nozzle it's delivering unwanted overextrusion. Please note, I’m not even close to software developer, so I’m just guessing by observing the printer output.

In my picture of "good" top layer is visible that there are simply too many lines in top fill. Impossible to handle with normal flow. Then I manually reduce the flow to 75%, in order to match too dense lines.

supermerill commented 2 years ago

You're the only one having this problem. If you can show me with numbers that the gcode is outputting too much plastic on solid areas vs perimeters, then I'll look into it again.

CuredPrusa commented 2 years ago

Ok, I understand. I can't check the code to define this, I'm not that skilled. I think it's enough for anyone who is interested, to check my project, pictures, screenshots, description, it's easy to reproduce issue with attached project.

However, I'm sincerely grateful to have ability to tweak flows (which are available), so I can find the sweetspot easily by testing separate segments of my object. The only two things that are missing for perfect control are

Thanks.

CCS86 commented 2 years ago

Okay, I see why you think it works, and I think it doesn't... that compensation is only being applied to infill lines, not to perimeters.

Here is a project that shows even with "above bridge flow" set to 200%, the layer above the bridge is identical to subsequent layers in line spacing, and in volumetric flow.

Bridge Test.3mf.txt

IMO, this "above bridge flow" compensation, would give a better result, if it were just a flow rate compensation applied to all lines over the bridged area. Why? Because the whole purpose is to recover a bridged area that has likely sagged. For the same reason that bridge flow is calculated very differently than normal flow (round extrusion vs thin rectangle), there isn't true support under the "above bridge" lines. With under constrained extrusions, printed with flow rates for a well constrained extrusion, you will just get spindly little lines, not likely to bond well to anything. Changing the line spacing to print more spindly lines doesn't seem like the best solution.

A flow rate compensation, on the other hand, would help push extra filament into the under-extruded bridge, helping to fill these gaps and increase bonding with the bridge layer.

CuredPrusa commented 2 years ago

I appreciate your effort.
Yes, extrusion multiplier affects ALL extrusion which is happening during the print, regardless of line type.

Right now I have to disable "gap fill" because at narrow sections of my object, too much gap fill (yes, this is what I'm getting - too much gap fill flow) protrudes through outer perimeter by means of deformation (not smooth surface as it would be without gap fill). And I can’t do anything about it. My perimeters are fine, good measurements, except when middle section gets overfilled. I can’t have outer perimeter first because it makes nasty seam.

Let's park my complaint about automatic calculation for a while. We're obviously getting different results and certainly having a different point of view. Let’s focus on my humble “new feature request” - selectable flow rate compensation for each line type. I can’t imagine how difficult would be to implement this in software. But that would solve all flow issues I’m experiencing. A simple test would show me the best settings for each line type. Then I select preferable flow for each project, save it in slicer’s project and get perfect and predictable print every time. It could be even related to filament type/manufacturer, experience will tell.

CCS86 commented 2 years ago

I appreciate your effort. Yes, extrusion multiplier affects ALL extrusion which is happening during the print, regardless of line type.

Right now I have to disable "gap fill" because at narrow sections of my object, too much gap fill (yes, this is what I'm getting - too much gap fill flow) protrudes through outer perimeter by means of deformation (not smooth surface as it would be without gap fill). And I can’t do anything about it. My perimeters are fine, good measurements, except when middle section gets overfilled. I can’t have outer perimeter first because it makes nasty seam.

Let's park my complaint about automatic calculation for a while. We're obviously getting different results and certainly having a different point of view. Let’s focus on my humble “new feature request” - selectable flow rate compensation for each line type. I can’t imagine how difficult would be to implement this in software. But that would solve all flow issues I’m experiencing. A simple test would show me the best settings for each line type. Then I select preferable flow for each project, save it in slicer’s project and get perfect and predictable print every time. It could be even related to filament type/manufacturer, experience will tell.

This is the setting you should be trying first: image

CuredPrusa commented 2 years ago

@CCS86 OMG, you're Gold !!! Too much narrow focus blured my vision of bigger picture! Thanks!

CuredPrusa commented 2 years ago

Guys, please don't get me wrong. I'm just trying to contribute to make the best available slicer even better. That's all.

tripp396 commented 2 years ago

I appreciate your effort. Yes, extrusion multiplier affects ALL extrusion which is happening during the print, regardless of line type. Right now I have to disable "gap fill" because at narrow sections of my object, too much gap fill (yes, this is what I'm getting - too much gap fill flow) protrudes through outer perimeter by means of deformation (not smooth surface as it would be without gap fill). And I can’t do anything about it. My perimeters are fine, good measurements, except when middle section gets overfilled. I can’t have outer perimeter first because it makes nasty seam. Let's park my complaint about automatic calculation for a while. We're obviously getting different results and certainly having a different point of view. Let’s focus on my humble “new feature request” - selectable flow rate compensation for each line type. I can’t imagine how difficult would be to implement this in software. But that would solve all flow issues I’m experiencing. A simple test would show me the best settings for each line type. Then I select preferable flow for each project, save it in slicer’s project and get perfect and predictable print every time. It could be even related to filament type/manufacturer, experience will tell.

This is the setting you should be trying first: image

Because this post is recent and I am running into a similar issue, will setting this very low, or to 0% reduce the amount of filament pushed through? I am seeing a certain model getting too much filament on the gap fills resulting in a bumpy layer just on gap fills.

Sorry if this is considered high-jacking, just looking to clarify!

CuredPrusa commented 2 years ago

Hi tripp396 Nice to see you aboard, so I'm not all alone in the darkness of quirky codes. If you set gap fill overlap to 0%, it will reduce the gap fill flow. Theoretically it will be small amount of fill, not touching perimeters, but that's not true. It will bond and overlap just fine. However, I did find it strange behaving, seems like flow progressively builds up as the line progresses. But I have to test again and verify to claim that problem.

CCS86 commented 2 years ago

What speed are you guys printing gap fill?

Bowden or direct drive?

CuredPrusa commented 2 years ago

IMG_3936 In this example, Gap fill is moving from right to left (stopped before end of the line). I can say there is approx 15% more fill at the end of the gap fill line than at the beginning. After 11 conically expanding layers, the beginning of gap fill is almost flat (raised by maybe 0.05mm), while the end of gap fill goes by 0.15mm above general surface. It's hard to see on the picture, but this discrepancy was visible from very begining of print.

Parameters: Object width: 65mm Filament PLA 1.75 Direct extruder E3D on Marlin Nozzle 0.8 Layer: 0.32 Flow compensation: 1 Overlap Gap Fill: 0% 3 perimeters, 1.0mm No changes in geometrical design of lines from height 1.6 (layer 5) to the top. Infill progressively increases width by each layer due to conical object, low layers (up to 4) had big infill because of only 2 perimeters. Perimeter speed: 25mm/s Gap Fill speed: 20mm/s Print order: from inner wall to outer wall, then gap fill. Temperature: 199C Fan: 100%

Isn’t the purpose of gap fill to “fill the gap” and not to add more than the gap actually needs? Is there some reason why someone would like to overfill the gap and ruin the flatness of layer? Can I use negative value on Overlap Gap Fill parameter?

CuredPrusa commented 2 years ago

Here's a piece of that gcode, if someone can see something from it... GapFillTest1.txt .

supermerill commented 2 years ago

@tripp396

Maybe the tooltip isn't clear enough?

This setting allows you to reduce the overlap between the perimeters and the gap fill. 100% means that no gaps are left, and 0% means that the gap fill won't touch the perimeters. May be useful to reduce if you can see the gapfill on the exterrnal surface

How can "no gap" vs " won't touch" can be done at equal flow? maybe I should change it to

100% means that the full volume is filled, and 0% means that the gap fill is thin enough to not touch the perimeters.

?

CuredPrusa commented 2 years ago

I just want to brag here a little.... I have achieved a perfect top for my model! This is not possible with quirky Cura, let alone Prusa with limited adjustments. Only SuperSlicer was able to do it right. I've made it in three layers: 1 bridge 1 solid 1 top

It's imposible to make or expect better with 0.8 nozzle! Thank you Merill!

IMG_3959 Screenshot (43) Screenshot (44)