bambulab / BambuStudio

PC Software for BambuLab and other 3D printers
GNU Affero General Public License v3.0
1.93k stars 267 forks source link

Change filament does not work correctly on P1P without AMS #1958

Open julie777 opened 1 year ago

julie777 commented 1 year ago

Bambu Studio Version

1.6.2.3

Where is the application from?

Bambu Lab Official website

OS version

windows 10

Additional system information

No response

Printer

P1P

How to reproduce

  1. create new project and add an object
  2. slice the object
  3. move the layer slider to some middle layer
  4. right click on the + and choose change color (note that choose color is not available unless a second filament has been added to the filament section of settings.
  5. re-slice the model
  6. print the model

Actual results

the model will be printed all in one color, as will the purge block

Expected results

There are multiple problems.

Adding colors to the project does not really make much sense without an AMS, but I can see how it would be useful to document the filament colors. However, if the printer does not have an AMS it should not be used to generate gcode.

Change color should always be available in the layer slicer context menu. It is valid to change colors with or without an AMS. Pause at layer can be used as a work-around currently, but is not a good solution.

If there is no AMS, then the sliced model should not have code for a purge block. Instead, it should pause at the correct layer, notify the user to change filament, and start the printer unload and load filament sequence.

After noticing the "Change Filament Now" notification, the user should go to the print and the screen should prompt the user through the process.

Additional Comments

Using wizard line automation for operations such as changing filament color is a big help to the user. In addition, the process should be optimized so that the user is not required to wait for each step of the process. Using the current manual process as an example.

  1. I received the message that the printer has been paused by the user
  2. I walk to the printer and manually start the unload process. This in requires waiting for the nozzle to heat up because while paused it cooled down before I got there. For the automated process the printer would know that the filament was being changed and leave the nozzle at the printing temp. There is no need to heat it up to 250 (PLA) because it is hot enough to extrude so it is hot enough to unload. In fact, I would expect the automated process to be ready for me to pull out the filament by the time I reach the printer.
  3. In the current manual process after cutting the filament and telling me it is ready to pull out, the printer turns off the hot end heater. This means that after I pull out the filament and then select load, I have to again wait until the nozzle heats up to 250C. With the automated process the nozzle can just stay at the temp for printing the entire time. As soon as I am done pulling the old color, I insert the new color and when the printer detects the filament using the run-out sensor it starts the extruder which grabs the filament and does the purge.
  4. in the current process after answering questions about the load process I then have to manually go back to the home screen and select play. With the automated process it only requires one confirmation that the filament is extruding the new color and then it can continue printing automatically.

The automated change color solution that I have outlined which uses an optimized process with prompts would only take about ten seconds for the user to change colors.

Project file & Debug log uploads

none

Checklist of files to include

SaltWei commented 1 year ago

4. note that choose color is not available unless a second filament has been added to the filament section of settings

The filament section of prepare page doesn't means filaments in AMS. It only means the filament used by this 3MF project. You can create one multi-plates project and print with multi filament without AMS.

derekantrican commented 1 year ago

I understand the frustration of having to reheat the nozzle, but this could be beneficial if the pause occurs when you're not able to go to the printer. You don't want the printer to sit idle at 250°C for an extended period of time (not only would it be a waste of power, but it could also be a fire hazard).

So maybe it could keep the same temp for 5 minutes, then if there has been no action taken, cool down the nozzle.

paoloMain commented 10 months ago

The issue is still present on 1.7.7.89. Adding a "change filament" pin in the preview page doesn't actually stops the print and the object is all printed with the first material.

SaltWei commented 10 months ago

Adding a "change filament" pin in the preview page doesn't actually stops the print and the object is all printed with the first material.

The changing filament is for AMS. I think you should add pause and change filament manually without AMS

paoloMain commented 10 months ago

The changing filament is for AMS. I think you should add pause and change filament manually without AMS

Thanks for the answer :-) but what if I want to print with different materials (pla-petg)? Do I have to manually change all the settings from the printer screen?

brandonkish commented 9 months ago

The changing filament is for AMS. I think you should add pause and change filament manually without AMS

Thanks for the answer :-) but what if I want to print with different materials (pla-petg)? Do I have to manually change all the settings from the printer screen?

This is a big issue with the pause method workaround. If you go from something like PLA to TPU, you can't change the print settings for the new filament i.e. Speed, Acceleration, etc...

Also, any settings changed during the pause are overwritten when the print resumes, the previous settings are restored. So you have to try to change the settings while it is already printing.

It would be nice to implement an optional pause in the "Change Filament" so that those of us using filaments like TPU can manually change it out, and have the software use the different settings for the newly changed out filament. This would solve a lot of issues I think.

IanVS commented 9 months ago

I was also confused why the printer just blew past my filament change that I had set up in the slicer, and continued printing with the original color. What is the point of the slicer creating a purge block and showing me this readout with "Filament change times" if it's not going to actually let me change the filament?

image

I think that by default the printer should add an M600 when a filament change is instructed in the slicer, unless the AMS is used and then it can do whatever it is it's doing now.

For example, I have a model that I planned to add two colors on the same layer, so I need to pause between them. I see that I can add a pause at the start of a layer, but how do I add a pause between colors on the same layer?

GuzziRaz commented 8 months ago

I was hit with this bug on the X1 Carbon now, with AMS. The model starts with 8 layers of TPU 95A and the rest is PLA. I inserted a Change Filament at layer 9. I loaded the TPU from the external spool and started the print with AMS deselected.

Expected results: It should obviously pause at the filament change, letting me manually switch over to a filament in the AMS or, failing that, at least let me load the PLA to the external spool.

Actual results: No pause, nothing. It continued using the TPU95A but with PLA settings so ended up in caos (thankfully caught by the spaghetti detection).

So trying to work around it, I wanted to insert a pause as well, at the same layer height as the filament change, but that doesn't seem to be possible. I am right now trying the same but with M400 U1 at the very top of the Change Filament G-code. Hopefully that will work but it has minor flaws (the pause also triggers at start of print, I just resumed it). EDIT: It worked - I was not allowed to switch to the AMS manually, but I could load the PLA on the external spool.

This really should be enhanced to do what the user expects! The logic is very simple: If AMS is not in use, there should be a pause for user intervention.

You may think of this as an enhancement request and "function as designed" but in a user experience perspective, it's definitely a bug.

IanVS commented 8 months ago

I found this custom gcode for filament change which isn't perfect (the flap isn't closed while purging, so the poops are stringy), but does allow changing out the filament without an AMS. https://gist.github.com/adripo/4d0df406ea86de9d1a52f09dab318538.

DusterTheFirst commented 6 months ago

Lacking this feature is unacceptable. The printers have the functionality to change filaments, why are end users unable to utilize it if they do not have an AMS or filament that supports the AMS.