CuraEngine icon indicating copy to clipboard operation
CuraEngine copied to clipboard

Add support for per-object retraction settings.

Open jeremysalwen opened this issue 3 years ago • 5 comments

This change adds support for per-object retraction settings to CuraEngine. The main mechanism is through changing the code to track a pointer to the SliceMeshStorage instead of just storing the mesh name as a string.

Additionally, the code is changed to group together all retraction and wipe settings into a single object which allows for more easily switching between the object-specified and the extruder-specified settings, depending on the context.

Retraction settings will be applied based on the most recent mesh that was extruded. As @Ghostkeeper noted, this may cause imperfections on the next mesh (albeit in a way that the user has control over). However, in one-at-a-time print ordering, this will not be an issue.

For some retractions, occuring as part of setup or teardown, it does not make sense to apply options from a specific mesh, so settings from the mesh group or extruder are used instead.

This PR is related to https://github.com/Ultimaker/Cura/issues/3193

jeremysalwen avatar Feb 18 '22 20:02 jeremysalwen

Didn't realize there were some tests I wasn't building. Fixed the tests to be compatible with this change.

jeremysalwen avatar Feb 26 '22 13:02 jeremysalwen

Ping @nallath can you run the CI workflow?

jeremysalwen avatar Mar 07 '22 03:03 jeremysalwen

Sorry! Once you have your first contribution in it will automatically do it. It's an automatic setting from GH to prevent people from running crypto miners and the like.

nallath avatar Mar 07 '22 09:03 nallath

Sweet! What is the review process like? If there's any feedback on changes needed to this PR I'm happy to make them.

jeremysalwen avatar Mar 10 '22 03:03 jeremysalwen

Sorry! We're in total crunch mode for the Cura 5.0 release. Reviewing / testing PR's is a bit on the backburner now. My apologies!

nallath avatar Mar 14 '22 10:03 nallath

Hi! We'd like to apologize to take this long to finally process this PR.

Thanks for your contribution! If this passes QA, it will be in 5.3

Since this PR was old, rather than asking you to update it, I merged the main branch in myself, and made a frontend PR to expose the fact that a lot of retraction settings can now also be accessed on a per-model basis.

(Devs, see jira ticket CURA-9876)

rburema avatar Nov 11 '22 10:11 rburema