Orient perforated variable geometry

Hello everyone,

I’m trying to orient this variable on the Z axis but I don’t know how. Also how to make circles instead of points ? assume I is quite basic, i’m a beginner !

dégradé mur.3dm (431.0 KB)
dégradé mur.gh (8.4 KB)

Well I resolved the orientation problem… Really basic…

So now how can i orient those circles so they can follow the shape ?

In the “P (Plane)” input use the planes defined by the normal at that position. You find that under Vector/Plane/Plane normal.

orientedRandomCirclesOnBrep.gh (9.6 KB)

Thank you furtonb that’s it !

Last request : how can I make circles do not touch each other and establish a minimum distance between them ?

Look up circle packing.

What @Michael_Pryor suggest above, or circle relaxing, which doesn’t pack them tightly, but simply pushes intersecting circles apart, until they don’t intersect anymore.

1 Like

Thank both of you guys. what i’m looking for is something much more like this, with regular spacing between the holes where they are closest.

This could be another way.

Circle gradient Pattern_re.gh (17.0 KB)


Using Graph Mapper with a slight different strategy from Kim.
And a Dam, so it is more fast to experiment on the plane.
And Thanks to @HS_Kim to let me discover Copy Trim !

Circle gradient Pattern_reLD.gh (19.6 KB)


Thank both of you guys !

Hi @HS_Kim I follow your method to create the pattern, but I want to populate them on a trim surface. Trimming out the pattern on a trimmed surface takes heavy computing and uncertain result. Is there any way to avoid this?

Factory_m.3dm (159.2 KB)
perforated.gh (21.6 KB)

You’ll have to tolerate calculation time if you want to cut so many holes. BTW, You can use Data Dam during the adjusting your parameters.
Treesloth plugin is needed to open it properly.

perforated_re.gh (19.0 KB)

1 Like

Thanks Kim. You are right. Those thousands pattern took forever (about a hour) to cut. Thanks for your definition, the data dam gives me the flexibility to parameter and the Treesloth plugin just makes my life a bit easier.