Boolean union fail with offsetsrf?

Hi! I’ve just started learning rhino for one of my classes, and I’m currently working on my final project (see attached stl file). I’m trying to create a 3D frog, but I’m running into problems with the head area.

I’ve used offsetsrf on the head and eyes area for my 3D frog, but for some reason when I try to boolean union all three parts together, the inner area becomes detached from the outer head area and I don’t know how to get them to be one unit. I’ve also realized that if I just boolean union one eye to the head it works fine, but once I boolean union both eyes the problem occurs. Please help, I’m on a tight deadline and I’m really confused on what to do next!

proj66.3dm (3.1 MB)

thats pretty messed up… i am afraid you have to rebuild the head manually. offsetting the surface creates 2 singularities which cross and invert when you look closer at the hard corners of your initial ellipsoid you can see those 2 funnels. that happens sometimes when you play with shapes which have hard endings. maybe you have that head in a earlier form still otherwise i would recommend to explode it delete the inner parts of the ellipsoid. then use untrimm to close the holes again and half the ellipsoid along the long side then you extract the isocurves in the u direcion use dupedge on the 2 edges and offset them them not surface offset just the regular offset. start with the duplicated boarders which will be the thickness of the shell. then the isocurves with option through point and aim for the ends or quadrands or use near of the duplicated edges to be sure you hit them. the same distance may also work but you will see. then use the 2 dup boardes as rails for sweep 2 set a point at one corner, select the isocurve as crosssection then set one point at the other corner and sweep. this you mirror along its axis but be careful to hit it because you rotated it slightly its not 100 % perpendicular to the cplane. then join - you have a closed solid inside now. then join the outer shell again and you have the head. the eyes are also messed up you have several edges cornering each other. i cant help you further have a deadline myself tomorrow but here you have the head as a start. i would proceed with exploding the eyes and untrimm the spheres and try if you can get there bit by bit. the inner parts of the eyes are also not done well enough they may cause extra problems.

proj66.3dm (6.1 MB)

Thank you, I’ll try that! I’m also thinking of just simplifying the eye areas (in the sense of making them solid shapes instead of hollowing them out and offsetting them) just to make the process easier and to prevent future mistakes as well.

The way to avoid mistakes is to use Rhino’s surface modeling tools. Using the solid modeling tools will give you a self-intersecting mess made of surfaces that are bad objects with bad trim boundaries that won’t join properly into a solid.

The main thing you need to understand about the head is that the inner and outer parts are two entirely separate entities. They don’t touch each other and they aren’t connected if they are built correctly. So you need to build the inner and outer parts independently. Use trim and join to connect the inner eyeball to the inner part of the skull then do the same for the outer eyeball and outer sirfaces of the skull. Same thing with the eyeball components. Use trim and join to marry the inner components to the inner eyeball part and the same with the corresponding outer parts,

Then when you get the inner and outer head completed you do the same thing to connect the head parts to the body parts. First separate the inner and outer body parts using ExtractSrf.
Then use Trim and join to connect the joined inner body to the inner head parts and then do the same for the outer body and outer head parts. After that join the inner and outer parts into a clean solid,

Here is a file showing the steps. proj66X.3dm (2.9 MB)

Notice I cut off the ends of the inner skull and capped them to get rid of the self-intersecting end points. You could do the same for the outer skull to avoid the self-intersection when you offset. Make the inner offsets of the skull, eyeball and eyeball components as separate offsetsrf operations. Don’t trust Rhino to do that correctly as one operation.

Thank you so much for taking time to help me with this! As someone coming into rhino with only 2D editing/modeling experience, it’s been hard for me to wrap my head around how rhino works, but your explanation definitely helps a lot.

The tip about capping the inner skull is a lifesaver, I’ve been trying to figure out how to get rid of the self-intersecting end points/prevent them from happening in the first place.

I should have mentioned that I ran the command ShrinkTrimmedSrf after trimming off the self-intersecting part. Trimming a surface just redefines the surface boundaries so the self-intersection is still exists in the underlying surface. By shrinking the surface down to the new boundaries you can permanently get rid of the self-intersecting part.