Jump to content

Pillowing in print


yodajammies

Recommended Posts

Posted · Pillowing in print

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)

 

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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)

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    I'm a total newbie here, but how do you get the gcode above as the files don't seem to open in Notepad?

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    to avoid pillowing: go slower. The molten plastic 'breaks' on the first layer on top of the infill. Of coarse denser infill helps too.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

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

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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?

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    You guys were spot on with your diagnosis. I printed the upper tooth palette with a higher infill and a few more top layers and the problem almost completely vanished.

    Go team ultimaker!

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    So what infill did you end up using? 25%?

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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.

     

  • Link to post
    Share on other sites

    Posted · Pillowing in print

    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

     

  • 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
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...