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

Cura 5.3 skips every other layer on second extruder Prime Tower #15078

Open
1 task done
Erin-Stephan opened this issue Mar 29, 2023 · 17 comments
Open
1 task done

Cura 5.3 skips every other layer on second extruder Prime Tower #15078

Erin-Stephan opened this issue Mar 29, 2023 · 17 comments
Labels
Status: On Backlog The issue / feature has been reproduced and is deemed important enough to be fixed. Type: Bug The code does not produce the intended behavior.

Comments

@Erin-Stephan
Copy link

Erin-Stephan commented Mar 29, 2023

Application Version

5.3

Platform

MacOs 12.0.1

Printer

UltimakerS5 and Essentium Inc. (Custom printer)

Reproduction steps

Slice a dual head print with prime tower enabled.
Preview slice.
Every other layer of internal second extruder is missing. (and not printed when I try to print)

Actual results

Every other layer of internal second extruder is missing. (and not printed when I try to print)
image
image

Ultimaker:
image
image

Expected results

The second extruder should be printing material on every layer of the prime tower.

Checklist of files to include

  • Project file

Additional information & file uploads

EHSE2_PrimeTowerMissingLayersTest1.3mf.zip

@Erin-Stephan Erin-Stephan added Status: Triage This ticket requires input from someone of the Cura team Type: Bug The code does not produce the intended behavior. labels Mar 29, 2023
@Erin-Stephan
Copy link
Author

linking issue #14606 that I think is the same issue but it got closed because it timed out

@Erin-Stephan
Copy link
Author

Also this may be related to the issues in this ticket - #13475 - where the prime tower order was going to be changed, either as a result of the main fix or the secondary quick fix by @rijkvanmanen.

T0 is still in the old order (prime, part, prime, part) T1 is almost to the new order (prime, part, part, Prime) but that prime is not printing on the tower.

@TheThomasD
Copy link

TheThomasD commented Mar 30, 2023

Just my two cents: I think the general behavior of having one extruder building the outer wall of the prime tower on every layer and the other extruder only using the prime tower when it is needed (every second layer) is quite a good approach. I select the "cheaper" filament as the first one so I save more of the expensive filament that I use in the second extruder. Also, if you have a mixing extruder, using the darker color filament in the first extruder (less priming volume needed) has the benefit that you can even save filament (the "high volume prime" e.g. from black to white happens only every second layer). The order that I imagine (and that seems correct to me) is:

  1. print first layer (with prime tower brim and e.g. a skirt) with E0
  2. print first layer with E1 (e.g. with skirt as well as a priming method)
  3. print second layer with E1 (no need for switching to E0 first, no need for priming)
  4. prime with E0 on second layer, print second layer with E0
  5. print third layer with E0, prime with E0 on third layer (needed for prime tower stability)
  6. prime with E1 on third layer, print third layer with E1
  7. print fourth layer with E1 (again skipping the priming)
  8. prime fourth layer with E0, print fourth layer with E0
  9. ... and so on.

As you can see, E0 always builds the outer prime tower wall (for stability of the tower), but E1 only primes every second layer. I can understand that you might want to prime the second extruder on every layer, but you don't have to, right?

@Erin-Stephan
Copy link
Author

Erin-Stephan commented Mar 30, 2023

@TheThomasD I agree with your ordering, but I see the need for priming E1 at "step 7" for two reasons.

  1. Printing every other E1 prime is causing the E1 strands to not adhere and get drug into the part. See pic below
  2. I would like E1 to prime after its second layer (step 7 above) to be able to cool down during the prime tower to prevent oozing. Having this happen at step 7 allows E1 to cool mostly during the prime tower instead of the part (using final temp and cool down speed) so I like the overall order you described. If it cools during the part, you could be sacrificing some strength and could introduce a defect.

IMG_1661

@MariMakes
Copy link
Contributor

Hey @Erin-Stephan,

Thanks for your report 👍
This was also reported internally 😉

It should be resolved in the recently merged https://github.com/Ultimaker/CuraEngine/pull/1798/files
It was one of the acceptance criteria for it to be merged. So I expect this to resolved in the next version of Cura.

I just doublechecked in a nightly version we released earlier today and it looks like this. Priming every layer.
ezgif-2-c2b7f5edf2

If you want to take a look, you can do that here: #15098

Can you let me know if this was what you were looking for so I can close the bug?

@MariMakes MariMakes added Status: On Backlog The issue / feature has been reproduced and is deemed important enough to be fixed. Status: Needs Info Needs more information before action can be taken. and removed Status: Triage This ticket requires input from someone of the Cura team labels Mar 31, 2023
@glx-seven
Copy link

Nice this issue seems to be finally solved :), it has been around since like the beginning of time (at some point I was told this is the intended behaviour).

As you can see, E0 always builds the outer prime tower wall (for stability of the tower), but E1 only primes every second layer. I can understand that you might want to prime the second extruder on every layer, but you don't have to, right?

Actually it doesn't do that in every case (see the screenshot below), also it leads to very unreliable results since the inner priming layers don't really adhere anywhere and can end up being dragged into the print causing it to fail.

2023-04-02 (1)

@Erin-Stephan
Copy link
Author

@MariMakes yes, it looks like that resolves it! Thanks

@github-actions github-actions bot removed the Status: Needs Info Needs more information before action can be taken. label Apr 3, 2023
@GoguyT3D
Copy link

GoguyT3D commented Apr 3, 2023

