Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing retracts on a layer change when a toollhead moves from one object to another #12219

Closed
2 tasks done
rednaxal opened this issue Feb 10, 2024 · 19 comments
Closed
2 tasks done

Comments

@rednaxal
Copy link

Description of the bug

The latest 2.7.2-alpha2 is having a serious issue - it is missing retraction on a layer change in case of multiple objects on a table, i.e. when a layer starts not at the same place where it ends like on a simple objects with a single seam.
As a result many of my prints stared to have a loooooot of stringing when sliced in 2.7.2-alpha2, so had to rollback to 2.7.1.
изображение
Also for some reason it moves toolhead to a certain Z coordinate twice.

Project file & How to reproduce

bug.zip
Just put two objects on a table and slice it then look into gcode on a layer change.

Checklist of files included above

  • Project file
  • Screenshot

Version of PrusaSlicer

2.7.2-alpha2

Operating system

Windows 10

Printer model

KP3S Pro

@freakydude
Copy link

Same here. Slicing a simple retraction test model (2 cylinders,3mm, 25mm height)
Instead of 2 Retractions and 2 Deretractions there only 1 of each on all layers.

Model
prusa-2 7 1-retraction-full

Prusa 2.7.1 Release
prusa-2 7 1-retraction

Prusa 2.7.2-Alpha2
prusa-2 7 2-alpha2-retraction

2.7.2-alpha2-retraction-bug.zip

With best regards
freakyDude

@virtualcomputerguy
Copy link

Same issue. Seeing it also not retracting on single large parts as well. Tons of stringing and visible artifacts on parts. Same issue on multiple printers. I do see the retraction line in the g-code, but it is not performing a retraction.
Screenshot 2024-02-11 110946

@SachCZ SachCZ added the z-hop label Feb 12, 2024
@SachCZ
Copy link
Collaborator

SachCZ commented Feb 12, 2024

Hello, thank you very much for downloading alpha2 and participating in the early stages of public testing! I have managed to reproduce the issue reported by @rednaxal and @freakydude. I can confirm that there is indeed a difference between 2.7.1 and 2.7.2 alpha2.
After bit of investigation, it is clear that it is caused by a change in logic of layer changes. In 2.7.1 layer change gcode was only a single z move up. In 2.7.2 alpha2 layer change gcode is the whole travel from the last point of the previous layer to the first point of the current layer.
In PrusaSlic3r, there is a checkbox called "Retract on layer change" in Printer Settings -> Extruder. In the provided 3mfs this checkbox is not checked, meaning there will be no retraction on any layer change.
In 2.7.1 this means that there is no retraction for just the single move up and than the following travel has retraction before it and deretraction after it.
In 2.7.2 alpha2 the whole layer change travel (up and to the first layer point) has retraction turned off resulting in the issue you reported.
We have not clearly pointed out this possibly breaking change in the changelog and are sorry for the confusion caused.

The duplicate move to certain z is connected with the layer change logic. PrusaSlic3r is making sure that the print of the next layer starts at proper z, even if there is an arbitrary z-move in custom after layer change gcode.

I am closing this issue, as it is not a bug. Feel free to report a new issues if the problem persist with "Retract on layer change" checked.

To adress the comment of @virtualcomputerguy: The gcode in your case seems properly generated indicating that you may be facing a different kind of issue. Please fill in a new bug report providing us with all the necessary means to reproduce your problem (project file, printer model, detailed description, etc.) otherwise we can do very little to help you.

@SachCZ SachCZ closed this as completed Feb 12, 2024
@rednaxal
Copy link
Author

@SachCZ
So you mean we now have to keep the "Retract on layer change" always enabled for the retraction to work properly?
But this setting doesn't make any sense for a simple prints where a layer starts at the same place where it ends (Imagine a simple 2 walls box for example). So retractions there aren't necessary at all but with that setting enabled it will be happening and possibly affecting the look of a seam and the print time.
Also why do we need a setting which when disabled in most cases results in a bad prints? :) And for some reason it is located not in a print settings but in a printer settings, i.e. shouldn't be changed depending on a model to print. It makes no sense to me, sorry.

In my opinion this setting shouldn't affect the retraction for horizontal travel movements at all. And should apply only to a layer change (which from a user's perspective is supposed to be only a Z change, like in 2.7.1). While every time there is a horizontal travel of a toolhead (not less than retract_before_travel mm) there MUST be a retraction regardless of whether it is a part of a layer change code or a whatever else.

