New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

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

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

This comment has been minimized.

Show comment
Hide comment
@elkooo

elkooo 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 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

This comment has been minimized.

Show comment
Hide comment
@elkooo

elkooo 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...

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

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Dec 23, 2014

Member

@elkooo, is this fixed in 1.2.1?

Member

alexrj commented Dec 23, 2014

@elkooo, is this fixed in 1.2.1?

@alexrj alexrj modified the milestones: 1.2.2, 1.2.3, 1.2.4 Dec 23, 2014

@alexrj alexrj modified the milestones: 1.2.4, 1.2.5 Jan 4, 2015

@alexrj

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Jan 4, 2015

Member

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

Member

alexrj commented Jan 4, 2015

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

@elkooo

This comment has been minimized.

Show comment
Hide comment
@elkooo

elkooo 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 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

This comment has been minimized.

Show comment
Hide comment
@elkooo

elkooo 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.

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

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Jan 6, 2015

Member

@elkooo, are you using Avoid crossing perimeters?

Member

alexrj commented Jan 6, 2015

@elkooo, are you using Avoid crossing perimeters?

@alexrj

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Jan 6, 2015

Member

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

Member

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

This comment has been minimized.

Show comment
Hide comment
@elkooo

elkooo 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

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

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Jan 7, 2015

Member

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

Member

alexrj commented Jan 7, 2015

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

@elkooo

This comment has been minimized.

Show comment
Hide comment
@elkooo

elkooo 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

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

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Jan 7, 2015

Member

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.

Member

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

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Jan 8, 2015

Member

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

Member

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 added a commit that referenced this issue Jan 8, 2015

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
@alexrj

This comment has been minimized.

Show comment
Hide comment
@alexrj

alexrj Jan 8, 2015

Member

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

Member

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.

@elkooo

This comment has been minimized.

Show comment
Hide comment
@elkooo

elkooo 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!!

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