Idea: gcode for multiple but similar filaments in one file.
I printed some print in place gears lately and I used a cheap filament because I wanted to try this. and the filament setting in slicer was set to Prusament PLA.
it has slightly higher temperature than the generic one.
because of this or some other reasons the print had a very pronounced elephant foot and the gears were stuck, welded together.
also: the suggested filename says PLA or PETG or whatever filament flavor is used. has the file prusament setting? generic? something else? no one knows.
so here is the idea: generate gcode with a small(!) set of filament options and the printer asks on start which one to use.
like generic vs. prusament PLA
meanwhile there are a bunch of gcode files on my usb and I have no idea if they are for generic or prussament.
I wanted to add this as a feature request on github but there are already over 1k of issues on slicer alone and this feature requires a firmware change too for the mini and the i3. so.. I don't know if it is worth the effort. what do you think?
I know it's not nearly as elegant as what you suggested but you can edit the filament type in Filament Settings/Advanced/Filament Properties, eg call it G-PLA for Generic or P-PLA for Prusament, and it will be used in the GCODE file name. I wish there was a way to include the actual filament profile name but there isn't.
[...] so here is the idea: generate gcode with a small(!) set of filament options and the printer asks on start which one to use.
That's an interesting idea, but at least currently, 3D printers are profoundly stupid devices. They don't do much more than move and extrude exactly as told. There is no capability (on most, including the Prusas) to evaluate gcode and make logical decisions outside of increasing or decreasing some values by fixed amounts.
[...] I wanted to add this as a feature request on github but there are already over 1k of issues on slicer alone and this feature requires a firmware change too for the mini and the i3. so.. I don't know if it is worth the effort. what do you think?
A couple of thoughts:
- You can include information about the settings used to slice gcode as part of the automatically generated filename when slicing with PrusaSlicer. Not very sophisticated, but it at least gives you a hint when looking at the gcode.
- You can organize gcode files into a hierarchical directory structure. You could create a structure to save gcode sliced for different types of filament separately.
(these are not very sophisticated, but are work-arounds)
- You could conceivably use something like an OctoPrint plugin to change settings on-the-fly.
Part of the problem is that filament settings such as diameter and extrusion multiplier go into the calculations that are used to generate each and every extrude command. There is no single place you can make a change to a gcode file and have it interpreted somewhere to affect print settings. You might be able to do something like assume all filament are identical with 100% values and adjust accordingly, or use the initial slicer as a pre-processor inserting variables into the intermediate gcode that would then be replaced by the actual values by the final slicer.
Basically it sounds like your talking about using the same g-code you sliced for one filament to print with another filament of the same type, this would be as simple as manually changing the settings in the marlin interface on your printer (that's the LCD menu screen) if you know that the temp was to high for the newer/cheaper filament then you simply turn the temp down on the printers menu. you can control almost everything there, however the right way to do this would be to re-slice the model for the new filament, if that's not possible because the model has been lost or you never had it in the first place, then you would use the LCD menu to change what you need, or you would use something like Notepad++ to manually adjust the g-code
So, if I'm understanding you correctly, I don't really see any point in any kind of firmware feature for something like this, at present if you implemented this it would bloat g-code files with info for multiple filaments and strain the poor little computers running the firmware while trying to rebuild a new g-code with the changes selected. this is what slicer is for.
I agree with @swiss_cheese on this.
Slicing is a final step just before printing and resulting G-code should be seen as tailored commands for particular printer & filament only. And because of that, keeping G-code files for archiving purpose is not really a good idea. Ok, if we only have one printer and use same nozzle all the time, etc., then we could save few G-code files of the same object by naming them "USB-holder PLA210C".. "USB-holder PLA215C".. etc. But even then, it can happen such G-code files will become unusable if we buy new printer one day (i.e. retraction won't match anymore, etc.).
So, even Prusa firmware would have such feature, that wouldn't help much, because temperature is just one of the parameters (in g-code) that influence print quality.
Just sharing my opinion