While testing a problematic AMS-HT, I placed 2 discs to be printed by object., The first disc from a bad AMS-HT that won’t load filament all the way to the extruder. The second from a good AMS-HT with a different color filament.
The filament began its loop of trying unsuccessfully 5-6 times before throwing an error. After the first unsuccessful attempt I tried to simply bypass the repeated cycling of attempts and on the printer’s display, used the “skip” command to shut off the disk whose filament wasn’t going to load.
Now with a “skip object” in place, you would think at a minimum after the “unable to load warning message” was acknowledged, the skip would take effect and move on to the second disk to print, changing AMS-HTs. However, this does not happen, when you click the “finished, continue” button the program goes right back into cycling through trying to load the same filament you already told it to “Skip”. This recycling of the filament in an attempt to load begins, immediately when the ‘finished, continue” button is pressed and before you even get to the main display screen to press “Resume”
Now if you X out of the Warning filament wont load error screen without pressing the finished, continue button to where you have to press resume to continue, it still behaves in the exact same way not bypassing the skipped object and once again trying to reload the filament. The only option available to you at this point is to cancel the print.
What the “skip object” function actually does is tell the printer to skip G-code associated with the specific object ID you selected. There are one or more M624/M625 G-code pairs on each layer that contains part of the object. Once you choose to skip, the printer will skip the G-code commands between those while continuing to execute all the other commands so the rest of the print proceeds normally (although in my experience, it looks like it might finish printing the current layer, or perhaps until the next M624 of the skipped object before it begins to skip).
At least in the .gcode files I have looked at, which were generated by Bambu Studio, the filament change commands, timelapse photos and other things that are not printing an object, are outside those skippable areas. In general, this makes sense, because if there are two objects using the same filament, it can’t skip loading the filament if you skip the first object that uses that filament (before successfully loading) without preventing the other one from printing correctly. Also, when finishing the print, it needs to unload the filament whether the object was skipped at some point in the process or not, but if the filament was never loaded in the first place, the final unload should be skipped, which doesn’t really fit into the way it handles skipping. If the skip doesn’t happen until the next M624 rather than retroactively skipping what it’s already doing (I’m not sure), that would also explain being unable to cancel loading, since it needs to keep executing the commands until it gets to the next part that it can skip. Objects can use multiple filaments, some of which could be used by others, which further complicates things.
So unfortunately, I don’t think we can expect it to skip filament loads even if that filament won’t be needed anymore during the current print. It would probably take a significant redesign of the whole skipping process to enhance this to intelligently decide what is needed later in the print and what isn’t: slicer and firmware updates, possibly new G-codes, all existing files would need to be re-sliced to support the new intelligent skipping, etc.