Cannot Boolean Split two closed poly surfaces (mold making)

Just learning Rhino coming from Fusion. Never messed with surfaces in Fusion…

After four complete days I have remade my model in Rhino and joined all curves, surfaces and successfully have a closed poly surface for the 1) wing, 2) Split Line, 3) Mold with zero naked edges.

However, I can only split the mold on the split line, I cannot remove the wing from inside the mold, so my mold is left with a shell of itself on the correct split line.

When I go to split the mold “BooleanDifference” and the wing it says, “Objects do not intersect. Nothing done.”

“Boolean Split” fails as well.

So frustrated.

V2600 Foil Mold and Offset.3dm (7.5 MB)

You need to split the mould with a splitline surface that has no wing shaped cut-out. Then you subtract the wing from the upper and lower mould parts. Also, your surfaces are incredibly complex (huge amount of isocurves, likely overly complex curves).

Thanks, I move the pieces apart and used the blend tool to close the splitting surface (which was made with a ribbon off the wing parting line earlier). Here it is 3rd down. I used that to split the mold without the wing involved. It made the mold into two shells just like before as you can see which is not what I want of course. I also made a simple block and tried to boolean split the wing out of it and it “Boolean difference failed.”

Good to know it’s complicated but not sure how I would do it differently.

It’s one thing if my plug has something weird going on, but the surface should be able to split a simple block (the mold) right?!?!?!

.

Also just tried to split the closed poly surface plug and couldn’t do that, what is going on?

Here, macOS Rhino Version 8 (8.27.26019.16022, 2026-01-19) it splits.

But not in the same place as the OP - where it doesn’t split here either.

@Amelia11, The reason your split fails is that you have several vertical rib surfaces within your model and the split coincides with an edge of four of these. (I speculate that you made a half model and mirrored it, but I don’t know how you managed to get them to be part of a closed polysurface without showing non-manifold edges - perhap the model didn’t originate in Rhino?).

If you use ExtractSrf to separate these internal ribs, which are irrelevant to the plug and can be deleted, your split will work. Albeit the front part of the plug will separate into two parts and need joining.

EDIT: I’ve found four more internal ribs, so eight in total need to be extracted and deleted. Actually, once you have removed these you are going to have to _Explode the whole model and rejoin the pieces to get it closed, so Just _Explode, delete the ribs and join rather than _ExtractSrf.

Regards
Jeremy

I would execute the whole thing as a proper NURBS surface model, also an excellent learning exercise about NURBS curves/surfaces, and then work with that. In my experience, trainees coming from Creo or Fusion, for example, need to “unlearn” solid modelling principles to become good at using Rhino swiftly.

The above would make for a nice student beginner exercise.

Hi Amelia,

I have looked a little further into your model and you have a problem with the wings. The top surface at the fuselage becomes the bottom surface at the tip and vice versa. Until this is resolved you won’t get a successful mold.

When you’ve sorted that out, feel free to come back for more advice if you still cannot get it to work.

Regards
Jeremy

Hi,

The first thing I noticed was the model is drawing a little funny. It looks like its rendering inside out and all the normals are pointing inward.

The Dir command confirms that.

The polsysurface can’t determine its orientation and I’m not certain that’s a bug. Like others have mentioned these surfaces running down the center should be deleted. Maybe the Join command is stitching them together incorrectly and it just happens to make something it thinks is closed. You’ll have to let us know how you created that.

Like @jeremy5 said the wing surfaces are self intersecting. Both of these issues will cause issues with the orientation calculation.

There also seems to be quite a few edges with very high tolerances. The edge tolerance is basically how far away from the surfaces the edge curve connecting them is. If it’s low the surfaces are joined very tightly. I see a many edges which are quite a bit higher than the document tolerance. There are also a few which are several hundred times bigger than the document tolerance. It’s hard to know how those were created but they can cause issues with splitting, trimming, and booleans. If you run Explode on the object, RebuildEdges, and Join there’s several new naked edges with quite large gaps between them where the edge tolerances were high.