@SachCZ
Copy link
Collaborator

SachCZ commented Feb 12, 2024

I see your point about horizontal travels, we will look into it - possibly returning to the previous behaviour in next public testing release. Thank you for your feedback, it is much appreciated. SPE-2148

To continue using 2.7.2 alpha2, as a workaround, you can keep "Retract on layer change" on for most of your prints and turn it off for special prints like boxes with 2 walls. I agree that in this case having to change printer settings based on model you are using is sub-optimal, please bear with us while we iron out some of the quirks of the next PrusaSlic3r release.

@freakydude
Copy link

freakydude commented Feb 12, 2024

@SachCZ
Indeed, the headline of this issue points to two issues:

  • Retract on LayerChange
  • Retract/Deretract before and after travel while remaining on the same layer.
  • (and the third point is retraction in combination with z-hop - not mentioned here, but maybe similiar issues)

The functionality of both seems to be changed.

I was mainly talking about the retraction/deretraction on the same layer and like the opinion of @rednaxal I would also expect, that the option "retract on layer change" does not influence the retract on the same layer. As it can be seen in real prints it's very effective to remove/minimize stringing. I would be surprised if you were to drop this.

best regards

@SachCZ
Copy link
Collaborator

SachCZ commented Feb 12, 2024

I cannot say that I completely understand you @freakydude. I have not been able to reproduce the issue on same layer. Maybe we are not on the same page here when it comes to the terms being used.

The gcode is generated in the following way:

  • layer 1 gcode
  • layer change gcode
  • layer 2 gcode

In alpha 2, layer change starts at last point of layer 1 and ends at first extrusion point of layer 2, meaning there is a travel. This travel does have or does not have retraction based on the setting "Retract on layer change". I am pretty sure that "Retract on layer change" does not influence any retraction/deretraction on the same layer. Maybe you mean that you would expect a retraction for any travel, even if it is part of layer change (as already stated by @rednaxal).

@virtualcomputerguy
Copy link

virtualcomputerguy commented Feb 12, 2024

I have a part that looks like the test object that @freakydude was printing. The stringing on it was actually amazing and the blobs it was leaving where a retraction should have happened was equaly amazing. It seems like there was actually no retraction happening at all. Seams were where the blobs were, it was almost like it was extruding more instead of retracting... I will test some more later after I get some of the parts remade that were printed terrible by this new version.

I can fill out a new bug report but it sure seems that this is the same issue. There is no retraction happening on long travel on same layer or layer change when having single or multiple parts on the bed.

Is it possible that using a relative e setting could be introducing an issue?

I switch back to the old version and parts are pringint again without any modification.

@SachCZ
Copy link
Collaborator

SachCZ commented Feb 12, 2024

@virtualcomputerguy thank you for your time. My guess is that you also have "Retract on layer change" turned off. Is that the case? Please do your testing with this setting turned on for 2.7.2 alpha 2.

@virtualcomputerguy
Copy link

OK. I can try that. I have never needed that for long travel moves during the same layer. I do use that setting, but not on this model. I will enable it and try again. But I would hope that this does not go into production like that. You should not need to enable retract on layer change to have retraction working on the entire layer.

I am seeing tons of stringing on long travel moves and none at the end of the layer. It sounds like that setting will take care of one of the issues. Will update after testing again.

@freakydude
Copy link

freakydude commented Feb 12, 2024

@SachCZ

Ok I try to clarify - maybe we talking about the same - or not. I think after that its clearer.

I did another stringing test with 4 3mm towers instead of 2 to see the behavior more clearly. I filtered just 2 slices at 15/15.2mm z - but its the same for all - of course. The new model is attached here if needed: prusa-2.7.2-alpha2-retract-travel.zip

Prusa 2.7.1 with Retraction on Layer Change - OFF -
The only think is missing, is the retraction after the layer changed ;-) but thats the inactive option

prusa-2 7 1-retractlayer-off

Prusa 2.7.1 with Retraction on Layer Change - ON -
I don't miss anything, here are all retraction on layer change and before and after travel moves
prusa-2 7 1-retractlayer-on

Prusa 2.7.2-alpha2 with Retraction on Layer Change - OFF -
In this example, I miss also the deretraction after the first travel move. That's the additional issue (or the issue you already talking about ;-)
prusa-2 7 2-alpha2-retractlayer-off

