Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  
yodajammies

Pillowing in print

Recommended Posts

As much as I like napping on a nice soft pillow, this is not what I had in mind when it comes to printing.

I've read up on the troubleshooting guide (http://support.3dverkstan.se/article/23-a-visual-ultimaker-troubleshooting-guide#pillowing) and it looks like pillowing is mainly caused by:

1. Cooling fans not on

2. Not enough top surface layers

In my part I've got the fans on 100% all the way to the end of the print and my bottom/top thickness is set to .6mm (with a layer height of .07). This would give me ~8 layers of top surface.

Any suggestions on how to tighten up the quality on this surface here? The rest of the part turned out fantastic sans the flat inner surface of this mouth. Could it be a function of my in-fill value of 7%?

Thanks for your help guys!

Settings below:14921628474_b67cc4812a_b.jpg

 


[profile]
layer_height = .07
wall_thickness = .8
retraction_enable = True
solid_layer_thickness = .6
fill_density = 7
nozzle_size = 0.4
print_speed = 75
print_temperature = 220
print_temperature2 = 0
print_temperature3 = 0
print_temperature4 = 0
print_bed_temperature = 70
support = Touching buildplate
platform_adhesion = None
support_dual_extrusion = Both
wipe_tower = False
wipe_tower_volume = 15
ooze_shield = False
filament_diameter = 2.85
filament_diameter2 = 0
filament_diameter3 = 0
filament_diameter4 = 0
filament_flow = 100.0
retraction_speed = 40.0
retraction_amount = 4.5
retraction_dual_amount = 16.5
retraction_min_travel = 1.5
retraction_combing = True
retraction_minimal_extrusion = 0.02
retraction_hop = 0.075
bottom_thickness = 0.3
layer0_width_factor = 100
object_sink = 0.0
overlap_dual = 0.15
travel_speed = 160
bottom_layer_speed = 50
infill_speed = 0.0
inset0_speed = 0.0
insetx_speed = 0.0
cool_min_layer_time = 5
fan_enabled = True
skirt_line_count = 1
skirt_gap = 3.0
skirt_minimal_length = 150.0
fan_full_height = 5.0
fan_speed = 100
fan_speed_max = 100
cool_min_feedrate = 10
cool_head_lift = True
solid_top = True
solid_bottom = True
fill_overlap = 15
support_type = Grid
support_angle = 50
support_fill_rate = 15
support_xy_distance = 0.7
support_z_distance = 0.15
spiralize = False
simple_mode = False
brim_line_count = 20
raft_margin = 5.0
raft_line_spacing = 3.0
raft_base_thickness = 0.3
raft_base_linewidth = 1.0
raft_interface_thickness = 0.27
raft_interface_linewidth = 0.4
raft_airgap = 0.22
raft_surface_layers = 2
fix_horrible_union_all_type_a = False
fix_horrible_union_all_type_b = False
fix_horrible_use_open_bits = False
fix_horrible_extensive_stitching = False
plugin_config = (lp1
(dp2
S'params'
p3
(dp4
sS'filename'
p5
S'TweakAtZ.py'
p6
sa.
object_center_x = -1
object_center_y = -1
[alterations]
start.gcode = ;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line
G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...
end.gcode = ;End GCode
M104 S0 ;extruder heater off
M140 S0 ;heated bed heater off (if you have it)
G91 ;relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
M84 ;steppers off
G90 ;absolute positioning
;{profile_string}
start2.gcode = ;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M104 S{print_temperature} ;Uncomment to add your own temperature line
;M109 T1 S{print_temperature2} ;Uncomment to add your own temperature line
;M109 T0 S{print_temperature} ;Uncomment to add your own temperature line
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
T1 ;Switch to the 2nd extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F200 E-{retraction_dual_amount}
T0 ;Switch to the first extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...
end2.gcode = ;End GCode
M104 T0 S0 ;extruder heater off
M104 T1 S0 ;extruder heater off
M140 S0 ;heated bed heater off (if you have it)
G91 ;relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
M84 ;steppers off
G90 ;absolute positioning
;{profile_string}
start3.gcode = ;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M104 S{print_temperature} ;Uncomment to add your own temperature line
;M109 T1 S{print_temperature2} ;Uncomment to add your own temperature line
;M109 T0 S{print_temperature} ;Uncomment to add your own temperature line
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
T2 ;Switch to the 2nd extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F200 E-{retraction_dual_amount}
T1 ;Switch to the 2nd extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F200 E-{retraction_dual_amount}
T0 ;Switch to the first extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...
end3.gcode = ;End GCode
M104 T0 S0 ;extruder heater off
M104 T1 S0 ;extruder heater off
M104 T2 S0 ;extruder heater off
M140 S0 ;heated bed heater off (if you have it)
G91 ;relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
M84 ;steppers off
G90 ;absolute positioning
;{profile_string}
start4.gcode = ;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M104 S{print_temperature} ;Uncomment to add your own temperature line
;M109 T2 S{print_temperature2} ;Uncomment to add your own temperature line
;M109 T1 S{print_temperature2} ;Uncomment to add your own temperature line
;M109 T0 S{print_temperature} ;Uncomment to add your own temperature line
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
T3 ;Switch to the 4th extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F200 E-{retraction_dual_amount}
T2 ;Switch to the 3th extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F200 E-{retraction_dual_amount}
T1 ;Switch to the 2nd extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F200 E-{retraction_dual_amount}
T0 ;Switch to the first extruder
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...
end4.gcode = ;End GCode
M104 T0 S0 ;extruder heater off
M104 T1 S0 ;extruder heater off
M104 T2 S0 ;extruder heater off
M104 T3 S0 ;extruder heater off
M140 S0 ;heated bed heater off (if you have it)
G91 ;relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
M84 ;steppers off
G90 ;absolute positioning
;{profile_string}
support_start.gcode =
support_end.gcode =
cool_start.gcode =
cool_end.gcode =
replace.csv =
preswitchextruder.gcode = ;Switch between the current extruder and the next extruder, when printing with multiple extruders.
;This code is added before the T(n)
postswitchextruder.gcode = ;Switch between the current extruder and the next extruder, when printing with multiple extruders.
;This code is added after the T(n)

 

Share this post


Link to post
Share on other sites

That sure as hell doesn't look like 8 layers thick top surface. It looks like 1 layer. Plus it's all curvy/swirly. This top surface does not appear to be flat but slopes up and down and such. Which should be fine. But maybe it's confusing Cura? What does it look like in slice view? There should be 6 to 8 layers of diagonal top layer. Not swirly like I see in the photo (which is fine for the top most layer but it should sit on top of 6 to 8 layers of diagonals below).

I suspect there is some bug in Cura such that it's not printing the 6 to 8 layers of tightly packed diagonal solid layers.

I suspect you can fix this in cad by making that layer more flat or maybe Daid can fix this if this is a Cura bug.

 

Share this post


Link to post
Share on other sites

You can also increasing the infil to 25%. Instead of creating a square infil pattern, Cura will make parallel lines much tighter every other layer creating a better bed (or possibly airflow between gaps?) that dramatically reduce/eliminate pillowing.

@robert - maybe consider adding this to your comprehensive guide? seems to work for most people I've suggested it to. (and personally as well)

 

Share this post


Link to post
Share on other sites

First of all gcode files open just fine in notepad. Just drag and drop onto a fresh notepad.

Secondly - that stuff above isn't a .gcode file. It's a .ini file. Do "file" "save profile" and it will create an ini file which is *also* a text file that is human readable with notepad.

 

Share this post


Link to post
Share on other sites

@robert - maybe consider adding this to your comprehensive guide? seems to work for most people I've suggested it to. (and personally as well)

 

That feels counter intuitive to me. It can also create uglier infill in some cases as you're basically creating tons of tiny bridges (had a customer with this problem). If you do a comparison between 24% and 25% you're saying there's a huge difference?

I'm not trying to be argumentative, I just find it strange.

 

Share this post


Link to post
Share on other sites

Between 24% and 25% Cura changes it's algorithm for infill. At 24% it prints basically the same pattern on every layer. At 25% it prints the same pattern but odd layers all the lines are parallel and on the next (even) layer all the lines run in the other direction perpendicular to the odd layer. This pattern looks much more dense looking down on the print but has more gaps (or at least isn't as strong bonding between layers) when looking horizontally.

I have no idea if this truly helps pillowing or not. I would expect it would help as the final support is closer together.

 

Share this post


Link to post
Share on other sites

Yes, I know that's why I was wondering if there was a difference between 24% (normal pattern) and 25% (alternating pattern). Personally I prefer to stay at or under 24% to avoid the other pattern, I don't like it very much.

 

Share this post


Link to post
Share on other sites

That's funny because I use 25% specifically for the denser look/fill. I find bridging across many small squares gives me a much more reliable nice top surface compared to bridging across large squares (which results in the pillowing). In conjunction with around 6 layers of top surface.

I'm not sure if 24% is much different than 25%, but 25% looks a whole lot denser than the default 20% due to the parallel line thing.

My fan is usually at 100% by the time it gets to the top surface, so the only option left besides creating some junk geometry to the side is to increase the infill to solve the pillowing problem. Increasing fan speed isn't a solution to pillowing most of the time because it's already at 100%.

I never noticed 25% infill reduces the quality of print compared to 20.

I'm curious why you don't like the 25% style infill? does it result in a weaker part overall due to the every-other layer bonding?

 

Share this post


Link to post
Share on other sites

I ran a small test at 24, then one at 25%. It looks like 25% will work the best for me after seeing the radical difference between the two. I also slowed down the infill speed just a bit and bumped the nozzle temperature up to 220. 225 is a little too hot and I'm seeing some distortion in my vertical walls.

A couple more test prints and I think I'll have this puppy dialed in just about perfectly for PLA. Next up, ABS.

 

Share this post


Link to post
Share on other sites

and I think I'll have this puppy dialed in just about perfectly

 

:lol: ha ha. um. well. :lol: ha ha. I keep thinking that but then I print something that I've never printed before. And then I have to run some new tests.

 

Share this post


Link to post
Share on other sites

First of all gcode files open just fine in notepad. Just drag and drop onto a fresh notepad.

Secondly - that stuff above isn't a .gcode file. It's a .ini file. Do "file" "save profile" and it will create an ini file which is *also* a text file that is human readable with notepad.

 

Gotcha, thanks for the info.

 

Share this post


Link to post
Share on other sites

I had exactly the same problem whenever I went under 25% the pillows would appear and when I went above I was fine. This was with printing with FilaFlex so I suppose that different materials work better with different patterns. I wish Cura had an option to choose between different patterns.

 

Share this post


Link to post
Share on other sites

If i have seen it right you can not natural divide suface high to layer high. I got trouble if this happens. I print often with no infill and i got alway trouble when i dont care with this. An other point is, that i have good results with 10-12 layers fore the surface with no infill.

I would do the following:

print_speed = 50

layer_height = .07

solid_layer_thickness = n* layer_height = .7

 

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
Sign in to follow this  

  • Our picks

    • Taking Advantage of DfAM
      This is a statement that’s often made about AM/3DP. I'll focus on the way DfAM can take advantage of some of the unique capabilities that AM and 3DP have to offer. I personally think that the use of AM/3DP for light-weighting is one of it’s most exciting possibilities and one that could play a key part in the sustainability of design and manufacturing in the future.
        • Like
      • 3 replies
×

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!