Jump to content

Critical feature to cope with print failure - is it already somehow possible?

Go to solution Solved by GregValiant,

Recommended Posts

Posted · Critical feature to cope with print failure - is it already somehow possible?



I print huge numbers of simple models (all 1mm high, 100% infill). If the print fails, it fails in 100% of the cases because the first layer has a problem for one object. If it fails, the root cause is, that the two outer walls detach immediately after they are printed. It's immediately obvious. Sometimes only this one object fails, sometimes its surrounding neighbors and sometimes the hole print fails and I only notice when I return 10 hours later.


The problem is, to make sure the print is a success I have to wait until it printed the whole first layer. Why? Because it prints the walls of the first object and then prints its infill. This takes up to 2 hours.


If it would print the outer walls of ALL objects and THEN the infill, I could monitor the print for 10 min. until the outer walls of all objects are printed. It they are printed solidly and there is no detachment, the print will be a success. Always.


The question is, how to tell Cura to first print ALL walls of ALL objects before it prints ANY infill?


Can another slicer do this?

Screenshot from 2022-12-16 18-00-37.png

  • Link to post
    Share on other sites

    Posted · Critical feature to cope with print failure - is it already somehow possible?

    P.S.: I already tried fusing all objects into one. It works. One STL with all the parts inside. Still, Cura, figures out that we have many "loose" unconnected parts and prints them one by one and not ALL the walls first.


    I would probably need to physically connect all parts in order for this hack to work.

  • Link to post
    Share on other sites

    Posted · Critical feature to cope with print failure - is it already somehow possible?

    Can I ask what sort of filament and print surface you're using, and how it's prepped? In my experience, when the first layer fails to adhere to the bed, it's always one of two things: the nozzle is too far or too close to the bed (i.e. the bed is not trammed/leveled properly), or, the bed is not prepped correctly (cleaned, and a thin application of gluestick depending on the filament material). Now I can usually spot the problem right away and very rarely do I have adhesion failures.

  • Link to post
    Share on other sites

    Posted · Critical feature to cope with print failure - is it already somehow possible?

    Firstly, do as @Andrew1 says and make sure everything is clean and the bed is level.  You may want to turn up the "Initial Layer Flow" (105%???) to get more squish.  Then you won't have to read the rest of this.


    As the self appointed "King of WorkArounds" (hold the applause please) I have come up with a system.



    What you will do is create two gcode files.  The first will have nothing but walls and will be a donor file.  The second gcode file will have no walls on Layer:0 but the rest will be your normal settings.  You will copy just the inner and outer walls from Layer:0 of the donor file, and paste them in right before the travel moves of the first "skin" of the  second file.  Using Relative Extrusion means the E will be synced.  You will need to watch for two other things.

    1. The start point of any extrusion is in the line ABOVE the extrusion line.  Make sure you copy that line over with the walls.  Also make sure you leave the start point of the first "skin" extrusion when you paste in the walls code.
    2. Check your retraction lines.  If the "skirt" ends with a retraction then you need a prime for the start of the walls.  If the "skin" starts with a prime then you need to account for that at the end of the walls.  You want the filament the correct distance from the nozzle so there is neither a blob nor a dry start.

    When you slice and generate the two gcode files:

    1. You can use a skirt but not a brim or raft.
    2. The first file gets sliced with 0 top/bottom skins and 0% infill.  It will be Walls only.
    3. The second file gets sliced with your normal settings but add a support blocker.  Size the blocker in the X and Y to your max build plate size and make it 1 layer height thick.  In the Per Model settings set the blocker to Modify Settings for Overlaps, as a Cutting Mesh, and select "Wall Count" as the setting and set that to "0".  Center the blocker in the middle of the build plate with the Z at 0 and do the slice and save the gcode with a different name.  The preview should show you only skins (and maybe skirt) on Layer 1.

    Your main gcode file will have some code similar to this at the beginning of the ";TYPE:SKIN" section.  This is right after the skirt finishes:

    G1 X46.3 Y103.161 E0.87965    -----The last extrusion of the skirt before the skin starts
    G1 F2100 E-6    ---------------------------Retraction
    G1 F600 Z0.7    ---------------------------Zhop up


    Paste all the walls here.  Watch for retracts and extrusion start point lines.

    ;MESH:Eraser  ----------------------------This is the blocker configured as a cutting mesh
    G0 F9000 X74.36 Y102.64 Z0.7 -----Start of the first extrusion of the skin.
    G1 F600 Z0.2   ---------------------------Zhop down
    G1 F2100 E6
    G1 F3000 X49.64 Y102.64 E0.89368


    And now you can sleep knowing all the skins will be in their borders.  Ha...you'll still be watching it like a hawk.

    • Like 1
    Link to post
    Share on other sites

    Posted · Critical feature to cope with print failure - is it already somehow possible?

    No. The print surface is good and everything works. Usually it just works. Still, in few cases it breaks. Maybe just a little dust that makes a corner of the model not stick. Then this sometimes snowballs (since parts are close together) and the filament-spaghetti of one part disturbs the other parts.


    The point is, I happily wait at the beginning of the print a few minutes for it to print ALL outer walls. This is super quick! What takes time is the infill. I don't want to wait over an hour for every object to finish its first layer.


    Thanks! @GregValiant I will look into the workaround! You truly are the king of workarounds! Did you try it yourself? Maybe you still have your three files, so I could look at them?

  • Link to post
    Share on other sites

    • Solution
    Posted · Critical feature to cope with print failure - is it already somehow possible?

    Gcode is perfectly linear and perfectly logical.  Mr. Spock would love it.

    From what I gather - what you really want to do on Layer:0 is to:

    1. Print a skirt.
    2. Print all the Wall features (both Inner and Outer).
    3. Print all the Infill features.

    This method is different than what I posted above but may be easier to follow.  This cannot be done with a "Raft".  This MUST be done with "Relative Extrusion" turned on.

    • The main file ("LAYER 1 and Up") for your print:
      • Get your models arranged and set Cura up the way you want for your finished prints.
      • Slice and save the Gcode.  This will be the file you will use for "LAYER:1" up to the finish.
    • The Layer:0 file for the "Walls only":
      • Without moving any models - change the Top Layers to 0, the Bottom Layers to 0, and the infill to 0.  You will want the skirt/brim turned on.  Slice the file and save the gcode.
    • The Layer:0 file for the "Skins only":
      • Without moving any models - turn the Top and Bottom layers back on, turn the Infill back on.
      • Turn off the skirt/brim.
      • Set the "Initial Layer Horizontal Expansion" to "Wall Count * Line Width * -1".  If your line width is 0.4 and you have 3 walls then the Initial Layer Horizontal Expansion would be "-1.2".
      • Slice the file and save the gcode.

    Cut and Paste.  This gets done in a text editor app:

    • Open the "LAYER 1 and up" file.  Do a "Save As" and make it "*_combined.gcode" or something.
    • In the new "combined.gcode" file - find the line that says "LAYER:1".
    • Look above that line and find "MESH:NONMESH".  That sections stays.
    • Delete everything from the line below "LAYER:0" to the line above "MESH:NONMESH".
    • Add a few carriage returns to make space for the walls and skins.
    • Open the "WALLS" file.
    • Find the LAYER:1 line and above that the MESH:NONMESH line
    • Copy everything from the line below "LAYER:0" to the line above "MESH:NONMESH" and paste it in to the "_combined" file just below the "LAYER:0" line.
    • Open the "SKINS" file.
    • Find "LAYER:1" and then the MESH:NONMESH section above it.
    • Copy everything from the line below "LAYER:0" to the line above the MESH:NONMESH line.
    • Paste that into the combined file BELOW the walls section.
    • Save the Combined file.

    There it is.  If you want to get fancy (and I would) you could add a couple of Z-hop lines because the travels from the Walls to the Skins isn't quite right.  You wouldn't want the nozzle to whack one of your wall lines and break it loose before the skins go down.

    There are three files in the zip folder that I used to create the 4th "combined" file.


    First layer walls first.zip

  • 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

      • 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
      • Ultimaker Cura 5.6 stable released
        Cura now supports Method series printers!
        A year after the merger of Ultimaker and MakerBotQQ, we have unlocked the ability for users of our Method series printers to slice files using UltiMaker Cura. As of this release, users can find profiles for our Method and Method XL printers, as well as material profiles for ABS-R, ABS-CF, and RapidRinse. Meaning it’s now possible to use either Cura or the existing cloud-slicing software CloudPrint when printing with these printers or materials
        • 48 replies
    • Create New...