supermerill / SuperSlicer

G-code generator for 3D printers (Prusa, Voron, Creality, etc.)
4.08k stars 517 forks source link

Completely different overhang / infill behavior when part is rotated 90 degrees #1157

Open DasBootU96 opened 3 years ago

DasBootU96 commented 3 years ago

Do not report Prusa3D Slic3r bugs here without confirming it is a problem on a development release of Slic3r, or your issue will be closed. Development builds of Slic3r. Prusa3D Issue Tracker

Describe the bug Completely different overhang / infill behavior when part is rotated 90 degrees

To Reproduce Steps to reproduce the behavior:

  1. copy / download https://github.com/VoronDesign/Voron-2/blob/Voron2.4/STLs/VORON2.4/Gantry/X_Axis/X_Carriage/Printheads/TriangleLab_Dragon/printhead_front_dragon.stl

  2. drag drop the printhead_front_dragon.stl in SS. Make a copy of printhead_front_dragon.stl or drag & drop printhead_front_dragon.stl again in SS. You now have identical printhead_front_dragon.stl in SS.

  3. rotate one of the printhead_front_dragon.stl parts 90 degrees and slice

  4. examine layer 130 (@0.2mm) with overhangs. For the rotated part, overhangs are printed in mid air and shows perimeter lines where there should be infill.

3D Model and Slic3r Configuration Export Please upload a ZIP archive containing a copy of the 3D model you are seeing this bug with and a CTRL-E export of the configuration used. printhead_front_dragon.zip

Expected behavior Expected behavior is that overhangs are not printed in mid air and infill is not printed as perimeters.

Screenshots If applicable, add screenshots to help explain your problem. ssoverhangs

printhead_front_dragon.emf.zip

Desktop (please complete the following information):

Additional context Issue seen in SS 2.3.56.0 and SS 2.3.55.2. Issue not present in PS2.3.1

neophyl commented 3 years ago

It seems to be caused by the Extra Perimeter on overhangs setting. One thing I've noticed with both SuSi and PS is that bridge infill direction can be a bit sub optimal when its automatic, often going the long direction rather than the shortest.

Notice how if you turn off extra perimeters on overhangs (a setting not in PS) the bridge direction relative to the part is different and goes the same direction for both part rotations. Ideally they should both bridge the shortest distance no matter which way the part is rotated but they aren't.
When you combine this with the Extra Perimeters on overhangs you get the 2 different results on the slice I suspect.

It doesn't happen in PS because it does'nt have that function/setting.

DasBootU96 commented 3 years ago

Yes, turning off extra perimeters: [v] on overhangs gives the exact behavior you mentioned:

ssextraperimoverhangs

thanks @neophyl

supermerill commented 3 years ago

that's a bug in the bridge detection, as it shouldn't fill bridge area.

supermerill commented 2 years ago

I checked and it's because the bridge angle is set to 180°, so bridges can only have one direction, hence the different behavior if rotated.