retraction: done after moving printhead outside of the geometry --> stringing! #2253

Closed
elkooo opened this Issue Sep 3, 2014 · 15 comments

Projects

None yet

2 participants

@elkooo
elkooo commented Sep 3, 2014

Hey guys,

I got over a problem lately with Slic3r 1.1.7.
I found out that if you use multiple geometries sometimes retraction is not done inside the geometry but the printhead moves outwards first (which caused stringing in some prints…).
I had these issues more often, the more complex the geometry was and more often if I use the rotating function of slic3r to adjust the parts orientation on the printbed.

Hereby I provide a screenshot of the gcode-visualizer showing the retractions as ret dots. As you can see, there is one outside the geometry (the bright green lines are non-extrusion moves…). gcode and stl file can be mailed if necessary…

best regards
elkooo

screenshot

@elkooo
elkooo commented Sep 4, 2014

…did some further research on that one. Seems to come from the "seam_position = random". As soon as I choose «aligned», everything seems to be just fine and no retractions are done outside of perimeters. Don't know if it occurs in V. 1.2 though.

@elkooo
elkooo commented Sep 9, 2014

some further research:
I found out that slic3r 1.1.2 brought me well better results in terms of the mentioned issue. Aswell there is much more movement of the printhead in 1.1.7.
The following picture shows the same STL file, sliced with the same setup, once in V.1.1.7 (left) and once in V.1.1.2 (right)…
bildschirmfoto 2014-09-09 um 16 14 30
Grey lines are non-extrusion moves...

@alexrj
Owner
alexrj commented Dec 23, 2014

@elkooo, is this fixed in 1.2.1?

@alexrj alexrj modified the milestone: 1.2.2, 1.2.3, 1.2.4 Dec 23, 2014
@alexrj alexrj modified the milestone: 1.2.4, 1.2.5 Jan 4, 2015
@alexrj
Owner
alexrj commented Jan 4, 2015

@elkooo, did have you have a chance to check whether this was fixed in the recent versions?

@elkooo
elkooo commented Jan 4, 2015

hey alexrj,
sorry I was on holiday and did not have the chance to test during the last two weeks. I'll get back with new info next week.
Lately i was using still version 1.1.2 since all the versions above did either not give me nice results or did crash too often (everything above 1.2 does not work propperly on my mac especially when trying to slice multiple stls or complex geometries).

I'll check though and come back with further news ASAP.

@elkooo
elkooo commented Jan 6, 2015

...just sliced a RasperyPi case... seems to be present in 1.2.4 still...
bildschirmfoto 2015-01-06 um 10 24 23
bildschirmfoto 2015-01-06 um 10 24 52
The printhead moves outside the print at the seem-position before retraction is done.

@alexrj
Owner
alexrj commented Jan 6, 2015

@elkooo, are you using Avoid crossing perimeters?

@alexrj
Owner
alexrj commented Jan 6, 2015

If you aren't, I'd need a STL file and a config (File -> Export config...) to reproduce the issue...

@elkooo
elkooo commented Jan 7, 2015

Avoid crossing perimeters is not used.
I usualy do not use it since it takes really long to slice and my nozzle does not ooze too much so the advantage is normally not perceptible.
How do I add the config file? Seems I can't upload it directly to this github post...
... I sliced the two files found here: http://www.thingiverse.com/thing:608169/#files

@alexrj
Owner
alexrj commented Jan 7, 2015

Copy and paste the contents of the config file in a comment overhere

@elkooo
elkooo commented Jan 7, 2015

generated by Slic3r 1.2.4 on Wed Jan 7 09:25:31 2015

