Jump to content
Ultimaker Community of 3D Printing Experts

Warping on a flat part after it is finished


Recommended Posts

Posted (edited) · Warping on a flat part after it is finished

Hi,

 

i could use some help. I try to print an open relatively large mold at work. The problem is that the part is always warping after it is finished and cooled. 

Its not the usual warping problem at the corners. its more like the part warping in the middle of the part. During printing, everything seems nice and flat, but after printing, when the bed cools, it warps.

 

I have attached a photo where you can see it. The warping is not only at the bottom of the part, it is rather the whole part that is deformed.

IMG_20210429_084429.thumb.jpg.077c60841ed18d2061705017bec08db2.jpg

 

i think it's because the part is unevenly thick and it cools unevenly as the plate cools. 
Does anyone have a suggestion on what adjustment i can make to correct the problem. Constructively, the only thing I can think of is to reduce the thickness of the surrounding rim. 

I print with Colorfabb PLA, but have also tried Ultimaker PLA and tough PLA. 


Print speed all settings 15m/s; 15% infill, 4 walls, ironing, 0.2 layerheight. I usually print directly onto the glass, but have also tried PrintaFix. 

 

Thanks for your help,

Jan

 

IMG_20210429_084455.thumb.jpg.9e11f5bf28072b17d00d6ffe26661b83.jpgIMG_20210429_084534.thumb.jpg.90782672559c94c327e55e0e62b61c45.jpg

Edited by helmut92
  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    It's PLA and typically the shrink % is pretty low, but it isn't 0.  The shrinkage is affected by cross-section, variations in thickness, uneven cooling, moisture content, and other factors.  

    PLA suffers from cold flow deformation at fairly low temps.  Maybe you could use that to "anneal" it.

     

    It would require some experimentation but If you were to put one of your finished parts on a flat hot plate, cover it, and bring it up to say 120°C(?) slow enough so that it heats evenly, and then turn the temperature down over the course of some period of time (an hour?) so that it cools evenly, you may get the part to "relax" onto the flat plate.

     

    Be advised that starting at too high of a temperature could turn your nice part into a puddle of PLA possibly causing you some personal embarrassment among your co-workers.

  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    thank you for your answer, I will certainly try that.

     

    can i adjust the gcode in cura so that the print bed cools down very slowly after printing?

  • Link to post
    Share on other sites
    Posted (edited) · Warping on a flat part after it is finished
    19 hours ago, helmut92 said:

    can i adjust the gcode in cura so that the print bed cools down very slowly after printing?

    You didn't mention your printer.  My Creality machine has an End G-Code that Cura inserts at the end of any gcode file.  I would make an adjustment there.  If you have an Ultimaker printer you might still get it to work.  An option would be to add it manually to the end of a gcode file.

    There will be a line "M140 S0" that turns the bed off.  Comment that out and put the following at the end where it will execute last.  I'm assuming a bed temperature of 60°.

     

    ;M140 S0  ;Add a semi-colon to make the line a comment

     

    M190 R60

    G4 S3000

    M190 R50

    G4 S3000

    M190 R40

    G4 S3000

    M190 R30

    G4 S3000

    M140 S0

    The M190 R tells the printer to wait until the bed cools to the indicated temperature.  The G4 command is "dwell" and the S is in seconds.  The above snippet sets the bed to 60 and waits for it to get there, then pauses for 5 minutes, sets the bed to 50, waits to get there, and then pauses for 5 minutes, etc.  It shows 10° steps and 5 minute dwells.  You could adjust the number of steps, the degrees / step that the temp falls, and/or the dwell time between steps.

    Don't allow drafts on the part.  I would still consider a cover because the top of the part will want to cool first.  The plan is to allow any stresses to relax at the same rate so no one area will pull at another area.

     

     

     
    Edited by GregValiant
  • Link to post
    Share on other sites
    Posted (edited) · Warping on a flat part after it is finished

    Oh yeah i forgot to mention, that i use an Ultimaker 3. 

    so these are the last few lines of the g-code. there is the command 140 in there twice, which one do i need to replace?

     

    ;TIME_ELAPSED:10207.757117
    G1 F1500 E712.09729
    M140 S0
    M107
    G91 ;Relative movement
    G0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction
    G0 F10000 Z1.5 E4.5 ;Compensation for the retraction
    G90 ;Disable relative movement
    M82 ;absolute extrusion mode
    M104 S0
    ;End of Gcode
    ;SETTING_3 {"extruder_quality": ["[general]\\nversion = 4\\nname = Ultimaker Tou
    ;SETTING_3 gh PLA fine 0,2\\ndefinition = ultimaker3\\n\\n[metadata]\\ntype = qu
    ;SETTING_3 ality_changes\\nsetting_version = 16\\nintent_category = default\\nqu
    ;SETTING_3 ality_type = draft\\nposition = 0\\n\\n[values]\\nbottom_layers = 4\\
    ;SETTING_3 ncool_min_layer_time = 20\\nfill_outline_gaps = True\\nfill_perimeter
    ;SETTING_3 _gaps = nowhere\\ninfill_line_width = 0.4\\ninfill_overlap = 10\\ninf
    ;SETTING_3 ill_pattern = gyroid\\ninfill_sparse_density = 10\\ninfill_sparse_thi
    ;SETTING_3 ckness = 0.2\\nironing_inset = =(0.3) + skin_line_width * (1.0 - iron
    ;SETTING_3 ing_flow / 100) / 2\\nironing_line_spacing = 0.15\\nline_width = 0.4\
    ;SETTING_3 \nmaterial_initial_print_temperature = 200\\nmaterial_print_temperatu
    ;SETTING_3 re = 224\\noptimize_wall_printing_order = True\\nouter_inset_first = 
    ;SETTING_3 True\\nretract_at_layer_change = True\\nretraction_count_max = 10\\nr
    ;SETTING_3 etraction_hop = 1\\nskirt_brim_minimal_length = 30\\nspeed_infill = 2
    ;SETTING_3 5\\nspeed_ironing = 12\\nspeed_layer_0 = 15\\nspeed_print = 70\\nspee
    ;SETTING_3 d_topbottom = 20\\nspeed_wall_0 = 15\\nspeed_wall_x = 20\\ntop_layers
    ;SETTING_3  = 4\\ntravel_avoid_supports = True\\nwall_line_count = 3\\nwall_line
    ;SETTING_3 _width_0 = 0.4\\nwall_line_width_x = 0.4\\nxy_offset_layer_0 = -0.15\
    ;SETTING_3 \nz_seam_type = back\\nz_seam_x = 0\\nz_seam_y = 0\\n\\n", "[general]
    ;SETTING_3 \\nversion = 4\\nname = Ultimaker Tough PLA fine 0,2\\ndefinition = u
    ;SETTING_3 ltimaker3\\n\\n[metadata]\\ntype = quality_changes\\nsetting_version 
    ;SETTING_3 = 16\\nintent_category = default\\nquality_type = draft\\nposition = 
    ;SETTING_3 1\\n\\n[values]\\nbrim_line_count = 5\\nskirt_brim_speed = 15\\nspeed
    ;SETTING_3 _support = 20\\nsupport_angle = 60\\nsupport_infill_rate = 30\\nsuppo
    ;SETTING_3 rt_infill_sparse_thickness = 0.24\\nsupport_offset = 0.2\\nsupport_xy
    ;SETTING_3 _distance = 0.4\\n\\n"], "global_quality": "[general]\\nversion = 4\\
    ;SETTING_3 nname = Ultimaker Tough PLA fine 0,2\\ndefinition = ultimaker3\\n\\n[
    ;SETTING_3 metadata]\\ntype = quality_changes\\nsetting_version = 16\\nintent_ca
    ;SETTING_3 tegory = default\\nquality_type = draft\\n\\n[values]\\nacceleration_
    ;SETTING_3 enabled = False\\nadhesion_extruder_nr = 1\\njerk_enabled = False\\nl
    ;SETTING_3 ayer_height = 0.2\\nlayer_height_0 = 0.2\\nprime_tower_enable = True\
    ;SETTING_3 \nprime_tower_position_x = 200\\nprime_tower_position_y = 180\\nsuppo
    ;SETTING_3 rt_enable = False\\nsupport_extruder_nr = 1\\nsupport_type = everywhe
    ;SETTING_3 re\\n\\n"}

     

    Thanks for your help!

     

    EDIT:

    Oh forget it, its M140 and M104.🙈 

    Edited by helmut92
  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    I looks like the Ultimaker adds the line from within Cura (rather than as an ending Gcode script).

     

    There are two ways to do it.  If you think you would use the cool-down script all the time you could put it at the end of your "End Gcode" script in the printer Machine Settings in Cura.  The M140 S0 line would still be there but the code will execute so fast in the printer that the bed won't have time to cool down before it hits the first M190 line.

     

    If it's a one-shot deal then open the gcode file and insert the cool-down code between the "M104 S0" line and the ";End of Gcode" line and also comment out the "M140 S0" line with a semi-colon in front.  That will allow the print to complete, the hot end to turn off, and the bed will slowly cool over time.  M190 with the R parameter should be enabled in your firmware (I'm not an Ultimaker guy).

     

    M140 S0  ; existing line that will turn off the bed.  If you edit the gcode file this would become a comment.

    .... ;  some already existing end-of-print-code 

    M104 S0  ;existing line that turns off the hot end

    M190 R60  ; first new line that will turn the bed back on

    G4 S3000

    M190 R50

    G4 S3000

    M190 R40

    G4 S3000

    M190 R30

    G4 S3000

    M140 S0 ; turn the bed off - is the last line of your cool down code.

    ;End of gcode

    You definitely want the hot end off so it doesn't ooze while the bed is cooling down.  I still think a cover would be a good idea.  Don't let your significant other know that you stole a pot lid for the printer.

     

  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    Maybe 15% infill isn't enough? For moulds, I use 25%, and to me that already feels like the minimum. After printing, my moulds are totally flat, but they are much smaller, about 10cm long.

     

    Did you post-process the thing? I found that chemical smoothing with dichloromethane tends to make moulds warp slightly too. Especially since I only smooth the inside (=casting side), not the outside of the shell, so it is uneven. Probably the chemicals go deep into the material, and into the hollows of the infill, and keep working there. Acetone smoothing tends to make them crack after some time.

     

    Also, I would be carefull with annealing: it might destroy your parts, or change their dimensions too much to be acceptable. I found that ruler-like parts shrink severely in length, but expand in height. A bit similar to a thin piece of plastic that you overheat above a fire or with a hot gun. Also, my test parts tended to warp severely. Some first warp upwards, and after a while change direction and start warping downwards.

     

    If your parts do stick well to the glass, maybe try a slightly lower bed temp? Stay below glass transition temp, instead of at it or above it? And indeed, I would also recommend very slow cooling, as described above. That should never hurt. I did the tests in a controlled lab-oven, but you could also cover the model in the printer with a simple box, so it gets a smooth even temperature.

     

    Fridge box for slow cooling or annealing on the printer:

    annealing_box.thumb.jpg.793349f158ebb7f96e73a2c883e9c791.jpg

     

    Warped and shrunk severely after annealing test (PLA, up to 70°C or so, don't exactly remember):

    warped1.thumb.jpg.c796132c0f7622f90d967d7645ae0c9c.jpg

     

    Annealing tests: some parts warp upwards, some up first, then downwards later on:

    annealed_warped2.thumb.jpg.8c23207ac1458cd42eb4dc6cfa87670c.jpg

     

     

     

    • Like 1
    Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    @geert were your tests done before the part had cooled(?) or did you bring them back up after they had been to room temp?  Now I'm curious is there would be a difference.  I know PLA parts will flow in a hot car (so much for the wife's phone holder - it looked like something from a Salvador Dali painting).

  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    Hi, 

    thanks for the code.

    I took it directly and started a test print. Since the printed parts adhere quite well to the glass plate, I have lowered the print bed temperature to 45°. let's see if this works. If necessary, I still have Printafix there. 

     

    I will print the form again over night. I will adjust the infill to 40%. The print should be ready tomorrow morning, shortly after I start working. Then I can directly put a microwave cover over the printed part, which I stole from the kitchen. 

     

    I currently rework the parts only with some sandpaper, but not chemically. 

     

    I tried the annealing, but after that my mold looked like on geert_2 second picture. 

     

    I will keep you updated, thanks for your help.

  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    "Then I can directly put a microwave cover over the printed part, which I stole from the kitchen."

    Make sure your supervisor knows how cost conscious you are.  His/her acknowledgement will give you some comfort when your wife berates you for using that lid.

  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    😄 😄

     

    i think the command M190 R60 does not work with the UM3. as soon as the print is "ready", the UM shows the error ER24. Can I somehow unlock the command?
    The good thing is that the print bed temperature stays on and then I can theoretically turn it down manually. 

  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    If it doesn't work then it isn't enabled in the firmware.  You can try it with an S instead of the R as M190 S50.  That will set the temp and then the dwell command should still take effect.  The R parameter would keep the buffer from reading a bunch of following commands but it may not be necessary if the Dwell works to keep commands from executing until the dwell ends.

  • Link to post
    Share on other sites
    Posted (edited) · Warping on a flat part after it is finished

    Unfortunately, this doesn't quite work either. Although there is no more error, the printer simply stops after the end of printing. The print head cools down, but remains about 5 mm above the print part. The print bed does not lower completely and remains at 45°C, but does not cool down after the specified time.

     

    i post times the changed end of the gcode. maybe i took over something wrong.  

     

    ;TIME_ELAPSED:70029.768827
    G1 F1500 E113.80183
    ;M140 S0
    M107
    G91 ;Relative movement
    G0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction
    G0 F10000 Z1.5 E4.5 ;Compensation for the retraction
    G90 ;Disable relative movement
    M82 ;absolute extrusion mode
    M104 S0
    M190 S45  ; first new line that will turn the bed back on
    G4 S4500
    M190 S400
    G4 S4500
    M190 S35
    G4 S4500
    M190 S30
    G4 S4500
    M190 S25
    G4 S4500
    M140 S0 ; turn the bed off - is the last line of your cool down code.
    ;End of Gcode
    ;SETTING_3 {"extruder_quality": ["[general]\\nversion = 4\\nname = Ultimaker PLA
    ;SETTING_3  fine\\ndefinition = ultimaker3\\n\\n[metadata]\\nintent_category = d
    ;SETTING_3 efault\\nsetting_version = 16\\nposition = 0\\ntype = quality_changes
    ;SETTING_3 \\nquality_type = draft\\n\\n[values]\\nbottom_layers = 4\\ncool_min_
    ;SETTING_3 layer_time = 20\\nfill_outline_gaps = False\\nfill_perimeter_gaps = n
    ;SETTING_3 owhere\\ninfill_line_width = 0.4\\ninfill_overlap = 10\\ninfill_patte
    ;SETTING_3 rn = gyroid\\ninfill_sparse_density = 40\\ninfill_sparse_thickness = 
    ;SETTING_3 0.2\\nironing_enabled = False\\nironing_flow = 5\\nironing_inset = 0.
    ;SETTING_3 3\\nironing_line_spacing = 0.2\\nline_width = 0.4\\nmaterial_flow = 1
    ;SETTING_3 02\\nmaterial_initial_print_temperature = 200\\nmaterial_print_temper
    ;SETTING_3 ature = 205\\noptimize_wall_printing_order = True\\nouter_inset_first
    ;SETTING_3  = True\\nretraction_count_max = 10\\nretraction_hop = 1\\nskirt_brim
    ;SETTING_3 _minimal_length = 30\\nspeed_infill = 15\\nspeed_ironing = 13\\nspeed
    ;SETTING_3 _layer_0 = 15\\nspeed_print = 15\\nspeed_topbottom = 15\\nspeed_wall_
    ;SETTING_3 0 = 15\\nspeed_wall_x = 15\\ntop_layers = 5\\ntravel_avoid_supports =
    ;SETTING_3  True\\nwall_line_count = 3\\nwall_line_width_x = 0.4\\nxy_offset_lay
    ;SETTING_3 er_0 = -0.1\\nz_seam_type = back\\nz_seam_x = 0\\nz_seam_y = 0\\n\\n"
    ;SETTING_3 , "[general]\\nversion = 4\\nname = Ultimaker PLA fine\\ndefinition =
    ;SETTING_3  ultimaker3\\n\\n[metadata]\\nintent_category = default\\nsetting_ver
    ;SETTING_3 sion = 16\\nposition = 1\\ntype = quality_changes\\nquality_type = dr
    ;SETTING_3 aft\\n\\n[values]\\nbrim_line_count = 5\\nspeed_support = 15\\nsuppor
    ;SETTING_3 t_angle = 40\\nsupport_infill_rate = 30\\nsupport_offset = 1\\nsuppor
    ;SETTING_3 t_xy_distance = 0.6\\n\\n"], "global_quality": "[general]\\nversion =
    ;SETTING_3  4\\nname = Ultimaker PLA fine\\ndefinition = ultimaker3\\n\\n[metada
    ;SETTING_3 ta]\\nintent_category = default\\nsetting_version = 16\\ntype = quali
    ;SETTING_3 ty_changes\\nquality_type = draft\\n\\n[values]\\nacceleration_enable
    ;SETTING_3 d = False\\nadhesion_extruder_nr = 1\\ninfill_extruder_nr = 0\\njerk_
    ;SETTING_3 enabled = False\\nlayer_height = 0.2\\nlayer_height_0 = 0.2\\nmateria
    ;SETTING_3 l_bed_temperature = 45\\nprime_tower_enable = True\\nprime_tower_posi
    ;SETTING_3 tion_x = 110\\nprime_tower_position_y = 190\\nsupport_enable = True\\
    ;SETTING_3 nsupport_extruder_nr = 1\\nsupport_type = buildplate\\n\\n"}

     

    Edit: what is also strange is that I can not cancel the print in the state. I have to turn the printer off and on again to do anything. 

    Edited by helmut92
  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    I think I have found my mistake. 
    M4 S4500 means that the program waits 4500 seconds until it continues, is that right? that would be 75 minutes, I did not want to wait that long 😄
    I should have rather taken 10 minutes, so S6000, per step. 

    But why I can not cancel the print, I still do not understand.

  • Link to post
    Share on other sites
    Posted · Warping on a flat part after it is finished

    The G4 command is "Dwell" and yes, "S" is in seconds.

    When the printer is in "Dwell" mode it won't accept any other commands.

    M0/M1 can be interrupted with a button click, but there is no timer and consequently the temperature would not continue to drop until a button click.  It would simply sit on the last temp it was told.

  • 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 Transformation Summit
        Visit our virtual showroom and learn more about the Ultimaker ecosystem!
        • 14 replies
      • New here? Register your Ultimaker for free 3D printer onboarding course
        Hi,
         
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 0 replies
    ×
    ×
    • Create New...