-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Fan speed incorrect for first layer after filament change #7171
Comments
Note: this test file was sliced originally in 2.2.0-beta2 , I just downloaded and verified that this is still a problem with 2.2.0-rc as well. I also verified that this is pre-existing in the 2.1.1 release, so has apparently not been introduced/made worse by the 2.2.0 branch. The model in this file is my own work, in case anyone cares. |
This is in fact caused by the difference in layer time, due to color change. |
@Noisyfox, I think I disagree with you here. From the simple perspective, it does not make any sense that you should get 100% fan here since the nominal layer time due to change of filament is LONGER , not shorter. Longer layer times result in less cooling... which is obviously not what's happening here. From a precise tracing-the-code perspective: In the slice file, the slicer appears to try and set the fan speed for the layer to the min fan speed called for (10%) on line
Note that this happens right before the toolchange sequence... so.. this then gets clobbered by the filament change routine here, on line:
, and never set back to the proper part fan speed by layer (which ought to be a "M106 S48", which comes before the next layer @ line 160948. There are actually TWO bugs here:
Obligatory screenshot showing the longer layer time being mis-attributed to the layer following the filament swap: |
P.S. i'm happy to discuss this interactively on discord if you wish. |
Yeah you're right. Will take a closer look. |
The issue is actually caused by the fan mover. OrcaSlicer/src/libslic3r/GCode/FanMover.cpp Lines 290 to 300 in cc8d90c
you will notice that it does not care about which fan the current command is changing, and for gcode sequence like
it will think the second command is the same as the first one, then the second one get removed: |
Well, that's an evil bug! Is it easy to fix for the mover so that kickstart/speedup can still be used? Even without the mover, however, It's still setting the cooling for the wrong layer though.. the long layer time (and hence no need for lots of cooling) should be for the layer before the change, right ? |
The plan is to exclude the toolchange time at the beginning of each layer, which should work relatively well. Though the better option will be to add that time into previous layer, but that's not possible at current situation due to how each layer is processed individually. |
Yeah, I recall being told about this kind of linear GCODE generation approach that doesn’t allow look back easily. It would have to be some kind of post-processing hack or something , and that feels like a nasty bit of tech debt to add here. I agree that just blowing away the filament swap time from the current layer estimate is “good enough”. thanks for taking the time to address the issue .. I try to be as specific and detailed with my bug reports as possible in the hope that it will make them easier to understand and address. |
…when dealing with layer cooling (SoftFever#7171) If layer starts with a color change, the full layer time will be much longer, which will trick the slicer to think this layer has enough cooling time. However the actual filament extrusion time (the real "printing" part) won't necessarily have enough time to cool down, so if we don't do extra slowing down before starting next layer, the filament could still be soft and lead to worse surface quality.
…7215) Fixes #7171 If layer starts with a color change, the full layer time will be much longer, which will trick the slicer to think this layer has enough cooling time. However the actual filament extrusion time (the real "printing" part) won't necessarily have enough time to cool down, so if we don't do extra slowing down before starting next layer, the filament could still be soft and lead to worse surface quality. Please refer to #7171 for extra discussions and details.  Before:  After:  The test project is modified from #7171
Is there an existing issue for this problem?
OrcaSlicer Version
2.2.0
Operating System (OS)
macOS
OS Version
15.0.1
Additional system information
N/A , slicing issue, not crash/render issue.
Printer
Bambu X1C
How to reproduce
Actual results
Notice that layer 201 improperly has 100% fan speed, as inherited from the filament start GCODE sequence, but the normal "on layer change set fan speed" logic doesn't not appear to trigger, leaving the fan @ 100% for the whole layer, until the following layer. This results in very weak layer bonding in this PETG print (but problem also would apply to most non-PLA/TPU prints).

This is bad because it can result in prints looking like this, with an "easy break" layer inserted in by mistake, where the print will likely be extremely weak:

And here's the offending filament start GCODE that doesn't get clobbered (like it should) by a layer-change fan instruction:
Expected results
Fan speed should be normally set according to the filament cooling rules, not according to filament start code during a filament change. The proper result here would be a fan speed of ~18-19% based on subsequent layers.
Project file & Debug log uploads
FanSpeedLayerChangeIssue.3mf.zip
Checklist of files to include
Anything else?
Nasty bug that's hard to notice unless you happen to look at the fan speed preview!
The text was updated successfully, but these errors were encountered: