We’re designing lightweight space frames from tubes and 3d printed connectors. We have simple mesh files with stacked cubes with some diagonals. These come out of another 3d program, we want to use this as input. Below is a visual of the test structure in the attached GH file, the final structures are more complex and feature a maximum of 350 connectors in each structure.
We’re using Grasshopper for generating the connectors and to help us organise production. This is the definition that generates a single connector by feeding in a list of angles and performing rotations.
Now we want to be able to identify - based on the cube mesh - how many unique connectors there are in the whole construction and how many of copies of each unique connector we need to 3d print.
Since the configuration of vectors is what makes each connector unique, I figured it would be best to look at those as finger prints for identification. Since vectors are relative, it should be doable no? Attached is a definition that I made that extracts the vectors of the edges connected to any given node point. This was a great learning opportunity but now I’m reaching a bit my limits so I’m looking for guidance. Only Lunchbox is used as extra components.
20200512-Principles_v3_cleaned.gh (27.7 KB)
Problem one is a data tree issue I believe. While I succeed in extracting the vectors for a single point (and learned some data tree lessons there) I fail at generating a list of vectors for all points. A garbled mess comes out at best when I input multiple nodes instead of one.
Once I solve that, the main issue for which I don’t even have a conceptual approach, is how to compare alle these sets of vectors with each other. The issue is that they can be oriented in all variations of 90 degree angles around X, Y & Z. Regardless of orientation (but NOT when mirrored) they should be labeled the same part. Is this doable? My only hunch was something like Anemone to loop through all different orientations and compare at each angle.
But maybe this is a stupid approach and I should do it differently altogether. Input both ways appreciated!
ps. another option we’re exploring in paralel is to generate all connectors in place within the space frame and find a way to pack the efficiently as one 3d print batch.