Hollowing out insides of solids ..how is this best done?

Hi,
V5 (with layer bug)
So as to reduce the cost of 3D printing where volume of material used is a factor in the cost, I need to hollow out my solids.
I use OffsetSrf, decide on 4mm, then struggle on how to use that to hollow out the solid.

  1. Boolean Difference, select outer shape, then for cuting device, the inner shape, it fails…says
    Objects do not intersect nothing done

  2. Boolean Intersection, select outside shape then inside, nothing happens,

  3. Boolean Split, select outer, hit enter, select inner, get Boolean split failed.

  4. Boolean Split2, select both and a translucent effect occurs, ( I was in Ghosted mode though other Booleans didnt go translucent) accept first. but nothing has happened.
    try again, this time click mouse once and accept this and hit enter. Nothing has happened.
    Try again, click mouse twice and hit enter, nothing has happened.
    Try again, click mouse three times and hit enter, nothing has happened.

One cant actually see which one gives a hollow middle.

What have I missed ? I have tried all Booleans, which are for solids. Trim I cant use as select item to trim disallows selection of the solid.

There has to be a simple way for this, where is it ?

Shell requires the loss of one face. I need 4mm all round thickness.

File attached…simple test, real item somewhat more involved !
HollowOutSolids.3dm (215.7 KB)
Steve

If you don’t want to do anything in Rhino with the result, try NonmanifoldMerge followed by CreateRegions. You will get two regions. The one you want and the part you want to remove. The hollowed out piece will probably turn into two separate polysurfaces if you do anything to it in Rhino.

2 Likes

Hi chuck,
many thanks, I need to first do the offset, then run nonmanifoldMerge then CreateRegions. then delete the inside.

It works thanks, it would be neat to have one command that does all three in one go with options for radiused or non radiused corners and distance.
Are we in fact lacking a command to hollow out solids in a way that the result is compatible to Rhino then ?

Is the concept of a solid with a hollow inside non-rhino ?

Will the result be ok if I export as stl ?

Steve

1 Like

Hollow solids have not generally been supported in Rhino. That may change in the future, but I don’t know if or when. NonmanifoldMerge and CreateRegions were written for a different purpose, but solve this problem nicely. The result should be fine if you export as stl.

What is incompatible with Rhino is to try to make e.g. a tennis ball by creating a sphere inside another sphere where they don’t touch at any point. Rhino is a surface modeler an as such has no knowledge of material within the surface(s). A Rhino solid is simply a water-tight skin of surfaces with no interest in what is inside.
So a solid within another solid isn’t read by Rhino as a thin shell but as two concentric solids.
You can make a shell, but there must be a connection between the inner and outer surfaces. So if there is a tube that connects the 2 spheres and is joined to both, then Rhino can read that as a shell.
You will probably need to do this for 3D printing in any case. In your example our 3d printing software will ignore the inside polysurface and print the outside one as a solid mass. You need to have connection between the inside and the outside.
You can do this with open polysurfaces with the Offset Surface or Shell commands.

2 Likes

Hi Chuck, may I ask for what purposes?
Thanks

Our lower level geometry library supports non-manifold polysurfaces for various reasons. Mostly, they are used as intermediate objects in boolean operations. Originally, NonmanifoldMerge was written as a test routine for debugging booleans. It turns out that non-manifold objects are desirable for other purposes, usually in analyzing models, rather than manufacturing them. These are mostly found in 3rd party plug-ins. The functionality found in CreateRegions was written to assist the developers of these plug-ins. Both commands are there so plug-in writers can see if the code does what they want before they try to incorporate it into their processes.

Are you doing any post on the meshes? In case you are running them by Magics it does a neat job shelling them. Other packages might have the same capability.

Inside Rhino I know TSplines does that to it’s control meshes to create shells, there might be a way to fool it into doing that too.

Hi,
What would be the best way of shelling these so that there is a 5mm dia channel between outer and inner surfaces, 3D printing requires a swill out hole. 5m minimum for the company I am currently considering.

ideal command would be …choose shell …dictate wall thickness, …pick surface for the connecting channel, pick circular or square cross setion shape for channel.

I dont have Magic. I gather there is a free version, not sure how good it is versus a purchase version.

I would rather see the shapes as they are in rhino and create the voids, familiar territory, certainly whilst I explore this new route with limited time to explore.

Also what worked last night is failing.

  1. offset srf, f flip arrows inwards, d use 4, get second surface.
    NonmanifoldMerge, select both inner and outer surfaces. hit enter. Difficult to know if anything changes as yet.
    CreateRegion, asks to select a polysurface, select the outer surface and in a split second the inner one vanishes.

cut a chunk out with boolean difference and a simple solid to see no hollow interior.

repeat and this time pick inner surface, same thing, it vanishes.
It worked yesterday, just cant get it to work now.

Steve

Make a 5mm cylinder that penetrates both innner and outer objects. Union the cylinder to the inner object. Take the result and Difference from the outer.

-Pascal

Cheers Pascal,

I cant get the nonmanifoldMerge method to work now though, as mentioned.

Steve

If the objects are all one now as a result of the cylinder and Boolean, then NonManifoldMerge does not make any sense… ?

-Pascal

Hi Pascal,
no, I am referring to the first steps, before any 5mm cylinder or boolean.

My basic shapes of various cylinders and a cube, I cannot give them hollow interiors, I could the other night.

Unless I can give them hollow interiors I wont even get as far as 5mm cylinders.

  1. offset srf, use f to flip arrows inwards, type d use enter value of 4, I get a second surface.
    run command NonmanifoldMerge, select both inner and outer surfaces. hit enter. Difficult to know if anything changes as yet.
    now run CreateRegion, asks to select a polysurface, select the outer surface and in a split second the inner one vanishes.

I dont reckon thats right !!! I recall still seing the inner surface edge lines when it worked before.

cut a chunk out with boolean difference and a simple solid to see I am right, no hollow interior.

repeat and this time pick inner surface, same thing, it vanishes.

It worked yesterday, just cant get it to work now.

Steve

Help …why wont this work…anyone ?
I have 3D printing work to do and cant progress.

Rhino needs some tool for 3D print work hollowing out.

Tried shell but it didnt cope. result was not solid it said, and looking at it, it was right !

Shell fails.3dm (692.9 KB)
3dm attached, it also has a copy made (bottom layer) before shell used.

Steve

I would try removing the “bottom” two faces, then use OffsetSrf with a distance of 5 and offset to the inside - with Corner=Round option (works much better than sharp) and Solid=No. Then create two planar surfaces at the bottom and join all up into a closed solid.

–Mitch

ManualShell.3dm (1.3 MB)

What works for me:

I usually do an intentional tiny cylindrical cutout on the planar surface on the body (so keeping it intentionally opened - working with a surface body - not a solid object) and just before exporting to the 3D printer I use a command to Untrim the edge of the cylindrical cutout and hollow solid body is created.

It works for me in 80% - 90% of the cases.

These two commands do the job for me now here 9-years later. I have to say I’m surprised there isn’t a quick command for this task by now. Regardless, this worked exactly as I needed it. Thanks.