# Creating a hollow solid object

**URL:** <https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317>\
**Category:** Rhino for Windows\
**Created:** [October 24, 2013, 1:11am UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317 "2013-10-24T01:11:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![alex\_ding\_hong](https://avatars.discourse-cdn.com/v4/letter/a/ee59a6/32.png) [@alex\_ding\_hong](https://discourse.mcneel.com/u/alex_ding_hong)\
**Post date:** [October 24, 2013, 1:11am UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317/1 "2013-10-24T01:11:25Z")

</div>

Continuing the discussion from [Problem creating hollow solids with a wall thickness](http://discourse.mcneel.com/t/problem-creating-hollow-solids-with-a-wall-thickness/3313/4):

> [@Problem creating hollow solids with a wall thickness](https://discourse.mcneel.com/t/problem-creating-hollow-solids-with-a-wall-thickness/3313/4):
>
> An easier explanation of my problem would be: if you create a sphere primitive, ‘OffsetSRF’ by the thickness you want with ‘solid=yes’, you get a hollow sphere solid with wall thickness as output. Then say if I explode the solid, rhino will give me to surfaces as the output (two spherical surfaces of different diameter). So the problem is: how to unite those two surfaces back into the original output of a hollow sphere solid with wall thickness. Hope this example illustrates my question well.

---

<div class="post-metadata">

**Author:** ![Steve\_Howden](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/steve_howden/32/482024_2.png) [@Steve\_Howden](https://discourse.mcneel.com/u/Steve_Howden)\
**Post date:** [October 24, 2013, 1:36am UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317/2 "2013-10-24T01:36:25Z")

</div>

Rhino doesn’t create “solids” per se. It is a surface modeller. So if you have your two spheres of different diameter, that’s all it needs to know. You can group or block them if you want to keep them together.

---

<div class="post-metadata">

**Author:** ![alex\_ding\_hong](https://avatars.discourse-cdn.com/v4/letter/a/ee59a6/32.png) [@alex\_ding\_hong](https://discourse.mcneel.com/u/alex_ding_hong)\
**Post date:** [October 24, 2013, 1:48am UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317/3 "2013-10-24T01:48:08Z")

</div>

No man, in Rhino V5, if you do as I described, you get a so called ‘solid polysurface’ if you check the property of the object by running the ‘What’ command. And that’s exactly what I’m looking for as and end result so I can export a stl. file for printing a hollow object. Does it make sense?

---

<div class="post-metadata">

**Author:** ![alex\_ding\_hong](https://avatars.discourse-cdn.com/v4/letter/a/ee59a6/32.png) [@alex\_ding\_hong](https://discourse.mcneel.com/u/alex_ding_hong)\
**Post date:** [October 24, 2013, 1:53am UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317/4 "2013-10-24T01:53:44Z")

</div>

So the exercise is pretty easy as I posted, if you just go through the steps you’ll be able to replicate exactly what I meant. It’s just with complicated surface conditions I cannot rely on offset surface to automatically calculate a valid offset surface for me to create that solid. And after post processing the offset surfaces, I couldn’t find the right tool to combine it back to the original surface to create that so called “solid polysurface”. And you know that in rhino you cannot flip the normals of a closed polysurface. So maybe you can instead explain to me if you have those two individual polysurfaces how can you combine them into one geometry that I can send off to 3D print?

---

<div class="post-metadata">

**Author:** ![Steve\_Howden](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/steve_howden/32/482024_2.png) [@Steve\_Howden](https://discourse.mcneel.com/u/Steve_Howden)\
**Post date:** [October 24, 2013, 2:57am UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317/5 "2013-10-24T02:57:21Z")

</div>

> [@alex\_ding\_hong](#):
>
> so called “solid polysurface”

There you go - learn something new every day. I’ve never heard of such a thing in Rhino.

Anyway it’s not important for what you want to do.  
All that a 3D printer wants to see is closed meshes with the normals pointing in the right direction (out for outside faces and in for inside faces).

First create your outer skin polysurface. Then shell it for the inner surface and clean up any horrors that appear and join that up into a polysurface. So far so good, except of course the normals on the inner skin are pointing in the wrong direction and as you rightly point out you can’t flip normals on a polysurface. With meshes you can though and you’re going to need a mesh to export anyway, so…  
So now make good meshes of both polysurfaces at a density that reflects the 3D printer you’ll be useing. Get the normals pointing the right way useing the DIR command and you are good to go.

Hope that helps, Steve

---

<div class="post-metadata">

**Author:** ![chuck](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/chuck/32/512984_2.png) [@chuck](https://discourse.mcneel.com/u/chuck)\
**Post date:** [October 24, 2013, 3:18am UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317/6 "2013-10-24T03:18:58Z")

</div>

You can do this in Rhino with polysurfaces. It is generally not recommended, since the result may not behave as expected in other Rhino operations, but should be fine for your purposes.

Make the inner and outer polysurfaces. Call NonmanifoldMerge selecting both, Call CreateRegions on the result. Delete the inner region.

Chuck Welsh  
Robert McNeel and Associates

---

<div class="post-metadata">

**Author:** ![alex\_ding\_hong](https://avatars.discourse-cdn.com/v4/letter/a/ee59a6/32.png) [@alex\_ding\_hong](https://discourse.mcneel.com/u/alex_ding_hong)\
**Post date:** [October 25, 2013, 7:30pm UTC](https://discourse.mcneel.com/t/creating-a-hollow-solid-object/3317/7 "2013-10-25T19:30:47Z")

</div>

Thank you Steve, Thank you Chuck, it does the trick.
