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

Orca Slicer default parameter tweaks #5406

Merged
merged 3 commits into from
May 20, 2024

Conversation

SoftFever
Copy link
Owner

Description

This adjustment is based on feedbacks and my own daily use experience.
gap_fill_target -> gftNowhere
z_hop_types -> zhtSlope
ensure_vertical_shell_thickness -> evstModerate
top_surface_pattern -> ipMonotonicLine

@SoftFever SoftFever merged commit 0dbf610 into main May 20, 2024
12 checks passed
@SoftFever SoftFever deleted the feature/minor-default-parameter-tweak branch May 20, 2024 23:47
@igiannakas
Copy link
Contributor

Hey @SoftFever

Came across this one - one suggestion if I may.

Gap fill:
def->set_default_value(new ConfigOptionEnum(gftNowhere));

I'd recommend that we use top and bottom surface gap fill only, not nowhere - as nowhere can create artefacts (gaps) on top and bottom surfaces that tend to confuse new users :) Not having gap fill inside the model makes sense, but top and bottom I'd argue that we need that on.

Ensure vertical shell thickness:
def->set_default_value(new ConfigOptionEnum(EnsureVerticalShellThickness::evstModerate));
This is a double edged sword. While most of the times this works well as a default, there are cases where it may not be suitable for the model. So I'm thinking whether this change makes sense for a novice, where you want max reliability?

Monotonic lines - makes perfect sense!
I'd argue that having monotonic lines for infill too would be a good idea - I certainly have them set up for my profiles too and I find it reduces over extrusion on top surfaces quite nicely. I can see not having monotonic lines for first layer as if your z offset is not good it can cause first layer adhesion issues but I'd definitely recommend the default for solid infill to be lines too :)

@SoftFever
Copy link
Owner Author

SoftFever commented May 22, 2024

Hey @SoftFever

Came across this one - one suggestion if I may.

Thanks for sharing the feedback, man.

Gap fill: def->set_default_value(new ConfigOptionEnum(gftNowhere));

I'd recommend that we use top and bottom surface gap fill only, not nowhere - as nowhere can create artefacts (gaps) on top and bottom surfaces that tend to confuse new users :) Not having gap fill inside the model makes sense, but top and bottom I'd argue that we need that on.

Hehehe, the feedback I currently received is actually complaining about gaps fills leaving marks on top surface...
Depends on the model and filament as well as machine, I found myself also running into this scenario some times.
I compared with PrusaSlicer and Cura, they don't do gap fills by default either.
Which makes rethink the gap fills thing, I believe in most cases we don't need gap fills hence disable it by default.

Ensure vertical shell thickness: def->set_default_value(new ConfigOptionEnum(EnsureVerticalShellThickness::evstModerate)); This is a double edged sword. While most of the times this works well as a default, there are cases where it may not be suitable for the model. So I'm thinking whether this change makes sense for a novice, where you want max reliability?

Good point. Do you by any chance still have model that has troubles with the moderate settings?
I have no strong opnion on this parameter. If moderate is not the safest option, I don't mind the revert this.

Monotonic lines - makes perfect sense! I'd argue that having monotonic lines for infill too would be a good idea - I certainly have them set up for my profiles too and I find it reduces over extrusion on top surfaces quite nicely. I can see not having monotonic lines for first layer as if your z offset is not good it can cause first layer adhesion issues but I'd definitely recommend the default for solid infill to be lines too :)

👍
I'm feeling that using monotonic lines for internal solid infill affects the bonding between the infill and the inner wall. This is especially true when the PA is not spot on, while monotonic infill tends to be more tolerant of these kinds of imperfections.

@vgdh
Copy link
Contributor

vgdh commented May 22, 2024

When I had started to use ORCA I encountered some issues with gap infill at first (when i had a lot of them).
The first few gaps filled well but the other just leaved as they were, but while nozzle goes from one gap to another the filament was pulled out from the nozzle during this movement (little stringing and ozzing i guess).
And when printer started print a wall there was no filament to print it and I get a few mm gaps in the outer wall.

@SoftFever
Copy link
Owner Author

When I had started to use ORCA I encountered some issues with gap infill at first (when i had a lot of them). The first few gaps filled well but the other just leaved as they were, but while nozzle goes from one gap to another the filament was pulled out from the nozzle during this movement (little stringing and ozzing i guess). And when printer started print a wall there was no filament to print it and I get a few mm gaps in the outer wall.

Yeah, this problem will become more obvious with non-high-speed printers or with filaments that ooze.

@igiannakas
Copy link
Contributor

