bambulab / BambuStudio

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

Feature Request: Layer Speed Normalisation Tower #3657

Open kvnper opened 8 months ago

kvnper commented 8 months ago

image

A slicer option to add an automatically generated tower with varying density and/or print speed which normalises the layer time so that all layers are printed at the same PRINT SPEED and with the same/similar LAYER TIME. This means that layers do not need to slow down which can usually cause: (1) Inconsistent surface finish (shiny vs matte, and Vertical Fine Artifacts (VFA) banding) (2) Overheating from the nozzle when using difficult materials (this does not occur with all materials and brands, but does occur with some brands of ABS, PA, etc).

It would be a tower that is automatically generated by the slicer, where the DENSITY and the PRINT SPEED of the tower at each layer varies in order to normalise the model's PRINT SPEED and LAYER TIME.

Why is this better than/What is the benefit over turning off the setting 'slow down printing for better layer cooling'? I print a lot of things for other people in all sorts of material, and a good amount of models that are also not designed for FDM 3D printing. What I've found is that the best way, for me, to prevent overheating issues and an inconsistent layer surface finishes from the speed slow down, is to add a cube and make it the same height as the model in order to make the short layers longer. The downside to this is that all other layers also get this additional time, which adds more print time and material than necessary.

Why is this better than increasing the fan speeds? There are a few reasons:

  1. When increasing the fan speed, the issue of an inconsistent surface finish still remains, which is caused by short layers being printed at a different speed. This is the most common and consistent occuring issue here.
  2. Sometimes you cannot increase the fan speed any more, it's already at maximum.
  3. Sometimes the right side of the model is worse because of the aux fan only being on the left. Not to mention that some printers don't have an aux fan.
  4. Some materials do not play well with higher fan speeds.

Why is this better than slowing down the outer wall to the slowest layer's speed?

  1. First of all, this does not completely solve the issue. See here
  2. VFA banding is a lot more prominent at low speeds.
  3. A slow speed may give an undesired shiny finish. The user may want a matte finish.

What are the benefits of this feature?

  1. Consistent outer surface finish. No more shiny vs matte finishes. And no more different VFA banding due to the different print speeds.
  2. Don't need to set the outer wall speed to the lowest speed in order to have a consistent outer surface quality.
  3. Less model overheating from the nozzle (this overheating does not happen with all materials and brands, but does happen in my experience).
  4. Consistency between print batches which have a different number of duplicated models. For example, when using this tower, a plate with 1 instance of the model will print with the same strength and visual quality as a plate with 10 instances of the model without the tower.
  5. It's faster print-time and less material than adding a rectangular prism manually.
  6. Possibly solves this issue, the support setting 'Independent support layer height' may not need to be disabled: https://github.com/bambulab/BambuStudio/issues/780

What are the drawbacks of this feature?

  1. Longer print time and more material used compared to no tower at all.
  2. Requires bed space for the tower. But, as it would more likely be used with small, thin models, it's not as big of a drawback as it may seem.

Rough drawing of the tower concept, diagonal lines represent the increase/decrease in density/speed:

image

In the case of the print above, the print time is 5.5 hours. If I manually add a rectangular prism that is the same height in order to counteract the model print speed slowdown, the print time goes up by 3 hours for a total of 8.5 hours.

SinanAkkoyun commented 5 months ago

Someone please implement that, or at least a printing pause at each layer, waiting min_layer_time-layer_time seconds

nmkr commented 4 months ago

+1

wrightsh commented 3 months ago

This would be useful for more than just tall parts. Here's an example of a short rectangular part that has some holes going through it. The part on the right was printed as a single unit, and has very strong banding due to differences in layer time. The one on the left looks much better, and has flatter sidewalls because I printed two at once so that the faster layers had more time to cool. I was thinking it might work well to set a minimum time per layer, and slow down the speed of the infill to meet that time, that way you don't need the extra tower and going slow with the infill shouldn't make any difference.

IMG_5393

DrFischie commented 1 month ago

Yes, this is something we need. Please add something like this.