Perforating a curved Surface

Looks like yours works. A bit difficult to follow the logic given the switchback wiring and redundant Srf CP, EvalSrf, Circle, Pull, etc.

Is ToPoly the best way to get the center of a circle? I didn’t know that. White group shows a different way but the difference is very slight.

I culled the original planes along with the circles so could reuse them for offset.

Too sleepy to even begin to be orderly. I think this works better. I am just fooling around at this stage.

What I try to do is unroll the surface, then use the random seed, connect the dots, create mesh from them, find the shortest edge touching a vertex, take half it’s length, create range for a random radios for every vertex and map on the 3d surface.

messy idea 2.gh (17.6 KB)

Sounds clever, I can’t see it, sorry.

Kind of works…

messy idea 3.gh (25.0 KB)

BallPivot.gha (14.5 KB)

This one applies ‘minimal distance’ slider (blue group) to edges as well as circles and uses Anemone ‘Fast’ instead of ‘Classic’, though it still requires patience. It has flaws… Such as failing to detect one circle inside of another, a problem that was solved in the old planar rectangle code but is back.



steps_2021Jan29e.gh (46.4 KB)

Maybe curve proximity is a better measure than intersection? :thinking:

Yeah, the code is simpler, faster and seems to be more reliable at detecting circle overlaps, though it doesn’t attempt to detect circles inside of other circles. But they won’t do any harm anyway.



steps_2021Jan29f.gh (42.9 KB)

P.S. Random (radius) also needs a ‘Seed’ slider (0 to 300).

Look at this?

steps_2021Jan29e.gh (45.8 KB)

Sorry I am supper messy brother, I am half asleep :slight_smile:

Your file names are the same as mine. I see you added some code to what I did but don’t know why?

Oh, some additional overlap detection? My version ‘f’ does better at that than version ‘e’.

Pau and ciao!

I just opened yours and solved the intersections and the circles inside circles. Forgot to change the name, just saved and uploaded.

You could do circle packing with TriRemeshwhich is new in R7…


Perforating a curved Surface_re.gh (175.1 KB)

Simplified further:


steps_2021Jan30a.gh (47.7 KB)

It’s tempting to try nested Anemone loops to handle more than two surfaces but it gets complicated.

And a simple workaround if you don’t have R7…

For R6.gh (20.4 KB)

Here is a workaround :slight_smile:

For R6_V2.gh (29.2 KB)

Even simpler…

For R6_V3.gh (34.1 KB)