avoid_crossing_perimeters = 0
bed_shape = 0x0,350x0,350x300,0x300
bed_temperature = 60
bottom_solid_layers = 3
bridge_acceleration = 0
bridge_fan_speed = 100
bridge_flow_ratio = 1
bridge_speed = 30
brim_width = 0
complete_objects = 0
cooling = 0
default_acceleration = 0
disable_fan_first_layers = 1
dont_support_bridges = 1
duplicate_distance = 6
end_gcode = T1 ; choose extruder 1\nM104 S0 ; turn off temperature\nT0 ; choose extruder 0\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG1 Y33.0 F4000 ; home Y axis\nG28 X0.00 ;\nM84 ; disable motors
external_fill_pattern = rectilinear
external_perimeter_extrusion_width = 0
external_perimeter_speed = 25
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extruder_offset = 0x0,33x0.3
extrusion_axis = E
extrusion_multiplier = 1,1
extrusion_width = 0
fan_always_on = 0
fan_below_layer_time = 60
filament_diameter = 2.9,3
fill_angle = 0
fill_density = 25%
fill_pattern = honeycomb
first_layer_acceleration = 0
first_layer_bed_temperature = 60
first_layer_extrusion_width = 200%
first_layer_height = 0.2
first_layer_speed = 60%
first_layer_temperature = 205,193
gap_fill_speed = 20
gcode_arcs = 0
gcode_comments = 0
gcode_flavor = reprap
infill_acceleration = 0
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_speed = 30
interface_shells = 1
layer_gcode =
layer_height = 0.2
max_fan_speed = 100
min_fan_speed = 35
min_print_speed = 10
min_skirt_length = 3
notes =
nozzle_diameter = 0.35,0.35
octoprint_apikey =
octoprint_host =
only_retract_when_crossing_perimeters = 0
ooze_prevention = 0
output_filename_format = Macherei40mm_s-[input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 25
perimeters = 3
post_process =
pressure_advance = 0
raft_layers = 0
resolution = 0
retract_before_travel = 2,2
retract_layer_change = 1,1
retract_length = 1.6,1.6
retract_length_toolchange = 6,8
retract_lift = 0,0
retract_restart_extra = 0,0
retract_restart_extra_toolchange = 0,0
retract_speed = 10,10
seam_position = random
skirt_distance = 4
skirt_height = 1
skirts = 4
slowdown_below_layer_time = 15
small_perimeter_speed = 25
solid_infill_below_area = 50
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0
solid_infill_speed = 25
spiral_vase = 0
standby_temperature_delta = -10
start_gcode = G28 ; home all axes\nG1 Y33.000 F2000 ; move Y axis out of clamp-interference
support_material = 0
support_material_angle = 0
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_extruder = 1
support_material_interface_layers = 3
support_material_interface_spacing = 0
support_material_interface_speed = 100%
support_material_pattern = rectilinear
support_material_spacing = 2.5
support_material_speed = 25
support_material_threshold = 45
temperature = 205,193
thin_walls = 1
threads = 10
toolchange_gcode =
top_infill_extrusion_width = 0
top_solid_infill_speed = 22
top_solid_layers = 4
travel_speed = 300
use_firmware_retraction = 0
use_relative_e_distances = 0
vibration_limit = 0
wipe = 1,1
xy_size_compensation = 0
z_offset = 0

@alexrj
Owner
alexrj commented Jan 7, 2015

Okay, thank you, I'm able to reproduce it.
It's yet one more case where the inwards move after completing the external loop is generated outwards instead of inwards.

@alexrj
Owner
alexrj commented Jan 8, 2015

@elkooo, out of curiosity and unrelated: why did you disable only_retract_when_crossing_perimeters? You're getting tons of retractions without it...

@alexrj alexrj added a commit that referenced this issue Jan 8, 2015
@alexrj The inwards move after an external loop was still randomly generated …
…outwards in some cases. Perimeters are now generated with a distinct iterator for each slice. Nested islands are also correctly supported too. Various regression tests included. #2253
406d045
@alexrj
Owner
alexrj commented Jan 8, 2015

Anyway, I fixed this. Thank you for reporting it. Code is much nicer after this work, by the way, and also a bit faster.

@alexrj alexrj closed this Jan 8, 2015
@elkooo
elkooo commented Jan 8, 2015

Not sure why I switched it of... perhaps some inside perimeters were ignored in some previous version or something like that at least I guess to remember... perhaps I should switch « only_retract_when_crossing_perimeters» back on. Thank you for fixing and keep up your great work!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment