I have two problems when I try to connect these voronoi cells made with Ngon. I am trying to connect the voronoi surface edges with each other using the proximity node, however, although it works ok, there are some parts that connect although they are on the same surface. Is there a way to cull them? Or perhaps another way to make a line between the midpoints of each cell?

Second question, I need to make holes where the circles intersect, which works here, but the system seems to slow down significantly, is there a mistake there? or a way to do this smoother?

I took the liberty of changing a large part of this definition.
Rather than distribute spheres, then try and find connections and reconstruct a mesh from this, I’ve shown how to do this by remeshing (still sized by colour).

Then I also added a step to further optimise this mesh for tangent incircles.
Using the incircular dual from this gives better edge lengths than you get from a Voronoi, where the edge lengths will sometimes be very close to zero, which was giving you situations like this where the connections clashed-

Voronoi (circumcentric dual) from sphere packing alone:

Compared with incircular dual on tangent incircle optimised mesh:

Because you then have the mesh connectivity, there isn’t the need to flatten and remap and find connections by proximity, which should be cleaner.

panels_rings.gh (328.3 KB)
The tangency points of the incircles also give a natural location to offset from to place the holes for the connecting rings:

You’ll still need to redo your sorting and labelling, but I think this should also be easer having a clean mesh topology to work from.

The incircle dual can be extruded to give planar torsion free beams, which intersect along the normals of the incircles (like shown here), but in general the faces of the dual will not be planar.
When we have a triangular mesh with tangent incircles, the points of tangency of these circles around each vertex share a common sphere. When the mesh is smooth they are also close to lying on a common plane/circle. They will only be exactly coplanar in simple cases such as when the whole mesh is planar or spherical.

I am trying to switch the rings to the earlier version on the tangent circles, The rings have rotated, but I can’t figure out how to get the point to the intersection other than with intersection nodes that are very heavy on the system. Is there a way to get the point and holes to correspond with the rings going through the smaller circles?