Cannot Join two closed polysurfaces

Hello Forum users,
I see that this question is asked often but I have been trying to solve this for over a week with no luck.
I am trying to mount a ‘cylinder’ object in a polysurface while cutting the ‘core’ out of the polysurface; that is I want to poke the cylinder through and leave it there, discarding he material that is now left inside the ‘tube’.

It look as though I have no bad objects, no non-manifold edges, and no naked edges.
What I would really like to acheive is a Bolean Difference, but it keeps failing. so do Boolean Joins. I have narrowed it down to a certain area, if I try to make the cylinder across this one curve (a series of concentric circles, basically), it always fails. I have tried joining the cylinder to the polysurface, boolean operations, and trimming- I keep beong told I can’t join two closed polysurface.

Please forgive me for rambling, I have been staying up late every night trying to get this done.


Could you post an example file? with illustration?

Yes, the file would be best but if you want to do this on your own, the way to trouble-shoot a boolean failure is by running intersect on the objects and look for openings in the resulting curves.

No, I don’t seem to be able to figure this out myself. In the accompanying photo, BLUE points to the CUTTING SURFACE (the cylinder that I want to join to the polysurface), the RED ARROWS point to the circle that seems to screw everything up, and where it says ‘cut out’ in childlike scrawl is the part that I don’t want. I’m trying to make a hole all the way through it.


  1. You’re trying to cut a hole with a doughnut-like pipe shape. Use a simple cylinder.
  2. The bottom of your pipe is co-planar with the bottom of the the larger geometry. Booleans need to go ALL the way though or stop short : not share a planar surface.
  3. The tolerance of 0.01 seems a bit low for a small part with tiny details. The default for small parts is 0.001.
1 Like

I ran MergeAllFaces on the main object, merging those two revolved surfaces in the center into one trimmed surface. I then made two cylinders based on your cutting object. I exploded your cutting object and ran cap on both the inner cylinder and the outer cylinder. I then boolean union’ed the main object with the outer cylinder and then boolean difference’d the result with the inner cylinder. I guess that gives you what you need.

FWIW: MergeAllFaces shows that the ‘floor’ of your main object gets cut by the bottoms of the ribs - I’m not sure if that is intended. Also note that you have a few very short curves flying around in space.

As for your tolerances, I would also have it at 0.001 but it’s not that what’s causing grief here.

1 Like

I think those were importing errors from fillets. Some of the geometry descriptions indicated wit was made in SolidWorks, which may explain the tolerance being a little off.

I can’t thank you guys enough. I’ve actually never had a good experience with forums , but am super impressed this once. Wim, you really know your stuff! I am very impressed with Rhino as software, and was considering becoming proficient enough to do it as an occupation. Do you have any idea whether there is high demand for this skillset? (Is Rhino a widely -used program?)


I’ve recently read that there are 500,000+ users - I’m not sure where on the scale of widely-used that would go (nor how accurate that number is @bobmcneel :wink: ?)

You could start looking here:

Hello Folks,
I had to make some adjustments to other part of my project and now I am stuck at the same place. I have gone over the suggestions very carefully, and they have been very helpful, but now I (again) cannot seem to get this fatter cylinder joined to the Main Body. I tried using Wim’s directions to Cap Planar Holes, the Boolean Join the Cylinder to the object but it fails. I have no naked edges (that I can see), no surfaces sharing a plane, and no bad objects. If I can ever get the darned thing joined, my plan will be to do a boolean difference with the narrower cylinder to create a ‘tube’-

If anyone can tell me what I’m doing wrong, I would really appreciate it.


MergeAllFaces shows that the ‘floor’ of your main object gets cut by the bottoms of the ribs

I just realized what this means, and perhaps this is why I can’t seem to do a boolean operation on this area. But how can I fix it?


1 Like