Optimizing Boundary Surface for Perforated Panels?

I work allot with perforated panels and making a surface from denser patterns is nearly impossible with both the planar srf command and boundary srf component. It takes soo long that rhino tends to crash after an hour of loading.

Here is an example, the perf on the left can be turned into a surface in a couple of minutes and the perf on the right is so dense it just loads forever. Perf on the right is 0.25" with 0.5" center to center on a 60-degree hex grid with a 24" x 24" panel border.

is there a work around or a WAY TO SPEED THIS UP?

One trick is to not model the holes but use an alpha channel mask so it renders with the perforations through a material.

Not sure how often the panels are recalculated in Grasshopper? We have seen some very large assemblies by splitting them up in a folder and batch calculating all the panels separately. Then pulling them into an assembly. Might even be able to use Hops for that.

I would expect the render mesh situations may also be a problem. There are ways to try and speed that up.

Just some ideas we have seen in the past.

Im using the surface for FEA calculations so im sort of stuck with needing to create a surface.

What would happen if you made a highly efficient quad mesh cell that included the a single hole then arrayed that and joined it? You would get an efficient mesh for fea?

That might have to be the work around. I wanted to avoid having to go that route since it seems like it might cause some unforeseen issues down the road. I’ll try that out and see how it works.

There are hundreds of threads on this forum related to perforated surfaces, often using SrfSplit. Here is one random example using ~1400 holes that takes 5.4 seconds:

Thank you, I will look into this as well.

I tried searching for similar threads before posting but didnt find the one you linked. Looks helpful as well.

holes_2023Jan13a.gh (16.6 KB)

1 Like

Hi @EDD2,

Trying running the attached Python script agains the attached test file.

test.py (2.0 KB)

test.3dm (1.2 MB)

In this case, since we know the curves lie on the plane surface, we can bypass all of the heavy calculations and just add some inner planar loops to the Brep.

– Dale


That works great. How would I get this as a GH component?

Hi @EDD2
the attached seems to work:
perforated.gh (20.5 KB)