Howto to join surfaces that share overlapping edges in z-axis?

I am looking for an elegant and fast method to join adjacent surfaces that share their outlines when viewed from top. In the attached example I have a bunch of cells, aligned in a circular voronoi fashion. Each is then slightly rotated. Now i need to join them to a Closed Brep ( I need to export a clean solid down the line)

One method i thought could work was to find overlapping edges before the rotation, and then somehow used indexes to do a Ruled Surface. Well… i could not find a way to do this. An alternative I thought of was Ruled Surfaces between the planar outline curves to the rotated curves, and do some intersections between these surfaces and the planar voronoi cells. I stoppedt this before I could even test it because of execution time / freeze.

I would be much appreciated if someone could have a look how to best approach this? (i could not find related posts from the past at the forum) (13.1 KB)
from top - individual cells (closed curves)
Green is what I need, but in the current state these surfaces extend all the way to the Cplane. I need surfaces between the adjacent surfaces (colored red)

Rather than rotating the Voronoi cells, it appears to me that the base plane for each Voronoi cell is rotated slightly, moved in Z, then used to project the Voronoi cells? And I don’t see any offset of the cells to create the thickness your image implies? So I don’t really understand your goal but tried anyway. (27.6 KB)

SUnion fails to join all these ‘Closed Breps’, even when they are scaled up slightly to overlap (yellow group). And it seems a little odd to me that plane rotations all happen in XZ planes instead of in a radial pattern with respect to the center?

1 Like

More like this? (23.7 KB)

Hi @Joseph_Oster Thanks for the swift reply.

indeed the voronoi cells are projected to a reference plane. So I tilt them essentially, while respecting their original form when seen from above. What I want to achieve is that these tilted cells join each other at their edged, forming a single surface. From there on I can extrude the convex hull and make a closed brep.

I quickly baked some crv’
s and did a manual loft to better illustrate what I want to achieve
Srf’s with color Yellow is what I need, and Green is what i don’t want. Not only because they extend to base plane, but also they overlap. (63.5 KB)
I included the surfaces inside the file.

Yeah, nah. Not interested, sorry. Good luck.

No problem. Was able to figure it out, using some python code. I attach the file in case someone may find it useful in the future (26.8 KB)


Here’s a method to accomplish this with standard components and no scripts. Using common grasshopper grouping method (Create Set, Member Index, and List Item).

Playing with your file, I noticed that if you increase the number of voronoi “rings” (“Radial Count” slider set at 5 here) some of the surfaces are twisted.

Made a variation of your file that does not tilt the voronoi cells, but just changes their height based on angle and distance from center (this file includes the code block shown in the picture above). (23.2 KB)



@kev.r , that is very creative and insightful. Works a charm. Thanks for the feedback and time spend making this script better!