supermerill / SuperSlicer

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

Avoid crossing perimeter (is still crossing perimeter) #2398

Open TommyC81 opened 2 years ago

TommyC81 commented 2 years ago

What happened?

I'm using setting "Avoid crossing perimeter" with "Max detour length" set to 0 (zero) - this should disable the detour length consideration and simply avoid crossing the perimeter all the time. However, I'm getting lots of perimeter crossing in places where I'd expect it to be avoided.

Example project and images attached.

Project file & How to reproduce

Avoid perimeter crossing - example.zip Avoid perimeter crossing - setting Avoid perimeter crossing - example

Version

2.3.57.10

Operating system

Windows 10

Printer model

Creality CR6

Pavulon87 commented 2 years ago

It looks like this has stopped working since SuperSlicer_2.3.57.7 2.3.56.6: 2 3 57 6 2.3.57.7 and newer: 2 3 57 7

TommyC81 commented 2 years ago

154225372-c763fae5-d533-46c0-a467-aa7cd556d1fa

To note that also in the screenshot from v2.3.56.6 from Pavulon87, the red-circled (with additional red line) shortcuts through the perimeter should not happen - the "correct" path should be via the already printed area (black line).

TommyC81 commented 2 years ago

2022-02-19 - Nightly avoid perimeter fail Avoid perimeter crossing - example (nightly 2022-02-19).zip

To confirm, the avoid crossing perimeter works better in the nightly from 2022-02-19. However, note the repeated perimeter crossing that I highlighted in previous post is still occurring. Image and project file attached.

supermerill commented 2 years ago

The new algo from 1.3.57.7 need a bit more width (#1794), hence why it's now failing at this object ( it needs to be scaled by 140% to recover good behaviour).

The algo should fall-back to 'old' behaviour of following the external perimeter when it's too thin, I'll have to investigate a lot to find why it's failing.

Ygle38 commented 2 years ago

Hello, Just another case of crossing perimeter, with supports. (2.4.58.2)

c2v4 commented 2 years ago

Yeah, I have the same issue. I found out that this only shows up for a certain range of travel: image In layers that are close to those that are affected by it, infill join is in the same place as well as the 'turn point' of internal perimeter. I've attached my project file in case that would help you find the answer. SS Version: 2.4.58.2 k40exhaust-Body1-1.zip