Perforation on Brep

I am pretty new to rhino and grasshopper. I have been using it few days trying to figure out whether it could solve the problem I have. I would like to make perforated structures to be used as molds. As in the picture below:

My approach is probably far from optimal, and there are some issues. So I am asking here if anyone has any tips.

The basic shape I am able construct from rectangles, lofting, and filleting top edge and then subtracting the internal shape from the outer shape.

But the perforation becomes issue. I have problems dividing the polysurface into evenly distributed points. I can decompose the brep surface into subsurfaces and adding points to each of those and using cylinder to cut holes. But issues arise with the corners, and with the shape (truncated pyramid), distance at the bottom is larger than at the top.

Below is attached my grasshopper file. I have disconnected the trim solid so that it would be faster (just constructing the shape and cylinders for cutting). It is still pretty heavy.

perforation.gh (26.3 KB)

Check out this topic:

4 Likes

Consider using ShapeMap plug-in, it seems to be a perfect application in your case.
For perforation itself, there is a lot of similar posts on this forum, as mentioned above

https://www.food4rhino.com/en/app/shapemap

This is a fascinating problem, to perforate a brep shape formed with “faces”.

In particular, the hole pattern for each face must avoid overlaps and long edges.

So I started puttering with your code… left most intact, got this:


perforation_2026Feb2c.gh (25.5 KB)

P.S. Notes:

This is low resolution and extremely slow (“1.7 minutes”)

Fiddling with param values to avoid overlapping holes.



perforation_2026Feb2d.gh (38.5 KB)

There must be better algorithms for this :interrobang:

More of the same. Changing the value of the ‘BETW’ slider from “7” to “4” gives this:


perforation_2026Feb27dd.gh (34.8 KB)

782 vs. 284 “posts” (holes). Takes 2.7 minutes vs. 1.7 minutes.

You can give it a try with ShapeMap, and fyi.


ShapeMap.gh (23.5 KB)

4 Likes

That image looks great. How does it work? How fast is it? Does it make holes?

I didn’t try (yet) to improve the way points (for holes) are determined.

try it in rhino wip, shapemap is included with the new grasshopper by default

2 Likes

Not gonna happen.

  • Does it make holes?
  • How fast is it?
  • How does it work?

It is fast, it maps open brep on 2d plane, allowing you to apply your pattern and map it back to brep.

Does it make holes :interrobang:

1 Like

Oh, wow! Good discussion here! Need to try the shapemap. But yep, same question, does it do the holes? At the end I am going to 3D print the structure. So I need an stl with the holes included.

And also, if there is some better way to do this than my approach? I suppose the problem is the polysurface that is not easy to subdivide well. Been looking for curve revolution as well, but it overfolds itself quite easily at the corners.

shapemap itself is not making holes. As I said, it maps geometry, which makes sense from the name of the plug-in. And i think it is obvious from Jessesn solution that you can use pipes to boolean difference the shape and get holes. Or you can develop more complex solution for dividing the surface itself by mapped pulled circles, produced by shapemap.

1 Like

Your shape is easy to subdivide, check out the first reply to your post, it shows very good solutions with kangaroo by Daniel P. you can use in combination with shapemap to get very good results for your shape. Just experiment and update us if you have questions

1 Like

Yes, you can use Solid Difference to get the holes after you create these cylinders via ShapeMap

Solid Difference Grasshopper Online Document

@Tuomas_Turpeinen @Joseph_Oster FYI.


MakeHoles.gh (31.4 KB)

1 Like

In 8.1 seconds instead of 2.7 minutes :interrobang:

I finally downloaded and installed the plugin as asking questions was like pulling teeth.

I see how the holes are distributed (nice), though am still puzzled why SDiff is so fast :interrobang:

Don’t know how to change QRSettings to increase hole density? But that’s conventional, not a big mystery (increase ‘Tc’?).


MakeHoles_2026Feb28a.gh (34.0 KB)

1 Like

Am I the only one curious about this :interrobang:

Should I keep the reason secret?
:roll_eyes:

It’s R8 (9.5 seconds) vs. R7 (4.1 minutes) :bangbang: :bangbang: :interrobang:


perforation_2026Mar1b.gh (1.0 MB)

P.S. This is yesterday’s version ‘dd’ opened in R8.


2 Likes

Thank you for the comments! I will have look on those tomorrow when I get back to my computer! The shapemap + kangaroo seems like a perfect solution!

And Joseph: You mean rhino 8 is much faster than 7 with the perforation?