Slicing a pipe

53 views
Skip to first unread message

Maze Mietner

unread,
Nov 29, 2015, 6:56:23 AM11/29/15
to IceSL
Hi

Sylvain


I tried to print a few objects with a round top, and they always stayed open, more or less. So I tried to slice this one:

c1
=rotate(90,0,0)*cylinder(10,20)
c2
=rotate(90,0,0)*cylinder(8,20)
d
=difference{c1,c2,b}
emit
(d)

Of course it's stupid to print a pipe in this orientation, but try to slice it with "icedelta", 25%fill, 0 covers, 2 shells and perimeter. You'll see the following bugs:
-Very obvious the inner walls at the bottom and top are not closed, you can see the infill.
-The number of shells - measured perpendicular to the perimeter wall - is only met at the middle. Below and above there's infill. The width of the shell is therefor smaller then expected, resulting in weak parts. (If you slice the same pipe without the 90° rotation all walls have the same strength.I think the same amount of material should be used when slicing, no matter of the orientation of the part. If the slicer doesn't do that it's a bug - and you could even use this for automated testing. I think this problem exists with every slicer, I just tried Cura with this pipe and it gives weird results as well).

Back to my object with a round top: I've seen the option to add covers, but they didn't print as good as I wished. Having a round top I select a higher infill (just to have support) and more shells. And printing slower is always an option - I'm afraid I'll have to play around with shaders to create different brushes. Or can I directly set the flow multiplier of the current brush?

Maze

sylefeb

unread,
Nov 30, 2015, 4:11:33 AM11/30/15
to IceSL
Hi Maze,


> 25%fill, 0 covers, 2 shells and perimeter
> Very obvious the inner walls at the bottom and top are not closed

This is expected under this setting (we need to document all this to clarify the meaning of the terms). The parameters directly correspond to what happens within a slice: the perimeter is the external outline and the shells are the inner contours after the perimeter. The number of shells is as expected for this example: each slice has one perimeter plus two inner contours. Asking 0 cover explicitly tells IceSL to not put any top/bottom infills. k cover means 100% infill over "k*layer height" thickness for tops/bottoms. 

I agree it could be more intuitive to simply have a 'hull thickness' parameter (what Cura does I believe?) that would control both covers and shells;  but I personally like to have this full and precise control.

Round tops: I would advise against changing the brush flow. It is better to use different brushes with different infill settings so that you can densify the infill when reaching the top (use CSG to create zones with different brushes). But as a first test I would simply put more covers. Even if the first ones look a bit weak they typically recover well and the result is strong.
If you have a specific part having this issue feel free to send it to me by direct email, I can suggest more precise parameters.

Message has been deleted

Maze Mietner

unread,
Nov 30, 2015, 10:17:29 AM11/30/15
to IceSL
Hi Sylvain

again...the same text just error-corrected.
I wasn't aware that you've this split. I thought covers would be additional layers below and above horizontal structures only - because they look like a fill pattern with parallel lines. Thanks for the explanation.

How do you calculate where to add cover, is is based on the hull angle or how?
If it was based on the hull angle you could easily inject additional material based on the hull angle, creating a constant hull width.

If I'd write a slicer I'd do it this way: Think of a big amount of tiny blocks representing the print area. Maybe it's easier if you imagine minecraft, having the print area as play area.
In order to slice an object for printing I'd put in the object into the print area, composed of tiny blocks. Then I'd fill the walls of that object with a color, penetrating the walls as deep as the shell should be. Then I'd start slicing from the top, removing painted material with a circular tool moving around. The amount of removed material divided by the amount of material that could have been removed by the circular tool gives the flow rate. The non-painted blocks remain and can be replaced with an infill. If you have a nozzle with a 0.4mm diameter you might want at least 10x10 blocks per square millimeter, maybe 100x100 blocks. I hope this doesn't sound too insane....

Maze


sylefeb

unread,
Feb 15, 2016, 5:08:44 AM2/15/16
to IceSL
Hi Maze,
(just realized I never answered this post!)


> based on the hull angle or how?

It is based on the distance between the point inside the layer and the top/bottom of the object surface. So the covers can be understood as a 'crust' thickness, which width is 'num covers x layer height.


> I hope this doesn't sound too insane....

Not at all, this is a very good point of view, in fact quite close to the way IceSL operates. IceSL extracts slice 'images' (per-pixel inside/outside + distance to top/bottom) and then 'paint' them with the circular tool. It uses the distance to the top/bottom to decide whether a point in the slice is within cover or infill.

Best,
Sylvain



Reply all
Reply to author
Forward
0 new messages