Request for Filament Tweaks



  • I have 2 asks:

    1. Can we get a nextFilament variable in the object model? This would mirror how tool changes work with nextTool and currentTool. Two reasons for this:

      1. When scripting in load.g it would help if we didn't have to repeat the filament name in the script. Writing a single unified load macro is within reach if the Object Model has this for loading.
      2. When changing filament it would be great if the unload.g script could tell if another filament was about to be loaded, then it could decide to shut the heater off or leave it on for the next load operation.
    2. Can we allow filament changes to the same filament that is already loaded and allow multiple tools to have the same filament loaded? I use a lot of PETG but its in different colors, or maybe the roll just ran out and I need to change it. Unloading and loading the same filament type is more common than switching types for me. The current functionality is clever, but maybe too clever.



  • For #2: this is the line that does the exclusions in the Duet Web Control: https://github.com/Duet3D/DuetWebControl/blob/master/src/components/dialogs/FilamentDialog.vue#L67
    A helpful comment notes:
    // Exclude filaments that are already loaded (RRF does not allow loading the same filament into multiple tools)

    I don't understand why that is but the next step is to find where in the firmware the limitation is enforced.



  • This seems to be the only place that it is actually used: https://github.com/Duet3D/RepRapFirmware/blob/7c571137d68a1a2de0d79e2dc1741793a96c7279/src/GCodes/GCodes.cpp#L4628

    So its use is only to enforce this limitation not to stop something else in the firmware from breaking. Please feel free to tell me what I'm missing. I don't understand the reason for this limitation.

    I don't think you expect users to create a Filament for every individual roll of filament they physically have. Nor does it make sense to have N copies of every filament so a machine with N tools can load N of the same filament. Nor does it makes sense on a single tool machine to stop the user from unloading one color of PLA and then loading another color of PLA (Change Filament doesn't work because PLA Filament is in use, technically it would work because its unloaded as part of the change but the GUI blocks it from showing up in the selection dialog).

    Most users are creating 1 filament per type of filament they have: PLA, PETG, ASA, Nylon, PC etc.

    If I submit a PR removing this check and the IsInUse function from the filament model would I get that merged? @chrishamm or @dc42


Log in to reply