prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.68k stars 1.93k forks source link

PS 2.5 Arachne engine + supports: inconsistent layer height gcode (interleaving supports & model layers) #8964

Open rsurgiewicz opened 2 years ago

rsurgiewicz commented 2 years ago

Description of the bug

PrusaSlicer 2.5 on windows (doesn't matter) with arachne engine generates gcode that produces poor quality print in some cases. In my case supports are printed with 0.25 layer height and model itself with 0.3. Such behavior causes that printer is "interleaving" support layer and model layers (observed on gcode preview). prusa-slicer_DEOPR452AR prusa-slicer_5ERkzRfmlu

When switching to "classic" engine, generated gcode print is normal. prusa-slicer_xxvZmS5Hct

In the end the quality of the print is degradated Arachne: image Classic: image

I know that the print on this particular photo differs in layer height, but problem that I have written about could be seen regardless of the print itself (in gcode preview)

Project file & How to reproduce

Normal behavior observed in "model_classic_OK.3mf" Incorrect behavior observed in "model_arachne_NOK.3mf" Arachne_vs_classic_PS_2.5_inconsistent_layers.zip

Steps to reproduce:

  1. Open "model_arachne_NOK.3mf"
  2. Slice & go to Preview
  3. Scroll between layers and drag horizontal slider to see actual tool moves
  4. Observe that supports and model layers are misaligned and printed with some space between.

Checklist of files included above

Version of PrusaSlicer

2.5.0+win64

Operating system

Windows 10

Printer model

Original Prusa MK3S

rtyr commented 2 years ago

The support layers are not synchronized with the object layers, it is normal and intended behaviour, no matter what slicing engine is used. Supports are using independent (and variable) layer height.

This allows to follow the gap between the object and the support top surface precisely. Other slicers (slicers not based on original Slic3r) usually allow the gap only in multiples of object layers. It also allows the support layers to grow faster than the object layers. It may of course have also some downsides, related to stringing etc.

rtyr commented 2 years ago

It is currently not possible to disable variable layer height for supports, only for Multi-material prints with 0 contact distance.

There is feature request for it https://github.com/prusa3d/PrusaSlicer/issues/553.

rsurgiewicz commented 2 years ago

Ok I see, so then it's a matter of quality deterioration when using arachne. One strange observation that with arachne perimeter generation layers are not synchronized, but when using classic layers are in sync. I thought that the quality is affected by behavior with layers being interleaved.

rtyr commented 2 years ago

Ok I see, so then it's a matter of quality deterioration when using arachne.

The prints on the photo are printed with very different settings, did you try it with same settings, only with different slicing engine?

rsurgiewicz commented 2 years ago

Printing right now, the only difference would be perimeter generation engine. I'll post an update within 1.5h

rtyr commented 2 years ago

I believe I see what is happening. It is mainly about different order of printing perimeters with arachne with this particular model. "External" visible perimeters of the tube are printed first after long travel between the two tubes.

rsurgiewicz commented 2 years ago

I don't know how much difference does it cause but somehow with "classic" two perimeters are more tightly placed next to each other classic image arachne prusa-slicer_tAAtQobSbd

rtyr commented 2 years ago

I don't know how much difference does it cause but somehow with "classic" two perimeters are more tightly placed next to each other

That is expected and also one of the reasons why to use Arachne engine. The wall is too thin for 2 perimeters with standard extrusion width, classic slicing engine just overlapped them.

n8bot commented 2 years ago

Can't you disable the variable layer height in supports by changing your printer settings to have min and max layer height == the fixed layer height? It doesn't seem like the user is using any of the variable layer height features.