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.74k stars 1.93k forks source link

retraction wipe should be documented and more flexible #4655

Open belm0 opened 4 years ago

belm0 commented 4 years ago

Version

2.2.0+

Behavior

gcode generated by PrusaSlicer with "wipe while retracting" disabled. There is still a wipe, denoted with ***.

G1 X108.925 Y111.225            ; p0
G1 Z0.200                       ; print height
G1 E0.80000 F1800.00000         ; detraction
M204 S1000                      ; acceleration
G1 F600                         ; print speed
G1 X115.075 Y111.225 E0.43625   ; p1
G1 X115.075 Y111.975 E0.05320   ; p2
G1 X108.925 Y111.975 E0.43625   ; p3
G1 X108.925 Y111.315 E0.04682   ; ~p0 (.09mm short)
G1 X109.525 Y111.249 F10800.000 ; small wipe at travel speed...    ***
G1 E-0.80000 F3600.00000        ; retraction
G1 Z0.800 F10800.000            ; z-hop

screen shot of slicer preview with "wipe while retracting" disabled. One of the implicit wipes is highlighted. Screen Shot 2020-08-21 at 10 14 48 PM

screen shot of slicer preview with "wipe while retracting" enabled, showing that this option merely extends the wipe to include the retraction period: Screen Shot 2020-08-21 at 10 16 23 PM

Expected behavior

belm0 commented 4 years ago

I was mistaken-- after further experimenting, the wipe in question appears to be for closing the perimeter.

with shorter extrusion width resulting in a one-way fill line, there is no wipe at retraction:

Screen Shot 2020-08-22 at 1 36 53 PM

Again, with "wipe while retracting" enabled. Note that PrusaSlicer does reverse direction for the retraction wipe when needed.

Screen Shot 2020-08-22 at 1 37 20 PM

it would still be good to document all of this somehow

belm0 commented 4 years ago

An issue with the "perimeter closing wipe" is that it's conflated with retraction. Really we want to control retraction precisely from the point where extrusion stops. But with the perimeter closing wipe usually (but not always) injected, it is hard to control the retraction to make a consistent, clean break.