c#_NodeConnection without intersection

Hi All,
I have a triangular gird over the surface, this grid will be rectanular structural member, there will be a connection to hold those members where they meet at one point. I am facing a problem, please see below.

  1. Angle between the edges and its length is always different. I want to have node specifically made for that particular meeting point, hence I want to find t parameter on respective lines, value of such t parameter shall be like, when rectangular member is generated using this t-parameter it shall not intersect with any other members.

Possible soln: what I thought is to create range between 0,1 with (100 more/less values). Then treat each value of this list as t-parameter to generate new member and check the intersection with other member, this process shall be continued until there is no intersection found. I am looking for efficeint solution.

Any help in this regard would be really nice.

please find attached script and pics.
RhinoForum_NodeProblem.gh (15.7 KB)

See this old thread in the old (dead) Forum: get the latest C# build posted and adjust/mofify the Method(s) used in order to best suit your goal(s).

A smarter way of doing this - Crash detection - Grasshopper

Anyway the orthodox approach on similar issues is to treat your stuff as a 3d graph, do the connectivity (VV), locate the possible islands using solely the VV tree (General graph case [random proximity graphs and the likes] : NOT included in the stuff that I have posted, since is internal) and then use Trigonometry on each min angle per node (or the min angle per graph and per island) for dealing with real object clash issues.

That said the min angle per node is a classic double loop (for each node against each neighbor nodes [ from the VV tree]).

int nodeIdx = …
for(int i = 0; i< neighbors.Count;i++){
Line strut1 = new Line(nodes[nodeIdx], nodes[neighbors[i]); // or Vector3d in fact
for(int j = i+1; j< neighbors.Count;j++){
Line strut2 = new Line(nodes[nodeIdx], nodes[neighbors[j]); // or Vector3d in fact
double angle = blah, blah
if(angle< minAngle) blah, blah

On the other hand for simple cases you can skip the above by sorting the Neighbors (if the graph is a Mesh there’s a Method for this [related with MeshTopologyVertices not MeshVertices]).

BTW: Maybe this thread is worth considering as well:

Equal distance between points+finding support using Galapagos

1 Like

Thanks, its gonna take a while to go through it but certainly this is what I was looking for

BTW: I’m in the AEC market sector … meaning that trusses like that are done in 99% of cases via systems the likes of MERO KK (or a hybrid solution using cables, custom adapters [very expensive, mind] and tubes on MERO nodes). If you are after that kind of stuff you should first write a C# that finds the min tube-tube angle based on LBS data and classic MERO topology (bolts, sleeves, cones and tubes). Have in mind that Germans are not very happy with variable cones (per truss),

But the biggest issue is the envelope support system that due to topology constrains (smaller sizes etc) is more challenging to master.

Thanks for the information, I would like to try system like MERO in near future.

For now I am trying to achieve another type MERO system, comparatively it looks simple. Let me know if you already have anything like this, I would like to understand.
See attached.

That’s BK-TK-ZK kind of stuff:


I have a complete solution for these but is done via Generative Components for AECOSim (since any truss based project is in fact a BIM AEC thingy).

But although they appear simpler than a KK … in fact nothing beats the classic solution for flexibility, function, aesthetics and price (not to mention W type of trusses [ double layered ] that are the norm in large scale cases - but you can do a hybrid xK anyway). There’s Plan Z available as well : replace steel tubes with WOW carbon ones (pay more, get the glitz).

Other than that avoid fixing in a “linear” way the aluminum parts of the envelope system: thermal expansions ruin any structural silicone over time (and the thing leaks). That makes questionable the usage of xK systems in quite a few places around the world - unless you engulf the panels in the xK triangles (but avoid doing that at any cost).

MERO_EdenProject.pdf (5.1 MB) MERO_SF_34A.pdf (1.7 MB)