igiannakas commented May 28, 2024

Hey @SoftFever apologies for the delay!

Vertical shell thickness:
So for the moderate vertical shell thickness what I've observed is that on some models you get the below (look in the central rectangle)
image
image

Basically the top solid infill not extending fully to support an "upcoming" wall but rather only up to 1 wall length. This has caused me in some instances the top surface not to bond well as the internal walls are not printed over a solid surface but rather a sparse infill. Especially as in some cases the top solid infill is partly unsupported underneath.

I do use moderate quite a lot - but always mindful of this artefact. In some cases I need to disable it. Hence why I was suggesting the "All" remaining as the default as its safer/works for all models.

Gap fill:

What I've seen is that it's needed for some models especially when the top solid infill aligns with the a vertical wall. See below:
image
image

In the first pic you can see areas where the layer is not "full" especially in the benchy rectangle. Hence why personally I keep it on. Yes it is an edge case as most will usually print the infill at 45 degrees and the model at 0 degrees but if you orient the surface lines parallel to a wall this can happen.

I know the artefact you mention and get why its changed - small fap fill can cause over extrusion on the top surface but equally no gap fill can cause under extrusion/gaps too :( So no ideal solution for this from what I gather.

I would be curious to see how Cura for example handles this scenario - walls and solid infill parallel to each other.

Monotonic:
Yeap agreed - while monotonic lines gives the better result visually if your printer is not set up well you indeed may end up with under extrusion where the lines start /stop so yeah, makes sense!!

Suggestion:
Since you're at it - I'd strongly suggest the crosshatch as the infill of choice/default for all profiles ;) Better than grid that I think is the default currently for most printers (i.e. replace grid with crosshatch).

@SoftFever
Copy link
Owner Author

Hey @SoftFever apologies for the delay!

Vertical shell thickness: So for the moderate vertical shell thickness what I've observed is that on some models you get the below (look in the central rectangle) image image

Basically the top solid infill not extending fully to support an "upcoming" wall but rather only up to 1 wall length. This has caused me in some instances the top surface not to bond well as the internal walls are not printed over a solid surface but rather a sparse infill. Especially as in some cases the top solid infill is partly unsupported underneath.

I do use moderate quite a lot - but always mindful of this artefact. In some cases I need to disable it. Hence why I was suggesting the "All" remaining as the default as its safer/works for all models.

Gap fill:

What I've seen is that it's needed for some models especially when the top solid infill aligns with the a vertical wall. See below: image image

In the first pic you can see areas where the layer is not "full" especially in the benchy rectangle. Hence why personally I keep it on. Yes it is an edge case as most will usually print the infill at 45 degrees and the model at 0 degrees but if you orient the surface lines parallel to a wall this can happen.

I know the artefact you mention and get why its changed - small fap fill can cause over extrusion on the top surface but equally no gap fill can cause under extrusion/gaps too :( So no ideal solution for this from what I gather.

👍
Thanks for the feedback.
I checked it the model and indeed it's better to have Vertical shell thickness set to all as the default value.
I will revert default setting to all

I would be curious to see how Cura for example handles this scenario - walls and solid infill parallel to each other.

Good point. PrusaSlicer has this issue as well.
Haven't checked with Cura yet.

Suggestion: Since you're at it - I'd strongly suggest the crosshatch as the infill of choice/default for all profiles ;) Better than grid that I think is the default currently for most printers (i.e. replace grid with crosshatch).

Hehe, yeah, that is in the plan.
I'm not happy with its performance when density is low though (e.g., < 10% infill).
This limits its use case, as it's common to have infill below 10% when printing non-functional parts. So, with its current state, it shouldn't be used as the default infill pattern. I'm trying to improve it in #5495 before I make it the default pattern.

@igiannakas
Copy link
Contributor

Yeap I saw that PR! So looking forward to testing it out ;) it’s my default infill of choice since it was merged and fixing that shortcoming will make it perfect!

@floghiade
Copy link

I checked the latest beta and for lower % infill it looks and prints better however when going upwards towards 10-12% the printing time spikes up compared to the Bambu implementation.

I haven't printed higher density, I just compared original vs this modification and it's a big change in print time. I don't know if this is intended or not, just pointing it out.

@SoftFever
Copy link
Owner Author

I checked the latest beta and for lower % infill it looks and prints better however when going upwards towards 10-12% the printing time spikes up compared to the Bambu implementation.

I haven't printed higher density, I just compared original vs this modification and it's a big change in print time. I don't know if this is intended or not, just pointing it out.

