Selecting desired surface midpoints to connect each brep

Hi everyone,
Basically, I have 4 tetrahedrons, and I want each of them to connect to the midpoints of the closest surface of 3 closest cubes. As can be seen in the screenshot, I was able to select closest n number of cubes for each tetra, and I connected the tetras to the centers of the cubes, so what I want is that the connections should not be to the center of the cube, but to the center of the closest surface for the relative cubes and tetras. I hope I explained clearly :slight_smile: Any help??

flowinal yeniden.gh (87.6 KB)

I meant to help with more fidelity but I opened your file and saw that you have 12 plugins I’d have to install.

However here’s a simple example:
3closestfaces.gh (32.3 KB)


obviously, the ‘tetrahedra’ I used aren’t really tetrahedra, but it doesn’t matter. I went from centroids of the ‘tetrahedra’ to the cube face centroids, but you can also go from cube face centroids to tetrahedra centroids.

deconstruct the breps, calculate the midpoint of each face, and use those points

Hi René,
proceeding from your example; i need the connections to be established between 1 tetra - 3 different cubes. In your example, the tetra goes for the closest cube surfaces, it can also pick three surfaces from the same cube, but I need those 3 lines to go for surfaces of each 3 cubes (just like the one at the top right corner)

1 Like

hi Adel, I attempted various tries but couldnt get the result i desire, I believe there is a data listing trick that I am missing


Thank you all for your help. I sorted it out by finding the surfaces that intersect with previously generated lines and reconstructing the lines with the midpoints of colliding surfaces. Still I would appreciate any faster/better solutions.

1 Like

lol - cool - I am lost - first you said you wanted to go from each of the 4 tetras to the closest surface midpoints of the 3 closest cubes to each tetra - lol again, thought I did it, but I broke my tongue instead - I am sure I got it wrong, ‘glad you made it work!

Cheers

Get the general case. Objects are of 2 kind (user defined): masters and slaves. Rule is that for each pt in master’s Faces (centroids in fact) find the prox pt in slaves (also centroids).

But it’s done 100% via code so use it solely for fun (unless you want to walk the proper walk). Anyway … the resulting connections Tree tells you (via the 4 path dims - see comments) what is connected to what. Using a clessic Point3dList for prox pts queries (a quite fast Method).

Brep_MasterToSlave_Prox_Conn_V1.gh (162.2 KB)