This repository provides you mucato a collection of scripts ease the use of Fused Filament Fabrication (FFF) 3D Printers with tool changing capabilities utilizing multiple carriages based on the RepRap Firmware (RRF) found on Duet3D Boards.
A popular and easy to remember name for such a Printer would be IDEX Toolchanger. Even though the IDEX (Independent Dual Extruder) implies that only two carriages, this project aims to not make any arbitrary limitations. Despite this implied limitation the term IDEX Toolchanger will be used, since both words are very well known in the world of FFF 3D printing, and thus, easy to understand.
The focus of this project is the so-called multi material, where all tools consist of FFF 3D printing heads. Other types of Toolchangers, which add for example drilling and milling tools are not covered.
- setupRRF/ → configuration file generator, that generates a template for IDEX Toolchangers
- postProcessor/ → converts normal multi material G-code to support IDEX Toolchangers
The general idea in the setup of the RRF config is, to have a certain amount of n tools (T0, T1, ..., Tn). Those n tools get replicated m times, where m is the number of carriages. With this replication in conjunction of generated tool changing scripts it is possible to have a n:m mapping, where in theory each carriage can pick up each tool.
In the special case of m being 2, further virtual tools are generated which replicate common IDEX modes like duplication or mirror with the additional feature of those modes now being multi material.
The logic that prevents carriages from picking up tools from their dock, that are already connected to another carriage or that prevents cables from being tangled is included in the tool change scripts. The order which tools can be picked up in which order is determined by a script, which post processes normal multi material G-Code to be used with an IDEX Toolchanger.
The Post Processor is a tool which is able to import normal multi material G-Code generated using normal unmodified FFF Slicers such as CURA or PrusaSlicer and export IDEX Toolchanger compatible G-Code.
The tool changes in the imported G-Code are statistical analysed in such a way, that an overview is generated, which shows what are the most common tool changes, how much filament is extruded by each tool in between those changes, etc.
Based on this overview an interference graph of all tool changes is generated. This graph is then going to be optimized using different heuristics provided via an api. By the selection of a heuristic the user influences the optimization criteria, such that his intentions are matched as close as possible.
One intuitive criterion for example can be, to reduce the overall number of movements to and from the dock. Another criterion might be the wish to only have one carriage populated between tool changes, where a lot of filament is extruded. Such an approach could help to reduce the wear on the currently not utilized filament.
Based on the physical setup of the IDEX Toolchanger and the danger of cables being tangled further precautions have to be included into the decision process. To accommodate those precautions additional heuristics will be provided. Those heuristics may lead to more complicated dock and pickup routines or more tool changes but will actively to prevent any tangling.
The general idea on how to approach a Toolchanger with multiple carriages, which is used in the development of this project, was developed by me, Ronny Kramer. How ever, the general idea to think about an IDEX Toolchanger and therefore the initial spark for this project, was provided to me by Christian Reil, the owner of the company CR-3D.