Jump to content
Ultimaker Community of 3D Printing Experts
Melty

Phantom top layers when zero specified?

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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. 

Share this post


Link to post
Share on other sites
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:

 

 

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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...

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

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

  • Our picks

    • Architect Design Contest | People
      The goal of this contest is to design a set of people figurines that could be used in such a project to make an area, office or mall seem populated. 
      Think of different types of people in different environments, like walking people, people standing still, working people, and both men and women.
       
      • 31 replies
    • 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!