The print time of sparse infill may increase 5-10% for infill density below 30%. For density higher than 30%, it's unaffected.

How big is the time difference you noticed?

@floghiade
Copy link

After more extensive testing, my portable download had been broken somehow. The spike was upwards of 2-3 hours for anything.

With the latest beta redownloaded, I see a bump in time of 45m-1.5h compared to Bambu at 10% infill using infill heavy models. That lands in the 5-10% increase that you mentioned. Smaller files tend not to have that problem, and a few minutes don't matter if it shows up.

So far, so good. I also tried a 700% scaled cube out of curiosity and compared it in Bambu / Orca, and the difference was 3 hours. 15h print on Bambu while Orca was at 18h with the infill. Is this a realistic thing? It's not even close, but what I saw with the edge case is that I can go down to 8% infill with the Orca implementation and get the same thing, and, by looking at it, it's much stronger in comparison.

It might bump the time by more than 10% on huge prints that rely heavily on infill, but I don't see why not lower the infill % and go from there, as you would get the same functionality at lower levels.

So that's what I found so far, other than that, looks good to me ;)

@Snelso91
Copy link

Snelso91 commented Jun 1, 2024

For the new crosshatch infill, one suggestion I have is to consider reducing the default infill density from 15% to around 11.4-12% due to 2 reasons:

  1. Crosshatch has decreased line spacing when compared to grid infill. For example, just from taking some screenshots and doing some pixel measurements you can see that 11.4% crosshatch gives approximately the same distance between sparse infill lines for the internal bridging layer to cross as 15% grid infill which is the old default.
    Now I'm only doing pixel measurement and I don't know how to calculate the exact crosshatch % density that would give equivalent spacing to 15% grid, but given that Bambu even states in their Bambu Studio changelog that a density of around 12% is recommended if you previously used 15% density, I'm guessing that 11.4% is pretty close to the ideal value to match 15% grid.
    https://github.com/bambulab/BambuStudio/releases#:~:text=Based%20on%20our%20tests%2C%20we%20recommend%20printing%20it%20with%20a%20slightly%20lower%20density%20setting%20than%20you%20normally%20would%2C%20such%20as%2012%25.

15% Grid
image
11.4% CrossHatch
image
15% CrossHatch
image

  1. The 2nd reason I would suggest lowering the default density is because unfortunately crosshatch is significantly slower than grid infill or many other infill types for total print times. For example, for the 100x100x100 cube in the screenshots above, changing from 15% grid to 15% crosshatch takes it from an approximately 5 hour print to an approx 7 hour print. While the benefits of no crossings of crosshatch are nice, such a large increase in print time is a tough pill to swallow for use in a normal profile where you want to maintain a decent level of speed.
    Decreasing the density to 11.4% still has a noticeable print time penalty compared to 15% grid, but it is not as extreme as for 15% crosshatch.

In summary, it seems to me like decreasing to around 11.4% would maintain the same top surface quality as 15% grid, whilst having the benefits of crosshatch, as well as decreasing total print time to be closer to 15% grid, and decreasing total print weight compared to 15% grid/crosshatch.
The only downside I can foresee is that 11.4% crosshatch may be noticeably weaker than the old default of 15% grid, but that would require some destructive testing to prove.

@Snelso91
Copy link

Snelso91 commented Jun 1, 2024

Regarding changing gap fill to Nowhere by default, one use case I was thinking this might be detrimental for is if you were printing a functional part and you wanted to use a print profile that printed the part with maximum strength. In this scenario, I was thinking that having gap fill set to top and bottom or nowhere would slightly decrease the part strength compared to gap fill everywhere, since it is leaving unfilled gaps in the interior of the part?
Also, since larger line widths (around 140-150% of nozzle width) are best for max strength, these unfilled gaps would be more significant than for a smaller line width.

I'm not suggesting that the default be reverted to Nowhere, if anything I am in agreement with @igiannakas that gap fill for top and bottom only seems like a reasonable default if you want to guarantee there are no unsightly holes on the top or bottom of the part.

However I would appreciate it if anyone could confirm (with data or otherwise) whether removing gap fill from the interior of the part (i.e. gap fill top and bottom vs everywhere) would slightly decrease the strength of the part?
If so, it may be worth adding this information to something like the FAQ or Orca wiki for those like myself who need to have a profile setup for parts where maximum strength is a priority.

@Snelso91
Copy link

Snelso91 commented Jun 8, 2024

@SoftFever apologies, I forgot to tag you in my original comments above.
Please let me know your thoughts when you are not too busy.
Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants