Ultimaker / Cura

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

Concentric skin and infill patterns do not respect wall distribution count #13184

Open daniels220 opened 2 years ago

daniels220 commented 2 years ago

Application Version

5.1.0

Platform

macOS Big Sur

Printer

Creality CR-10S

Reproduction steps

Use concentric skin or 100%-infill patterns in a part with smoothly-varying dimensions.

Actual results

All size deviation is always applied to the innermost line or pair of lines.

Expected results

Distribution across many lines according to the wall line distribution count setting, similar to if I instead set a large wall line count. (This was the behavior under Arachne beta 2.) Or, a separate setting to control distribution for skin and/or infill would offer even more flexibility.

Checklist of files to include

Additional information & file uploads

Same models as the bug with wall distribution count I just reported, but now with only the outer wall and 100% infill: Distribution count not respected.3mf.zip

MariMakes commented 2 years ago

Hey @daniels220,

Thanks for your report. đź‘Ť

I'm not sure if I understand your issue. 🤔 You see that the variable linewidth is only applied to the inner 1 or 2 lines but you expected them to be distributed over more than 2 lines.

But I noticed that you do not have enough walls where the distribution count can be applied to, you have only 1. If you bring it up to 5 than you can see the distribution over more than 2 lines. image

Here is a video of what I'm observing. https://user-images.githubusercontent.com/40423138/188139220-7211341e-ec55-433e-ad1a-0df1f86cdad6.mp4

Is this the behavior you are looking for or is your bug something else? Can you perhaps add a drawing or a different model to illustrate your issue?

daniels220 commented 2 years ago

Right, so the whole point here is that, although they are technically not "walls", 100% concentric infill or skin is exactly like walls in every way except which line-type-specific settings (speed, width, accel/jerk, etc) are applied. In Arachne Engine beta 2, such concentric patterns used the exact same layout algorithm as walls (AFAICT), including respecting the wall distribution count, so it was possible to have concentric infill or skin that evenly distributed variations across many lines. Here's Cura 5.1, similar to your video (I tweaked the minimum wall line width as well to make it more visible):

Screen Shot 2022-09-02 at 11 52 41 AM

And Arachne beta 2 with identical settings:

Screen Shot 2022-09-02 at 12 06 52 PM

Which looks just like what 5.1 does with a high wall count:

Screen Shot 2022-09-02 at 11 52 17 AM

For whatever reason, in the final release of Cura 5, this capability has been removed. Admittedly this is a grey area between "bug" and "enhancement". I went with bug because (a) the behavior I want is not new—as I say, Arachne beta 2 already did the (IMO) right thing—and (b) AFAICT there is really no downside to this behavior, so it should be fine to make it the default and only add separate settings to control it (which certainly would qualify as an enhancement) later if there is enough demand.

As far as why I consider this behavior superior—I mean, the bottom line is why not distribute variance over many lines? But specifically I have used it to allow me to print an irregular solid part with very few line-count transitions, and therefore very few travel moves and very few visible artifacts when printing with clear filament:

Screen Shot 2022-09-02 at 12 26 04 PM

Does that make sense?

GregValiant commented 2 years ago

Just FYI There have been reports by users having trouble with the Concentric pattern whether it is used for Ironing, Infill, Support Infill, Top/Bottom layers, everywhere it is used seems to be having some issues. So my thought is that: although in this instance the problem appears to be the way the line width is being handled, that it might be something more basic going on with all things "Concentric" and this behavior might be a symptom rather than the actual bug.

daniels220 commented 2 years ago

Interesting to know, but I find that pretty unlikely, since the behavior is identical to walls with Wall Distribution Count = 1. It really does seem like at some point it just stopped respecting that setting, and while I can see how it would be even better to have a separate setting for "wall" distribution count as applied to skin and infill, the Arachne beta behavior of using the one setting for everything was better than just having no control at all.

nallath commented 2 years ago

I'm fairly sure that we never applied Arachne on concentric infill. We only ever apply it to walls. Arachne Engine beta 2 used to have some extra strategies that have been removed as they decreased the quality in almost all of the cases (and were only there as a leftover from comparing the new algorithm with other algorithms in order to write a paper)

daniels220 commented 2 years ago

@nallath I mean, empirically you did? See the last screenshot in my original report. Or is that the result of one of those extra strategies somehow? It sure looks identical to the behavior if the number-of-walls setting is set really high... In any case, I think it would be extremely useful to have the ability to apply the wall distribution strategy to any concentric pattern.