Offsetsrf to create a thin walled object is confusing

I’m new to Rhino 5 and currently working through the training manual. I am learning rhino for 3d printing designs. One important “definition” that was glossed over in the training manual is the definition of a solid. This is really a closed polysurface with infinitely thin walls. Being a newbie, I asked myself, how to I make a hollow model with thin walls to save material. I searched the forums and youtube and the answer seemed to be to used offsetsrf to offset a closed polysurface inwards. When exported to STL, this would magically decide that the outer and inner surfaces form the thin walls and that the innermost part is hollow. But how Rhino decide this when offsetsrf actually creates a solid within a solid?

The example used in training manual is that they take a cylinder and then run offsetsrf on it to create a cylinder within a cylinder (solid within a solid). This is already a bit confusing because I thought that offsetsrf should create a thin walled cylinder but instead creates a solid cylinder within a cylinder. My first thought was to then boolean difference the inner cylinder - this fails and rhino says there is no intersection between the 2 solids (strange). So I thought I would just export out the solid within a solid to STL. Sure enough, this shows up as a thin walled mesh object using a 3rd party viewer (meshmixer).

The question is, there is a bit of magic here. How does Rhino decide that the cylinder solid with a cylinder solid is a thin walled solid rather than say a gel cylinder with a solid core in the middle? Is there something I am missing. I understand that I have artificially contrived that a gel cylinder with solid core to illustrate that this is possible but really how does Rhino decide? Or is there an additional boolean operation that I am missing (as mentioned earlier, boolean difference did not work).

Sorry for being long winded but I think that the concept of solid in Rhino is a bit different than I’m used to in other modelers and I think that is important for me to understand to move forward.

thanks for any help understanding this in advance.

Hi Vince - see Help on the Shell command as well.

-Pascal

Rhino doesn’t. And it doesn’t have to. None of its modelling tools require such a concept. A solid is, like you found in the training manual, nothing more than one or more surfaces joined in such way that there is no gap between any of the edges.

When it comes to 3D printing, the printer driver will slice the model in thin layers. Each slice intersects with the model and produces one or more intersection curves. When a closed curve is found inside another closed curve, the printer driver knows there is a void. It will only print the area between those.

All that said, there is a command that will ‘join’ none-intersecting solids in Rhino. The command is called NonManifoldMerge and you can read a bit more about it here:

Please do note the “If you don’t want to do anything in Rhino with the result” part in that post!

1 Like

Thanks Wim. I appreciate that perhaps Rhino does not have a need for such a concept at this time. And from what you are saying, that would leave it up to the 3d print driver to decide that an enclosed curve within an outer enclosed curve is void. This makes sense for printers that print in 1 material but for printers that operate in multiple materials, it may make sense for the modeling software to understand the material inside. If I were modeling a chocolate chip cookie, I would hate for the printer to leave out the chocolate chips just because the printer driver thinks they should be void.
Sorry for the theoretical question but I am just trying to understand because, Rhino seems to have a concept of material and yet a solid within a solid is exported to an STL with inner solid as void. I’m not sure if this is limitation to STL.

I can accept this fact but perhaps I thought I was missing a concept or a way to define a thin walled object rather than leaving it to up to the printer driver.
Thank you for the insightful link to hollowing out solids and discussion on nonmanifoldmerge…I am not up to speed yet and will look at that link with interest.

Thanks for the helpful info and insight.

Hi pascal,
I did try out shell on a simple cylinder and that does create a single selectable polysurface as long as I uncap the closed polysurface. Does that mean that if I have an organic model, I have to put a hole in the model to open up the closed polysurface to allow the shell command to work?

That wouldn’t be much of a chocolate chip cookie, no.

In Rhino, you would model the cookie on one layer and then the chocolate chip on another. Copy the chocolate chip geometry in place and put on the same layer as the cookie. Now you have a cookie with a void and a chocolate chip inside that void. Perhaps offset the geometry a tiny bit not to confuse the cook - err printer.

As for shelling, yes, that creates a polysurface with a hole - that is, a Rhino solid without gaps but a physical object with a void that is accessible from the outside.

2 Likes