Jump to content

Phantom top layers when zero specified?


Melty

Recommended Posts

Posted · Phantom top layers when zero specified?

Hey everyone.  I'm having a strange issue with Cura 3.1.0.

 

I have a rectangular tray I'm printing.  The tray is modeled as a simple solid block, and then printed as an open tray by utilizing a 0% infill and zero top layers, so that only the bottom and side walls remain.  

 

For some strange reason, Cura seems to automatically add a top layer, even when zero layers are specified.  I thought this was a fluke, so I proceeded with the print, and sure enough the printer attempted to print the top once it finished the side walls.

 

I've attached a screenshot of my Cura window in the Layer view.  For better visibility of the issue, I temporarily set the wall line count to zero.  As you can see, even with 1 bottom layer and zero top layers, Cura has still rendered the top layer in the preview, and will still include it in the gcode.

 

 

Any thoughts on what might be going on?  Possibly a bug?   It is quite easy to reproduce...

Thanks

Cura 3.1.0 - Top Layer Problem.png

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?

    Thanks for the reply @kmanstudios.

     

    I didn't have "remove all holes" as part of my normal visible settings, so I enabled it and did some testing.  I get the exact same result both with and without that option enabled.  :|

     

    I set the wall line count to zero for my screenshot above just to make the issue more visible... but if I set it to something different (say 4), the result is a closed empty box (four walls, a bottom, and a top) - even when the 'top thickness' and 'top layers' values are both 0.   In the preview, I can drag the layer slider down and back up, and see it fill in that unwanted top layer...

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?

    if you look at the model in x-ray view, is everything good? no red areas? It seems that Cura thinks you have another bottom at the top, could be your top ia inside out (displays in red)

    I cannot duplicate this with a box and these settings..

    • Like 1
    Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?
    12 hours ago, kmanstudios said:

    I menat, with the box, are the walls themselves single sides?

     

    Would you be amenable to putting up the model so I and others could examine it?

     

     

    Thanks @kmanstudios.  Happy to provide files.  Attached is the .3mf file for Cura - let me know if a .stl or anything else would also be useful. 

     

    I believe it is a solid shape... 

    I created the initial .stl in FreeCAD (version 0.16) by selecting the Part Design workspace, then clicking "Cube" on the Combo View's "Create Geometry" section on the left, then editing the dimensions.  Less than a dozen clicks from start to finish.   If I select this part in the Part workspace and click on Analyze Geometry, then view the Shape Content, it gives the following:

     

    Craftsman_Drawer_Tray_11x5x2.Box:
     VERTEX    : 8
     EDGE      : 12
     WIRE      : 6
     FACE      : 6
     SHELL     : 1
     SOLID     : 1
     COMPSOLID : 0
     COMPOUND  : 0
     SHAPE     : 34

      ... so it appears to be a solid shape to FreeCAD.

     

     

     

    10 hours ago, peggyb said:

    if you look at the model in x-ray view, is everything good? no red areas? It seems that Cura thinks you have another bottom at the top, could be your top ia inside out (displays in red)

    I cannot duplicate this with a box and these settings..

     

    Thanks @peggyb.  I'm not familiar with the meanings of the colors, but the X-Ray view shows everything in the model as purple, including the unsolicited top...

     

    Hopefully my file above helps to reproduce the issue...

     

    Cura Top Layer Problem.3mf

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?
    1 hour ago, Melty said:

    Hopefully my file above helps to reproduce the issue...

     

    Nope, fortunately FreeCAD is quite good in exporting correct stl-files.

    But your screenshot from above gives a hint...

     

    It's not a 'phantom' layer, it's the 'ironing' layer. Disable ironing and it should disappear.

    It seems that 'ironing' without a top layer does not work (I don't know, if this is the intended behavior).

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?

    I took a look at the file and sent it out from Cura as an STL. It retained the original geometry.

     

    OK....here is what I found out. Removing the top layer is no good because it has no thickness to the walls. Even with 'print thin walls' enabled, it did not remove the layer. I did as @tinkergnome suggested and made sure ironing was off. It was and it still gave the same results.

     

    I kicked it out to .STL and removed the top layer. (UM3E_5a66304f8b0a4_CuraTopLayerProblem2.stl) and it still did the same because it is trying to cap the model to make sense of it. With any missing face, removed by layers as you did, or as I did in 3DS MAX, it will still cap it to make it manifold.

     

    I then took the model and gave it a 0.4mm shell (wall and floor thickness) and it barely sliced with the 'print thin walls' enabled. (UM3E_5a66304f8b0a4_CuraTopLayerProblem2A.stl)

     

    Taking to heart what @gr5 says, the walls should be at least twice the nozzle width. I agree with that. I went in and gave it a 0.8 shell (Wall and floor thickness) and it sliced just as you would expect. (UM3E_5a66304f8b0a4_CuraTopLayerProblem2b.STL)

     

    Keep in mind that it is best to control your model and not take crazy shortcuts because you are trying to make a machine do human level decision making. You could have given it a horizontal expansion ((UM3E_5a66304f8b0a4_CuraTopLayerProblem2A.stl)), but that is not the same as a shell where the floor also gets thickness. With the 0.2 wall shell, your walls could expand, but not the floor and it would have remained flimsy.

     

    Creating the model as needed ensures the best results and makes you the master of your domain....apologies to Seinfeld.

     

    All files are below for you to test.

     

    UM3E_5a66304f8b0a4_CuraTopLayerProblem2b.STL

    UM3E_5a66304f8b0a4_CuraTopLayerProblem2A.stl

    UM3E_5a66304f8b0a4_CuraTopLayerProblem2.stl

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?
    7 hours ago, tinkergnome said:

     

    Nope, fortunately FreeCAD is quite good in exporting correct stl-files.

    But your screenshot from above gives a hint...

     

    It's not a 'phantom' layer, it's the 'ironing' layer. Disable ironing and it should disappear.

    It seems that 'ironing' without a top layer does not work (I don't know, if this is the intended behavior).

     

    Thanks @tinkergnome.

     

    Ironing being enabled does in fact seem to be a clue...  but if it is in fact related to ironing, I think the ironing logic is faulty.

    When you hover your mouse over the "Enable Ironing" setting, the tooltip gives the following description:

    Enable Ironing
    
    Go over the top surface one
    additional time, but without
    extruding material.  This is meant to
    melt the plastic on top further,
    creating a smoother surface.

    Two issues with this:

     

    1) The print nozzle was making large diagonal passes from wall to adjacent wall over the empty space, not tracing the walls linearly.   So it wasn't going over the top "surface" of the print, it was instead going over what would have been the top "layer" if it had been enabled.  This would seem to be a bug in the ironing logic.

    2) Contrary to the description, the extruder was definitely active and extruding plastic when it did this.  I believe it was under-extruding, as the bridging was not successful anywhere other than the very corner...  but it was absolutely extruding, as I was able to break off the tangled mess of plastic that accumulated at the edges with zero loss to the height of these walls. 

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?
    5 hours ago, kmanstudios said:

    Creating the model as needed ensures the best results and makes you the master of your domain....apologies to Seinfeld.

     

    Thanks @kmanstudios, appreciate the thorough investigation and solutions. :+1:

     

    Please don't take this the wrong way, or read it assuming a tone of my voice... but the model that I posted is as I intended.   The purpose of this model is to be able to quickly generate a wide variety of simple rectangular tool tray inserts, of varying wall and floor thicknesses as appropriate for what they are expected to contain.   Torsional rigidity is not a significant concern as these are inserts set on a supporting tray or drawer, but durability and puncture resistance are, so completely solid walls and base layers is the optimal structure, and also the fastest to print.

     

    The basic idea is this:

    Start with a model of a generic cube of any reasonable dimensions.

    Need a 13"x3"x2" tray for some lightweight rulers?  Scale the model to that size, disable the top, set the wall and floor to comparatively thin values (fewer layers), and print.

    Need a 4"x4"x3" tray for heavy thread taps?  Scale the model to that size, disable the top, set the wall and floor to use more layers, and print.

    Need a 4"x4"x3" tray for lightweight rubber washers?  Use the same model as above but reduce the layer counts.

    Need a bunch of 2"x2"x1" trays for small parts?  Scale the model to that size, disable the top, and print away.

    (rinse and repeat for any desired size and strength requirement.)

     

    If I had done the work up-front in the modeling software, and created a bathtub shaped object with a defined wall thickness baked in to the model, any successive scaling operations in Cura would result in wildly varying thicknesses to the tray walls, especially going between square and long rectangular sizes.  Scale the model down too much in a direction and the walls get thin, and scale it up significantly and the trays become quite bulky with extra thick walls.   This isn't what I need, nor is it a productive workflow to have to manually tweak dozens of custom tray shapes in the modeling software and create a whole folder full of different models to manually create the required sizes and wall thicknesses.   Plus it wastes plastic, makes it more difficult if I change nozzle sizes for future prints, etc..    It's just not at all optimal.

     

     

    Hopefully that helps clarify why I structured the model how I did, and again thank you for your help.  :+1:

     

     

     

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?

    Well, you need to work parametrically then if your goal is to size and operate free of the restraint of scaling issues. Not ask the software to do what you want instead of what it was designed to do. In this case, create a manifold object when you ask it not to. And, I may be mistaken, but Cura will not 'beef up surfaces' by increasing wall count/thickness or floor count/thickness. It can do horizontal expansion, but that is not going to give you a floor thickness. It is designed to replicate a model as designed, not a design tool itself.

     

    Parametric software exists and on the cheap to free end.

     

    For instance (not the cheap way, but an example of parametric modeling) in 3DS MAX I can create a box with up to 3 decimal points of precision. Selectively remove the top face in the modifier stack and then apply a shell. (Just one of many ways to approach this depending on needs of the actual model desired' i.e. rounded corners or whatnot).

     

    It is non-destructive and able to to change in a matter of seconds. The shell will remain constant, the box is a box and not a mesh object and can be sized with typing in exact measurements and the top will always be removed before the shell is applied.The shell will remain constant.

     

    I am sure this is very common in today's software, cheap to free. I would be surprised if you cannot find something to do as you wish, or even if your program you are using would do this as well.

     

    What you want is not unheard of. But unless there is a trick in Cura that I have not found, your desire to do it this way is not going to work. It is not the way the software is designed.

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?
    1 hour ago, kmanstudios said:

    Well, you need to work parametrically then if your goal is to size and operate free of the restraint of scaling issues. Not ask the software to do what you want instead of what it was designed to do. In this case, create a manifold object when you ask it not to. And, I may be mistaken, but Cura will not 'beef up surfaces' by increasing wall count/thickness or floor count/thickness. It can do horizontal expansion, but that is not going to give you a floor thickness. It is designed to replicate a model as designed, not a design tool itself.

     

    Cura will in fact do this... I've used it quite a bit... Are you thinking of something different?

     

    For example, take the model I provided, set it to have zero top layers, zero percent infill, and turn off ironing as @tinkergnome discovered to eliminate the phantom layer... you get a shell with four sides and a bottom.  

     

    Now do something exaggerated to see the effect, like giving it a wall line count of 50.  Cura retains the outside dimensions, and correctly calculates very thick solid perimeter walls expanding inward.  (See screenshot below.)

    Likewise, you can tell Cura to use an equally unreasonable 50 bottom layers, and it will happily generate gcode for a shape of identical outside dimensions, with a 50-layer thick solid bottom. 

     

    5a66cff091cc9_Cura50-LineWalls.thumb.png.82c1e4734ddd5542e05a772a4a1237c7.png

     

    5a66d110b6016_Cura50-LayerBottom.thumb.png.07fec698f4d7bd837b858d09cea1c61c.png

     

    I'm not a Cura software dev, obviously, but this all makes sense as "expected behavior" to me.   Imagine that my box instead was more "normal", and had 25% infill and two top layers, and I wanted it to be strong enough to park a car on.  To get more vertical strength we either increase the infill density (possibly changing patterns as well), increase the wall thickness, or both.   On this or any other solid object, such as say a 3DBenchy, we wouldn't expect increasing the wall thickness to make the part "grow" in external dimensions, only to add internal skin layers and reduce the amount of the model that is filled with infill.  So widening the sides inwards, or expanding the bottom upward is exactly how this normally functions.  This box of mine is doing the exact same thing, just with 0% infill instead of >0% infill.

     

     

    Hopefully that helps show where I'm coming from...

     

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?

    It does not follow from my experience. And, if it was done before, then why is is not doing it now?

     

    I would like a developer to weigh in on this as I have never seen this and would really like to know. But I can say as a designer, I would be aghast that software would have the ability to muck up my design in that way.

     

    But, as always, I would like to know the actuality. It may be something I can use later on meself.

  • Link to post
    Share on other sites

    Posted · Phantom top layers when zero specified?

    Well, it can operate on the model as @Melty suggested. Here is a .3MF file using his geometry to test it with.

     

    There is something in his original settings that did not work. I just went to a generic 0.2mm and imported just the geometry of the box.

     

    Still baffles me, but live and learn eh? I will have to look at this to see what I can use this for.....I love new things like this.

     

    UM3E_5a66304f8b0a4_CuraTopLayerProblem.curaproject.3mf

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