How to - Perforations around a polysurface

Hey all,

I have an Alexa-style prop I need to create with (let’s say 1/16" perforations around part of the body. I’ve separated that part of the body out.

What’s the suggestion for making the perfs in it? Flatten, make holes, re-bend into shape? Project array of holes somehow around surface?

I’m sure this is something that comes up a lot, and would love a nice tried-and-true way to go about it.

Will upload file in case it’s helpful.

TOYOTA SMART_Version A_v01.3dm (6.2 MB)


Hi Alan - is this for rendering purposes? Or do you need the 3d model of the holes?


Hey Pascal

Well, I would like the 3D of the holes.

That said, I suppose I could put a texture on there and do SetObjectDisplay to show the texture.

But again, I’d like to figure out how to do it in model space for realsies.

Hi Alan - here’s what I’d do-

  1. Make a copy of the target surface - ExtractSrf with Copy=Yes will do it. Hide everything else
  2. ShrinkTrimmedSrf
  3. Rebuild to a high point count - say 32 by maybe 256 in this case to get an even grid and evenly distributed UV
  4. CreateUVCrv
  5. Move all of the results to one side for convenience and make an array of circles inside the perimeter rectangle

Now, there are two possible workflows that I can see

  1. Make a PlanarSrf from the perimeter rectangle.
  2. Extrude the circles a short distance ,BothDirections
  3. FlowAlongSrf the circles from the plane to the rebuilt surface
    (the possible advantage is to this route is that you can use the Rigid in the Flow and get a true, un-tapered cylinder at each location)
  4. ApplyCrv the outer rectangle and the circles to the rebuilt surface

Either way, use the results to trim the orginal surface - the rebuilt one can be discarded.

And, either way, making that many holes in a surface is a good way to slow Rhino down to a crawl -

A few of each in the attached file. The rebuilt surface is in place the original hidden.

TOYOTA SMART_Version A_v01_PG.3dm (1.0 MB)


Going to check this out in a few minutes, but wanted to reply. Thank you!

pascal remember when I mentioned the “perforate” command? this is the exact use case I imagined.

1 Like

Digging the sound of that…!

yeah, probably a lot more than this workflow!

Have you tried PanelingTools? It should give you great flexibility to work with surfaces and add any cellular 2D or 3D texture or perforation. Use ptOrientToGrid, or ptPanelGridCustom, then split the surface with the populated pattern.


:open_mouth: Paneling tools. Need to dive into that thanks!!