Skip to content

Adding plugin to allow changing of tools at any layer(s) #17334

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

pearmid
Copy link

@pearmid pearmid commented Nov 16, 2023

Description

This feature allows a user to specify a list of layers on which to change tool head for IDEX printers.
this has the same effect as FilamentChange on IDEX printers without the need for manual intervention

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Printer definition file(s)
  • Translations

How Has This Been Tested?

Locally added to Cura 5.5.5 and tested both visual inspection of GCode in addition to real printer testing

Test Configuration:

  • Operating System: Windows

Checklist:

this has the same effect as FilamentChange on IDEX printers
without the need for manual intervention
@github-actions github-actions bot added the PR: Community Contribution 👑 Community Contribution PR's label Nov 16, 2023
@pearmid pearmid closed this Nov 17, 2023
@pearmid pearmid reopened this Nov 17, 2023
@casperlamboo casperlamboo added the PR: Post Processing ➕ Like adding beeps, more tunability or different Gcode pause at heights label Feb 16, 2024
@GregValiant
Copy link
Collaborator

GregValiant commented Apr 7, 2024

A few thoughts...
Your script requires that G60 and G61 are enabled in the firmware. I have no idea how many firmware flavors support them as they are memory hogs. My older Marlin firmware does not (it would be nice if it did).
There is no "block" to keep the script from running if the machine only has one extruder.
The move "G1 X-50" is only possible if the machine is an "Origin at Center" model. All others may well crash into the X endstop switch.
The tool change code is being added in front of the layer. That means the first line of the layer is no longer "LAYER:". It's possible that following post processors could fail if they count on "LAYER" being the first line of a data[item].
There is no retraction or priming.
The "E" of the new extruder is being set to zero and is not synced to the position in the file. That's fine if the file is sliced in Relative Extrusion mode, but there isn't a check for that. The result could be a huge extrusion from 0 to whatever the E location is in the file when the print resumes.
It isn't clear that the before and after gcodes must be single commands rather than multi-line.
If the user has Start and End gcodes for the extruders - they don't get called or added.
There is no consideration of One-at-a-Time mode.
If there is an offset between the extruders then simply switching to the new tool will cause a layer shift by the amount of the offset.

This sort of tool change can currently be accomplished with a support blocker configured as a cutting mesh and set to the extruder-of-choice. That has the advantage that Cura takes all the above into account when it gets to the height of the "Modifier Mesh". Prime towers can also be utilized.
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR: Community Contribution 👑 Community Contribution PR's PR: Post Processing ➕ Like adding beeps, more tunability or different Gcode pause at heights
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants