Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supporting Dense Layer - Possible Improvements #507

Closed
thierryzoller opened this issue Sep 28, 2020 · 21 comments
Closed

Supporting Dense Layer - Possible Improvements #507

thierryzoller opened this issue Sep 28, 2020 · 21 comments
Labels
bug Something isn't working as intended enhancement fix is live in the last release Please download /build the last release and try to reproduce.

Comments

@thierryzoller
Copy link

thierryzoller commented Sep 28, 2020

Latest Version.

Came across a use case where "Supporting Dense Layer" does not (?) work the way i understand it should (Or rather is wasting a lot of filament to support not much). It appears that for every small solid layer SuperSlicer adds a dense layer for the whole object, which can be quite wasteful.

See pictures and Attachment :

Layer 81 +122 + 131 - Why a dense layer on the whole obect ?
image

After layer 136 it only does dense layers.

Improvement suggestion/idea:

  • Ideamaker lays smaller dense layers just across a certain width :

image

@thierryzoller
Copy link
Author

supportdense.zip

@Pavulon87
Copy link

Switch supporting dense layer algorithm to "Anchored"
Schowek01

@thierryzoller
Copy link
Author

Thank you, that immediately improved things =)
Would you agree however that automatic doesn't work as described and/or the description best is improved? It says it will "draw the smallest surface"- which arguably it doesn't?

@supermerill
Copy link
Owner

It will create a convex shape that support the next dense infill, trying to minimize the size (abeit with a coarse optimisation, to avoid loosing too much time on it) => No turn on sparse infill.
With your object geometry, the only convex shape is the whole object, so you're better off with anchored.

That's also why the default is "auto small" where it's the automatic algorithm with a treshold to avoid filling a whole layer for a tiny support.

I'm open to suggestions if you have ideas on how to improve it.

@supermerill supermerill added the working as intended unless you prove me wrong. label Sep 29, 2020
@thierryzoller
Copy link
Author

That's also why the default is "auto small"

My default is Auto, not Auto small

@supermerill
Copy link
Owner

I'll have to change that.

@thierryzoller
Copy link
Author

Note that Auto-Small doesn't really change much in this particular use case?

@supermerill
Copy link
Owner

Not really, It's the worst case because there is nothing to anchor the denser surface unless everything is filled. And the surface to fill is significant enough (for the current threshold) to warrant a full denser infill.

Maybe the most problematic is that the speed is too low as it uses the bridge speed. It should use the bridge speed only for the perimeter and then the infill speed...

@TD5023
Copy link

TD5023 commented Oct 21, 2020

@supermerill I'm having issues with the dense layer trying to print on air. It does this in each mode, although it tends to miss differently. Would it be possible for the slicer to recognize where the previous layer's support lines/inner shell are so it can stretch over them and be anchored on all sides? As it stands, doing like what's in the picture doesn't help since it just droops down and leaves nothing to build on. Occasionally, it won't even attach on a single side and will extrude entirely on air.

Edit: When I say it does this in each mode, I mean there are instances where even automatic won't stretch across any supports and still leave everything dangling. If there were some way to force an extension and ensure support, it would be much appreciated.

float 1

float 2

@supermerill
Copy link
Owner

supermerill commented Oct 21, 2020

in auto, it only makes strait paths between the perimeters, so it should be okay-ish.

@TD5023
Copy link

TD5023 commented Oct 21, 2020

Perhaps it's a bug, then, because on parts with more detailed surfaces (character statues, mostly), auto gives me the exact same issue. It typically fills the entire interior, but there will be certain instances where it seems to behave more like anchored and only attempt to lay down filament in a small spot, which is nearly always unsupported. I can get screenshots later.

@TD5023
Copy link

TD5023 commented Oct 21, 2020

@supermerill here are some shots of an object sliced in automatic mode. You can see where it functioned properly at a lower layer, but the circled instances show what appear to be it acting like it's in anchored mode, though with nothing to support it. If there's something else I can try, please let me know. Note that it does this for all three dense layer options.
float 3
float 1
float 2

@supermerill
Copy link
Owner

can you link the project file where this happens?

@supermerill supermerill added bug Something isn't working as intended and removed working as intended unless you prove me wrong. labels Oct 21, 2020
@TD5023
Copy link

TD5023 commented Oct 21, 2020

Is the 3mf all you need for that?
SDL example.zip

@supermerill
Copy link
Owner

yes

@TD5023
Copy link

TD5023 commented Oct 21, 2020

Cool. It's in that zip folder. If you need anything else, please let me know.

supermerill added a commit that referenced this issue Oct 26, 2020
supermerill added a commit that referenced this issue Oct 28, 2020
@supermerill supermerill added the fix is live in the last release Please download /build the last release and try to reproduce. label Oct 29, 2020
@TD5023
Copy link

TD5023 commented Oct 30, 2020

@supermerill 2.2.54.2 is still presenting issues with dense infill. The following screenshots show slicing in automatic mode, but they produce the same results with small automatic and anchored. I've also attached the project file I used. I should note that every round appearing bridge layer is behaving incorrectly. The circled one is just the one I show the alternate angle of in the second image.

Edit: I just realized that this instance highlighted here is actually the first solid layer of a shell, so for some reason, the dense support layer isn't being triggered at all for it. However, some of the lower instances are still behaving the same as my earlier screenshots, so the dense support layer only tries to lay down in a small area that is completely unsupported.

Dense layer demo.zip

float 21

float 22

supermerill added a commit that referenced this issue Nov 11, 2020
@supermerill supermerill removed the fix is live in the last release Please download /build the last release and try to reproduce. label Nov 12, 2020
@supermerill
Copy link
Owner

supermerill commented Nov 15, 2020

I tested your last .3mf and the issue comes from the "combine infill every 10layers", which is impossible as you can't extrude a line with a height of 2mm. I changed it to 1 and everything seems fine
(latest nightly has been used)

@supermerill supermerill added the fix is live in the last release Please download /build the last release and try to reproduce. label Nov 15, 2020
@TD5023
Copy link

TD5023 commented Nov 15, 2020

OK, that makes sense. Since I use adaptive layer heights for everything, I intentionally use a combine infill value that will result in a larger thickness than that number of layers at the minimum height. For all the other calculations, the maximum layer height cutoff handles everything flawlessly. I've taken to just using dense infill modifiers around the problem areas. I don't intend to change the combine layer settings because I definitely don't need infill drawn out for every .04 mm layer, so I'll stay the course with modifiers. I'm assuming there isn't a reasonable way for it to detect when this would be an issue and to handle that automatically, right?

@supermerill
Copy link
Owner

It should, but it don't, so it's a bug.
But I don't have the will & time to work on that in the near term.

@Hello1024
Copy link

Hello1024 commented Jan 30, 2021

In v2.2.53, this still seems suboptimal... Is there any reason we can't have a mode like automatic, but instead of expanding the area to a perimeter line, it simply expands to any line on the layer below (including an infill line).

That way, the area will never be expanded beyond the infill line spacing.

For some infill patterns, there might be certain angles where it is a long distance to the next infill line in the worst case. In that case, a different direction for the dense layer support should be chosen.

The algorithm seems simple on the surface, but I guess implementation is harder than it looks...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working as intended enhancement fix is live in the last release Please download /build the last release and try to reproduce.
Projects
None yet
Development

No branches or pull requests

5 participants