MakeHole turns valid polysurface into invalid polysurface

Hi everyone! This is my first post and I’ve only been working with Rhino for about a week. So forgive my if my questions are very basic.

I’ve made a surface and extruded it to get a valid closed polysurface (see first image). I’m trying to add holes to this surface using MakeHole. This succeeds and the result looks fine, but the surface is now an “invalid polysurface” (still closed). I have a few questions:

  • How much of an issue is this, giving that I’ll want to 3D-print the part?
  • Was this to be expected, or more like a bug?
  • Can this be avoided?

I’ve tried increasing the document tolerance from 0.001 to 0.1 just to see if it would make a difference - it didn’t.

Below is the .3dm file. The holes are added in the “holes and markings” layer. (I use these layers kind of like a history)

invalid-surface.3dm (8.8 MB)

Thanks in advance for your help.

Hi Sebastiaan -

Please post the 3dm file so that we can take a look.

I just added it to the original post :slightly_smiling_face:

The absolute tolerance is 0.1 which may or may not be related to the invalid surfaces being created. Rhino works best with absolute tolerance in the range 0.01 to 0.0001.

Like I said in the original post, I increased it to see if it would help. Forgot to change it back, but it was not the cause of the problem.

The invalid surfaces are the two largest surfaces. The problem with those surfaces is the trim around the outside, not the holes. Untrimming the surfaces and retrimming fixed the problem.
Absolute tolerance back to 0.001
SelBadObjects to identify the bad surfaces
DupBorder the bad surfaces
Untrim the outer edges of the bad surfaces
Trim the bad surfaces using the duplicated border curves.
The trimmed surfaces are now valid
Join the surfaces into the polysurface
The polysurface is now valid

MakeHole probably did not cause the problem. I left the holes when I untrimmed and retrimmed. The surfaces where probably invalid before MakeHole but the problem was only noticed after MakeHole.

Without the input geometry and knowing the steps used in creating the trimmed surfaces it is difficult to know what caused the invalid surfaces.

It took a while to get the trimming right, but following your instructions, I got it to work. Many thanks David!