@MariMakes Is there an installation file I'm missing or am I going to need to overwrite current config files, I'm not sure how to implement the code the link above led me to? (https://github.com/Ultimaker/CuraEngine/pull/1798/files)

@Erin-Stephan
Copy link
Author

@GoguyT3D My understanding is that we have to wait until they release the next version of cura to get this feature but maybe theres a way to implement it earlier? I'm not sure

@GoguyT3D
Copy link

GoguyT3D commented Apr 3, 2023

@GoguyT3D My understanding is that we have to wait until they release the next version of cura to get this feature but maybe theres a way to implement it earlier? I'm not sure

#15098 mentioned earlier seems to be the alpha "nightly" version not tested yet, I'm under the impression it's in there

@wawanbreton
Copy link
Contributor

Hi everyone,

I'm glad to see that the prime tower has finally been improved ! However, it is quite a regression for people who use a printer with a dual Y extruder (two filament inputs, a single nozzle) because we actually use the prime tower as a "purge tower" and we have to make it very large so that the purge is complete (e.g. when you switch from black to white). With the current implementation, it uses too much filament (and time) as what is really required, and it will be even more the case with this fix.

I have implemented a proposal for an optimization of the prime tower, but have not made a pull request yet because I wanted to have some feedback before I did. This version fixes the problem of having layers printed with nothing under, and it also optimizes the amount of filament/time used. @MariMakes would you please take a look at it ? Discussion topic is here : #6909 and implementation is on my fork : https://github.com/wawanbreton/Cura/tree/optimized-prime-tower and https://github.com/wawanbreton/CuraEngine/tree/optimized-prime-tower

@GoguyT3D
Copy link

GoguyT3D commented Apr 4, 2023

Hi everyone,

I'm glad to see that the prime tower has finally been improved ! However, it is quite a regression for people who use a printer with a dual Y extruder (two filament inputs, a single nozzle) because we actually use the prime tower as a "purge tower" and we have to make it very large so that the purge is complete (e.g. when you switch from black to white). With the current implementation, it uses too much filament (and time) as what is really required, and it will be even more the case with this fix.

I have implemented a proposal for an optimization of the prime tower, but have not made a pull request yet because I wanted to have some feedback before I did. This version fixes the problem of having layers printed with nothing under, and it also optimizes the amount of filament/time used. @MariMakes would you please take a look at it ? Discussion topic is here : #6909 and implementation is on my fork : https://github.com/wawanbreton/Cura/tree/optimized-prime-tower and https://github.com/wawanbreton/CuraEngine/tree/optimized-prime-tower

I clearly do not know how much effort that goes into fixing these bugs but I do appreciate all the effort from all of you, @wawanbreton I don't know if it would be too much to ask but maybe some of these implementations with the 2 extruders priming All the time can be "printer selective" or in other words only apply to people like me with a U3S or a U5S or the U7? I'm not clear on whether that would throw a huge slew of complexity into this issue but if it were possible that may be a very cool update for people such as me and those with a dual Y extruder

Update since downloading the "nightly" version listed above
I carefully sifted through all of my settings making sure nothing was out of kilter for this dual extrusion print, also checking layer per layer visually within the model to see if anything was "missed" or skipped and it all looked good. The print is now finished looks VERY successfull and here is a pic of the prime tower the way I wanted it to come out (in one piece, lol)
Thanks again guys and girls! Cant wait for Cura5.4 stable
20230404_052054

@wawanbreton
Copy link
Contributor

@GoguyT3D Good to see that you could finally print your part !

I'm not sure the prime tower mode selection can be printer-dependant. It also depends on the material used (whether they stick to each other or not). What I think is that the "optimized-consistent" version could maybe replace the actual one, because it actually does the very same job, but extrudes a bit less filament when not required. The "optimized" one could be activated manually as an option, if you have a Y extruder and known for sure that all used filaments stick to each other.

@MariMakes
Copy link
Contributor

Hey @wawanbreton,

Thanks for tagging me!
I wasn't aware of this branch and it looks super cool.
Amazing work 💪

I asked our Print Profile Experts to do some in-house experiments.
But I don't believe we have mixed nozzles.

@nallath can you help out when he gets stuck with a Pull Request?

@wawanbreton
Copy link
Contributor

I wasn't aware of this branch and it looks super cool. Amazing work 💪

Thanks 😊

I asked our Print Profile Experts to do some in-house experiments. But I don't believe we have mixed nozzles.

That's great !! From what I can tell, neither Ultimaker nor Makerbot printers have mixed nozzles, but it would still be very interesting to see how this tower performs with two extruders and a small prime tower. You must also have more materials than me, and you can try to mix them.
On my side, I will keep doing tests with my Y extruder. Tell me if there are some specific configurations you would like me to test.

@nallath can you help out when he gets stuck with a Pull Request?

Just to know, what is your convention to make a pull request ? Should I do it right now and keep improving the code, or wait for it to be fully stable before ?

@MariMakes
Copy link
Contributor

Hey @wawanbreton,

I found more excited Cura developers willing to help 😊

They told me, if you start a draft Pull Request they can start helping with improving your code where it's needed. It's also the best way to collect your insights and tests. Which are now spread across a few tickets I believe 😉

This is an example of a pull request that ended up becoming the Xmas Tree Support Alpha, but pull requests like these also make it into releases.

The PR also comes with a template that you can complete that can help you with structuring your information. Good luck!

@wawanbreton
Copy link
Contributor

@MariMakes Thank you so much... I didn't know a pull request could be tagged as a draft. I'll take some time to properly make it !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: On Backlog The issue / feature has been reproduced and is deemed important enough to be fixed. Type: Bug The code does not produce the intended behavior.
Projects
None yet
Development

No branches or pull requests

6 participants