Jump to content
Ultimaker Community of 3D Printing Experts

Gaps between top layers and walls

Recommended Posts

This has been driving me nuts for days. These small gaps where the upper layer meets, or fails to meet, the inner wall. I've got a project for a client and need to get this resolved. This has been repeatable on 3 different printers, CR-10, Ender 3 and Alfawise U20. The picture below is a small test piece I created to try to solve this problem. I've tried every setting I could think of including over extruding by 10% and even with obvious signs of over extrusion it still hasn't fully solved the issue. I'm putting a picture below and a link to the STL file. The original model was created in Fusion 360.


I appreciate any assistance, I've probably got 20 of these pieces printed now and still haven't completely solved it.


hole tier test v1.stl









Edited by 3rdpig

Share this post

Link to post
Share on other sites

Well the fact that it is not symmetrical means that part of the problem is backlash/play.  Most likely only in one axis (X or Y but probably not both).  With power off try pushing the nozzle around and see if it moves before the stepper moves.  Usually play is caused because the belts are loose or the friction is very high.  On an Ultimaker style gantry, put the print head in a corner and pluck the belts and they should be around 100Hz.


But that is not the primary problem.  The primary problem is probably underextrusion although it doesn't look that bad.  Are you using Cura?  Make sure you explicitly set all the line widths the same and to a value equal or only a little smaller than the nozzle width and make sure the wall width is an integer of the line widths.  For example if the shell width is 0.35mm the wall width could be 0.7mm but not 0.8 or 0.6mm (which could cause this issue seen here).


