Voronoi intersection


(Joseluissp23) #1

Hi there,
I am trying to make a voronoi but unfortunately after try a couple of different ways to do the intersection, I do not get the voronoi. I have made in simpler models, in the same way as shown in the picture but for some reason does not work.


1.gh (11.5 KB)

I would appreciate any help on this.

Thanks in advance.


You didn’t internalize your three Curve params.


(Joseluissp23) #3

Hi Joseph,
I am pretty new in grasshopper, I forgot to attach the Rhino file or internalised the data on the grasshopper file.

So I went through the problem again and I believe I know where the problem is, some of the boolean(not sure what it is a boolean yet. I believe they are components made of a series of polygons) are not closed.

Any idea what is the root of the problem, since in other simpler models this script worked well?

Perhaps I could turn the boolean into a curve and then join the curve, but I tried by using simple parameters and I did not work (I dont know whether that is even possible since I am not sure about the boolean definition in GH and I am not able to find it within the help or manuals).

here is the file with the internalised data:
1.gh (16.0 KB)

thanks again.



Sometimes it’s helpful to use a completely different method to get a better result.
You’ll need “clipper” plugin…

VoronoiPatternOnASrf_re.gh (16.5 KB)


The first thing I noticed was that Swp1 was producing four surfaces instead of just one? I ignored it at first but the complications that multiple surfaces create later led me back to fix it. Very simple - run the two station curves through a Fit component! Voila. Why? I don’t know…

The next thing is that when you Scale the BBX curves, they are no longer on the surface you want to split. The Pull component fixes that so SrfSplit works!

Now all you have to do is find which one of the resulting subsurfaces is the “big one” (the white one in the image below); all the small ones are the holes. In this case, it happened to be the first one in the list, so List Item with ‘index=0’ would work. In general though, what I do is add up the length of all the edges of each surface and sort them by that value. I wrote the Srf SL cluster to do that, you can edit it to see how it works.

Finally, I looked at the other method you tried, which is to Loft the BBX curves with their scaled counterparts. Using the Pull curves helped but Loft still failed due to a data tree mis-match. I don’t usually resort to “Simplify” to resolve such issues but was lazy in this case and it works (the red surface below)

voronoi_2018Feb10a.gh (29.3 KB)

(Joseluissp23) #6

Hi Joseph & HS_Kim,
thanks for the help.
both answer were very constructive and based on them I managed to do it in an additional way of the ones proposed above.

I really appreciate.