Prusa 2.7.2-alpha2 with Retraction on Layer Change - ON -
I don't miss anything, here are all retraction on layer change and before and after travel moves

prusa-2 7 2-alpha2-retractlayer-on

With the old example, the stringing test with 2 towers and retract on layer change on, there is no deretraction before travel (from right to left this time). And it travels from left to right without doing anything first. And yes, the retraction after layer change is not there, but its deactivated and ok.
prusa-2 7 2-alpha2-retractlayer-off-simple

And, whats interesting too, the move direction changed to counter clockwise (same profile as in 2.7.1)

Hop that helps.

best regards

@rednaxal
Copy link
Author

@freakydude
I think this is the same issue I've reported. In your example it seems like a layer ends at the left tower and then starts at the bottom one. So in new 2.7.2 alpha release a "layer change" operation includes a Z lift AND a move to a new layer start. That is why we don't have a retract happening on a first travel move (because internally this move is a part of a layer change code and not a part of a layer itself) unless we enable Retraction on Layer Change.
Hopefully they will fix that in an upcoming release, because I personally don't want to enable the Retraction on Layer Change for all of my printers. :)

@freakydude
Copy link

I agree, this makes sense @rednaxal. In my mind, a layer change was that the nozzle moves to pos xy, printing/extruding. Then z is increased and printing continues at pos xy,z+1 with printing. So why should I retract? So I disabled it like you ;-)

but like with the alpha, if you increase z first and then (move) to a pos x2,x2 - then a retraction makes more sense.

Personally I would do it the first way (because I don't know the advantages of the second way).

@SachCZ
Copy link
Collaborator

SachCZ commented Feb 14, 2024

Hi, you are both right. Thank you @freakydude for the detailed analysis, I think it is in line with the conclusions already stated. We are working on changing it, as the new behaviour clearly causes confusion and in combination with "Retract on layer change" being on the printer tab it really does not make sense.

Just to make a slight correction to your reasoning about layer changes @freakydude. It has always been:

  1. nozzle finishes printing layer at x,y,z
  2. layer change happens: nozzle moves up x,y,z+1
  3. nozzle moves to the first position of the next layer x2,y2,z+1
    The difference is that in 2.7.2 alpha 2 steps 2. and 3. are both part of the layer change and are thus "Retract on layer change" affects them as a whole. For context, this has been introduced with the new ramping layer change feature, where this mental model of layer change being single move up does not make sense anymore. Anyway we are working on preserving the previous behaviour.

@neophyl
Copy link

neophyl commented Feb 14, 2024

Just to chime in that I am also suffering this problem. I print ALL my models with retract on layer change = OFF as it gives much better results. I really really do not want to be forced to turn that on.

@freakydude
Copy link

freakydude commented Feb 14, 2024

@SachCZ Thank you for the detailed explanation and good luck separating the concerns.

By the way, you are welcome to contact me if you would like to discuss the mixing of bridge and overhang settings - and the associated inadequacies in bridge/overhang (fan) speed adjustments.

I had already opened an issue, but it's probably a bit much at once - and possibly also a mistake in my thinking ;-)

best regards

@lucasavendano
Copy link

lucasavendano commented Feb 20, 2024

Hi, i am seeing the need to show you something, maybe its related to this, when 2.7.0 beta 1 was released i started to have a lot of stringing in all my machines, and i was unable to figure it out, almost lose my mind with hardware and filaments, retraction test, etc. At the same time i was trying orca slicer, they are doing a great job (for me), specially with things related to klipper. When they released 1.9 the problems with stringing started too. I don´t know exactly how the things works in this of "based on prusa slicer..." but i think they took some problem in PS new versions...

Recently they worked on this:

SoftFever/OrcaSlicer#3888

I think this could be helpfull

🙋‍♂️

@SachCZ
Copy link
Collaborator

SachCZ commented Feb 20, 2024

Hi @lucasavendano, thank you for your interesting observation. Sadly, we are unable to really address this as your description of the problem is too broad. Also, please open a new issue, as this one cannot be related to your observations - it addresses an issues in 2.7.2 alpha and you problems are related to 2.7.0 beta 1. When opening a new issue, please be so kind and provide a 3mf file for which your stringing problem was not present pre 2.7.0 beta 1 and is present now after 2.7.0 beta1. Anyway, we appreciate your effort!

@lukasmatena
Copy link
Collaborator

Fixed in 2.7.2-beta1. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants