Cura
Cura copied to clipboard
Non-Planar Skin Layers
Is your feature request related to a problem? Please describe. When slicing slopes with only a small deviation from horizontal (<10 degrees), it generates many steps on the slop
Describe the solution you'd like I would like to have skin layers printed with a slope, like in the example below.
Describe alternatives you've considered I did edit the gcode generated by Cura and add some sloped layers on the top, but this would be very tedious
Affected users and/or printers Everyone
Additional context
Example results:
Example GCode with sloped skin (Only tested on my delta printer. This will probable not work on a cartesian printer; I can upload another if you like) slopedsurface.gcode.txt
This is a big change! In a way, it violates one of the first assumptions that CuraEngine makes when starting a slice, that all layers are horizontal. The case in this ticket is an edge case but the more general problem is a very interesting one that Ultimaker's project managers had put on the long term road map from time to time under the nomer of "non-planar layers". The idea is that the bottom of a print would be flat, but the top of a print would follow the surface topography of the mesh.
The problem lies in the implementation, which makes this a long term project. Following the mesh surface turns many of our current algorithm from 2D into a 3D problem: collision avoidance, generating enough skin layers, calculating overhang, etc.
It'd certainly be interesting to research in this area. However as you said, it's mostly the Delta printers that would benefit from this since the rest can't move the Z position as fast. That makes the target audience for such a feature very limited and the cost-benefit ratio too low for us to work on this right now.
@Ghostkeeper On Onshape, I have been trying an implementation of this. Currently, I project the layer surface to horizontal and do my infill work on that, then project it back to the original surface. I have found this to work fairly well, with the extrusion amounts being calculated relative to the original surface.
Here is an example GCode on a curved surface for my AnyCubic Delta machine.
EDIT: New GCode Test.gcode.txt
Currently, I project the layer surface to horizontal and do my infill work on that, then project it back to the original surface.
Yeah so that would cause the nozzle to crash into the surface if you have multiple pieces and it needs to travel past a raised piece of the print. It would also cause the skin to be too thick in some places and too thin in others.
@Ghostkeeper Currently I have 3 layers that follow the topology of the mesh, then go to horizontal layers after that. I have assumed that all the horizontal layers are infill and the top two layers that follow the topology are skin
hmm... This is an interesting idea, though there's the inherent issue of crashing. However, this could just about solve the issue of terrible stepping artifacts on parts with shallow slopes!
I think, however, it would require some way to model the print head in order to avoid moves that would crash into a part, and an unintended consequence is that if a part gets too close to a heat block, chaos may ensue.
my first instinct would be to use the "overhang algorithm", but in reverse, to target shallow, near-horizontal faces, then use a frustum the height of the nozzle to both set the collision mesh and number of top-facing layers to target which ones are viable in a horizontal direction. some considerations:
-will you horizontally expand the layers to calculate which will be too close for the print head to reach
-if you want to get fancy, you could, for example, break it up every 5mm or so to target an entire model. this would be "stepped slanting" or something
-if you want to get really, really fancy, you could make it wait till the next layer would come into contact with the nozzle, then print slanted layers on all the layers currently due for them. this would be "adaptive slanting" or something
-the slanted areas will need their height removed, to produce the proper stepped layers, then the slanted layers build on top of that. How that will work in concave areas I do not know.
It is called non planar printing and was added to Slicer, read https://www.reddit.com/r/3Dprinting/comments/ctxns4/nonplanar_3d_printing_functionality_added_to/ Anyway, I vote for this feature! It is GREAT!
+1 for reopening and migration to Cura
+1 for reopening
+1 for reopening
What would you like to have re-opened then? This ticket is already open.
What would you like to have re-opened then? This ticket is already open.
Its probably confusion of the people with some other items. As far as this item includes non-planar printing upgrade, it is great ;)
However as you said, it's mostly the Delta printers that would benefit from this since the rest can't move the Z position as fast
Wait, what? On Ender: https://www.youtube.com/watch?v=gmePlcU0TRw
Depends on how fast you expect to print. Normally the top layer is slow anyway to get a nice looking finish.
That will be a game changes for 3d printing. But I wonder if this feature request should be opened in CuraEngine instead?
We generally prefer to group them here in the Cura repository instead. More people reading it, you see.
This is an amazing features ,+1 to implement it in the next versions.
+1
+1
+1
+100 to be honest... that could make the top surface look so great and reduce the time to sand it afterwards
+1
+1
+1
Using Slic3r there is an experimental version out there: https://github.com/Zip-o-mat/Slic3r/tree/nonplanar
+1!
+1
+1
+1
+1
+1