Cleaning those issues up would be a start. I don’t think Rhino should be making geometry like this but you’d need to tell us how it happened.

Lots of bizarre surfaces. Odd isocurves. V-troughs. G1 errors. I’d model this properly as NURBS surface model.


I really appreciate all the help, did not expect this much.

“NURBS surface model”. I thought that’s what everything in Rhino is?

The center part of the model is a surface model from fusion I “join”ed and “joinedged” together. Lots of gaps at every join. I was unsure what the tolerance meant when closing gaps, but I had lots of very tiny tolerances when “joinedge” like e^-7 and others like .01mm. Spent hours and hours and hours joining the edges on this model.

The rear portion of the fuselage I modeled in Rhino along with the wing and the connection to the fuselage. It was indeed modeled in half. I had a helluva time trying to mirror the models because it turned out all my surfaces were’n’t perfectly in line with each other or the split plane even though I lofted and swept them off neighboring ones. Not sure where I went wrong. I didn’t realize the importance of the joining until the model was all done, so I wasn’t aware anything was wrong.

“The top surface at the fuselage becomes the bottom surface at the tip and vice versa.” Yes it goes around the corner and back to the other side, how else would it go? I modeled this with two airfoil .dat dot point shapes and lofted (or swept?). Not sure where this went wrong.

Looks like I have a long way to go! Will try and figure it out, maybe do some simple modeling first.

Is it accurate to say that when making any surface you should “showedges” and make sure everything works before going to the next piece? Or is there a simple way to make sure things line up?

What I meant is to properly build the model from scratch, first thinking about a suitable patch layout, then making sure to use the appropriate types of curves in the right places, then using the appropriate types of surface building tools, using overbuilding techniques where appropriate, converting trimmed surfaces to untrimmed ones where appropriate, and finally blending/filleting where needed. That would amount to a good NURBS surface modelling learning experience in my opinion.

I have the suspicion that the model above is a mix of Fusion and Rhino parts, with many inaccuracies, as the two exemplary screenshots above show.

Alternatively, as a “quick-fix”, you could do “repairs” like @jeremy5 and @Joshua_Kennedy have suggested. As you will most likely sand and finish the model prior to mould-making, you can then ignore the many glitches, as long as the sanding and finishing does not introduce undercuts that would make mould-release impossible or difficult.

DO NOT use JoinEdge as a standard tool when modeling. Instead fix the geometry to make any gaps between adjoining edges is less than double the absolute tolerance so that Join will work. The distance between edges can be checked using CrvDeviation.

JoinEdge does not alter the geometry of surfaces to eliminate gaps. Instead it just forces Rhino to pretend that the gap is not there and makes the display not show the gap. Some operations, such as calculating a vlume or area, work okay when JoinEdge was used but usually there will be something which does not work.

Yes.

MatchSrf can be used to match edges of surfaces. However it only works on individual surfaces, not polysurfaces. A solid in Rhino is a closed polysurface without no naked edges. MatchSrf can only alter untrimmed edges, not trimmed edges.

No, the two surfaces pass through each other about 1/10 of the distance in from the tip. This is illustrated in the images, where one surface is green and the other magenta. This crossover is a reason why Rhino is confused about what is inside and what is outside the object. Obviously this is unintentional as it leaves a line on the wing with zero thickness. How did you model the wing? And, purely out of interest, is this intended to become a wind tunnel model?

It is also advisable to check curvature. Your wing surfaces are built with a lot of control points and I wondered whether you had done that to get a very precise aerofoil section. But if you turn on the curvature graph you will see that the result of all those points is actually a bumpy surface:

Here is the first profile rebuilt with less control points. Not yet perfect, but better:

To get smooth surfaces, the less control points you can get away with, the easier it becomes.

HTH
Jeremy