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

PP-528: Unused Extruder Influences Settings #19666

Draft
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

Frederic98
Copy link
Contributor

@Frederic98 Frederic98 commented Sep 20, 2024

Description

Ever since the dawn of time Cura, having a material in Extruder 2 active influences the settings in Extruder 1. This is a necessary compromise for multi-material printing. However, in Cura, this is also when you only use the material in Extruder 1.

For example, PLA needs a buildplate temperature of 60°C on S-line, while ABS needs 80°C. Because there is only 1 bed to set the temperature of, the highest of the two is used to make sure the object sticks well to the bed. This, however, results in the PLA being quite droopy because it stays quite soft at that temperature - a compromise needed when printing the two materials together.

If, however, you only use the PLA in Extruder 1, you have to remember to manually disable Extruder 2, as otherwise the PLA uses a bed temperature of 80°C for no good reason.

This problem also applies to various other settings that cannot be set per extruder, like the Build Volume Temperature, Adhesion Type, Materials Shrinkage Compensation, Support Structure, …

See also PP-528, CURA-3499, CURA-3151, CURA-7226, CURA-9233

Solution

Turns out, Cura already has a function ExtruderManager.getUsedExtruderStacks(), which goes over a bunch of settings to check which extruders are actually used, not just the enabled ones. For example, it checks:

  • support_..._extruder_nr if support is enabled
  • skirt_brim_extruder_nr if adhesion_type is skirt or brim
  • raft_..._extruder_nr if adhesion_type is raft

The result of this function is now saved in new setting (extruder_used). This setting lives in the machine section, so is not settable by the user and is driven by Cura.
The function extruderValues that is available in SettingFunctions then only gives the values of the actually used extruders. If there are no used extruders (yet), like when there is no mesh loaded, it falls back to the old behaviour of using all the enabled extruders.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

How Has This Been Tested?

  • Test A
  • Test B

Test Configuration:

  • Operating System:

Checklist:

Frederic98 and others added 3 commits September 20, 2024 09:24
The `prime_tower_brim_enable` setting does not make a brim anymore, but a flared base, and does not use the `skirt_brim_extruder_nr`.
@Frederic98 Frederic98 changed the title Pp 528 unused extruder settings PP-528: Unused Extruder Settings Sep 20, 2024
@Frederic98 Frederic98 changed the title PP-528: Unused Extruder Settings PP-528: Unused Extruder Influences Settings Sep 23, 2024
@Frederic98 Frederic98 force-pushed the PP-528_unused_extruder_settings branch from 88432d6 to b7f3108 Compare September 26, 2024 09:35
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.

1 participant