As a quick fix also try increasing the skin overlap.  But if the inner most shell is messed up (say it's set to 0.1mm) then you reall need to fix that instead.


Another quick fix is to drop the speed by 25% and increase the flow by 25%. But this is not a great idea.


Share this post

Link to post
Share on other sites

The parts in the pictures were both sliced in Cura 3.4.1, one was printed on an Ender 3 and one on an Alfawise U20. Yesterday I had a friend print one on his CR10 that I sliced in Cura and all 3 have almost identical gaps in pretty close to the same places. He also sliced the part for me in S3D and the top surface came out perfect (but the side walls of the holes weren't any where near as good as Cura). I sliced another one in Ideamaker and while it had problems elsewhere, the top layer was fine.


With the above in mind it seems unlikely that it's a backlash/play issue, but I will check to make sure.


I really want to use Cura, with the exception of the top layer it's producing the best parts and in the fastest times. It's ability to hide the Z axis hop makes me very happy. I also find it very easy to work with. But the top layer issue is killing it for me. It doesn't do it on everything I design, but where I have holes near straight walls it does it most of the time. 


I will try your suggestions, I've increased flow to 105% (110 was way too much) and I've increased the skin overlap, that produced the parts in the pictures, by far the best I've gotten. And no, it's really not that bad, but I don't want it there at all if possible. Tomorrow I'll try your suggestions about line and wall widths and see if that helps.


Thanks very much for responding!

Edited by 3rdpig

Share this post

Link to post
Share on other sites

Hello @3rdpig, I printed out one of your widgets and it came out fine. No gaps around the skins. It was printed in PETG using a 0.4mm nozzle.




The settings I used are all in the gcode file which isn't much use to you as you don't have the same printer.


Here it is anyway.




Here are the settings from that file:


{"extruder_quality": ["[general]\\nversion = 4\\nname = PETG XL\\ndef
inition = fdmprinter\\n\\n[metadata]\\nposition = 0\\nsetting_version
 = 5\\ntype = quality_changes\\nquality_type = normal\\n\\n[values]\\
nacceleration_wall = None\\nbridge_skin_density = 60\\nbridge_skin_de
nsity_2 = 60\\nbridge_skin_material_flow = 100\\nbridge_skin_speed =
50\\nbridge_skin_speed_2 = 30\\nbridge_skin_speed_3 = 40.0\\nbridge_w
all_material_flow = 100\\nbridge_wall_speed = 50\\nbrim_width = 5\\nc
ool_fan_enabled = True\\ncool_fan_full_at_height = 4\\ncool_fan_min_a
t_height = 2\\ncool_fan_speed = 50.0\\ncool_fan_speed_max = 100.0\\nc
ool_fan_speed_min = 50.0\\ncool_min_layer_time = 10\\ncool_min_layer_
time_fan_speed_max = 15\\ncool_min_speed = 15\\nexpand_skins_expand_d
istance = 2\\nfill_perimeter_gaps = nowhere\\ninfill_before_walls = F
alse\\ninfill_enable_travel_optimization = True\\ninfill_line_width =
 0.5\\ninfill_overlap = 10\\ninfill_pattern = zigzag\\ninfill_sparse_
density = 15\\njerk_wall = 5\\nline_width = 0.5\\nmaterial_flow_layer
_0 = 110\\nmaterial_print_temperature = 240\\nmaterial_print_temperat
ure_layer_0 = 245\\nmin_skin_width_for_expansion = 0.5\\noptimize_wal
l_printing_order = True\\nouter_inset_first = False\\nretraction_amou
nt = 2.5\\nretraction_combing_max_distance = 10\\nretraction_extra_pr
ime_amount = 0\\nretraction_hop = 0.5\\nretraction_hop_enabled = True
\\nretraction_min_travel = 2.5\\nretraction_prime_speed = =retraction
_speed\\nretraction_retract_speed = =retraction_speed\\nretraction_sp
eed = 25\\nroofing_layer_count = 1\\nskin_outline_count = 0\\nskin_ov
erlap = 20\\nskirt_brim_minimal_length = 500\\nskirt_brim_speed = 20.
0\\nskirt_gap = 8\\nspeed_infill = 50\\nspeed_layer_0 = 40.0\\nspeed_
print = 50\\nspeed_roofing = 20.0\\nspeed_topbottom = 40.0\\nspeed_tr
avel = 300\\nspeed_wall_0 = 50.0\\nspeed_wall_x = 50.0\\nspeed_walls_
layer_0 = 15.0\\nsupport_angle = 60\\nsupport_bottom_enable = False\\
nsupport_fan_enable = True\\nsupport_infill_rate = 25\\nsupport_inter
face_enable = True\\nsupport_interface_height = 0.6\\nsupport_pattern
 = zigzag\\nsupport_xy_distance = 1\\nsupport_z_distance = 0.2\\ntop_
bottom_pattern = zigzag\\ntop_bottom_thickness = 0.8\\ntop_skin_expan
d_distance = 3\\ntop_thickness = 0.8\\ntravel_compensate_overlapping_
walls_enabled = True\\nwall_0_wipe_dist = 0\\nwall_line_count = 2\\nw
all_thickness = 1\\nz_seam_corner = z_seam_corner_none\\nz_seam_relat
ive = True\\nz_seam_type = back\\nz_seam_x = 10\\nz_seam_y = 0\\n\\n"
], "global_quality": "[general]\\nversion = 4\\nname = PETG XL\\ndefi
nition = fdmprinter\\n\\n[metadata]\\nsetting_version = 5\\ntype = qu
ality_changes\\nquality_type = normal\\n\\n[values]\\nacceleration_en
abled = False\\nadhesion_type = brim\\nbridge_settings_enabled = True
\\njerk_enabled = False\\nlayer_height = 0.2\\nlayer_height_0 = 0.2\\
nmaterial_bed_temperature = 70\\nmaterial_bed_temperature_layer_0 = 7
5\\nretraction_combing = noskin\\nspeed_slowdown_layers = 1\\nsupport
_enable = False\\ntravel_retract_before_outer_wall = True\\n\\n"}


Share this post

Link to post
Share on other sites

Slightly easier to read settings:


{"extruder_quality": ["[general]
version = 4
name = PETG XL
definition = fdmprinter

position = 0
setting_version = 5
type = quality_changes
quality_type = normal

acceleration_wall = None
bridge_skin_density = 60
bridge_skin_density_2 = 60
bridge_skin_material_flow = 100
bridge_skin_speed = 50
bridge_skin_speed_2 = 30
bridge_skin_speed_3 = 40.0
bridge_wall_material_flow = 100
bridge_wall_speed = 50
brim_width = 5
cool_fan_enabled = True
cool_fan_full_at_height = 4
cool_fan_min_at_height = 2
cool_fan_speed = 50.0
cool_fan_speed_max = 100.0
cool_fan_speed_min = 50.0
cool_min_layer_time = 10
cool_min_layer_time_fan_speed_max = 15
cool_min_speed = 15
expand_skins_expand_distance = 2
fill_perimeter_gaps = nowhere
infill_before_walls = False
infill_enable_travel_optimization = True
infill_line_width = 0.5
infill_overlap = 10
infill_pattern = zigzag
infill_sparse_density = 15
jerk_wall = 5
line_width = 0.5
material_flow_layer_0 = 110
material_print_temperature = 240
material_print_temperature_layer_0 = 245
min_skin_width_for_expansion = 0.5
optimize_wall_printing_order = True
outer_inset_first = False
retraction_amount = 2.5
retraction_combing_max_distance = 10
retraction_extra_prime_amount = 0
retraction_hop = 0.5
retraction_hop_enabled = True
retraction_min_travel = 2.5
retraction_prime_speed = =retraction_speed
retraction_retract_speed = =retraction_speed
retraction_speed = 25
roofing_layer_count = 1
skin_outline_count = 0
skin_overlap = 20
skirt_brim_minimal_length = 500
skirt_brim_speed = 20.0
skirt_gap = 8
speed_infill = 50
speed_layer_0 = 40.0
speed_print = 50
speed_roofing = 20.0
speed_topbottom = 40.0
speed_travel = 300
speed_wall_0 = 50.0
speed_wall_x = 50.0
speed_walls_layer_0 = 15.0
support_angle = 60
support_bottom_enable = False
support_fan_enable = True
support_infill_rate = 25
support_interface_enable = True
support_interface_height = 0.6
support_pattern = zigzag
support_xy_distance = 1
support_z_distance = 0.2
top_bottom_pattern = zigzag
top_bottom_thickness = 0.8
top_skin_expand_distance = 3
top_thickness = 0.8
travel_compensate_overlapping_walls_enabled = True
wall_0_wipe_dist = 0
wall_line_count = 2
wall_thickness = 1
z_seam_corner = z_seam_corner_none
z_seam_relative = True
z_seam_type = back
z_seam_x = 10
z_seam_y = 0

"], "global_quality": "[general]
version = 4
name = PETG XL
definition = fdmprinter

setting_version = 5
type = quality_changes
quality_type = normal

acceleration_enabled = False
adhesion_type = brim
bridge_settings_enabled = True
jerk_enabled = False
layer_height = 0.2
layer_height_0 = 0.2
material_bed_temperature = 70
material_bed_temperature_layer_0 = 75
retraction_combing = noskin
speed_slowdown_layers = 1
support_enable = False
travel_retract_before_outer_wall = True


Share this post

Link to post
Share on other sites

Thanks for the help, I appreciate it. I had to get that one print done by Friday, so I had my friend slice in in S3D for me and it's printing now, but what I'm making is personalized so I'm either going to have to figure this out or buy S3D, but that's just admitting defeat, and I'm not there yet. lol


I made the chances to both wall line width and some of the changes in the gcode above including a large jump in skin overlap and while it's different, it's still there. It's just odd that it's in the same place almost every time. Maybe I should rotate the part 180 on the bed and see if it moves with the part. 


Ideamaker gets the top surface right, but messes up the inner walls and floor in the hole. I haven't tweaked it much, I don't care much for the UI.


I'm going to work more on this over the weekend, I'd really like to get this figured out, if only for my own sanity.

Share this post

Link to post
Share on other sites
11 hours ago, smartavionics said:

How much fan are you using? I wonder if it's too much and that's causing shrinkage and poor adhesion between the skin and the wall.


 I typically run the part cooling fan at 80% after the second layer for PLA. 


One of my original thoughts was that the gaps were only on one side because the part cooling fan on the U20 blows from one side only. So I ran the same part on my Ender 3 with the Petsfang cooler and had the same result.


I've got prints in progress now, but as soon as one is done I'll try lowering the fan speed and see if that helps. There's no bridging on this particular part so a high fan speed probably isn't necessary But it still brings up the question of why among 3 slicers, Cura, Ideamaker and S3D, why Cura is the only one exhibiting this problem?

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!