Tangent of a sphere for the rolling sphere method (lightning protection)

Hello,
I’m trying to build a net over my air-terminition system.
I already got this far:

How can I make it look similar to this?

Here is an short explanation with formula on how to calculate this by hand:

The whole document belongs to Obo (lightning protection manufacturer) and can be downloaded here:

I just started using dynamo and sadly have no idea on how to do this.
I assume it’s possible with tangents, vectors and a surface or a sphere.

Can someone help me solve this?
Thanks in advance!

Here’s my dynamo code:

Hey,

There is a sphere by 4 points node?

I’m thinking that the hardest part is grouping the seemingly random points… So I’m constructing a surface for each set, which should always have 4, I think!

Also, you’ll obviously have to define 4 points where your example sometimes only has 3…

How about something like…

  1. Get geometry
  2. Filter for geometry type = line
  3. Get end points
  4. Filter end point with greatest Z value
  5. Topography by points
  6. Topography to polysurface (springs?)
  7. Explode polysurface to surfaces
  8. Surface perimeter points for each surface
  9. Sphere by 4 points for each set of perimeter points.
  10. Split all the spheres by all the other spheres
  11. Get the partial sphere which intersects all the 4 construction points for each surface

Hope that is useful,

Mark

1 Like

Hi @davi-id & @Mark.Ackerley ,

I think that the biggest hurdle this problem poses is how to determine which point should have a curve/connection to the other points. I think that a good approach to determine this is by doing a Delaunay triangulation - Wikipedia


In this case I assumed that all column locations lie at the same z-value. This could ofcourse be easily adapted if this is not the always the case. The Delauney Node is from the ‘spring nodes’ package btw.

From there, using the table you attached as p-value input, determining and applying the p-value for each curve is quite simple when using Local Coordinatesystems:

In this case I only used the ‘BlitzSchutzklasse I’ values, but the other could also be easily implemented.

Result:


Using these curves you could then create a surface, mesh, etc.

2023-06-19 Create Arcs from multiple points using Delauney Triangulation and Local CoordinateSystems.dyn (47.6 KB)

5 Likes

Thanks for your help! I tried using it and now I’m stuck at the easy part already. The List.IndexOf node retrieves -1 for all Indexes and the List.GetItemAtIndex can’t get those items. I thought about solving it like this, but sadly it didn’t work yet:


@Daan described this here IndexOf Node Issue (Returning -1) - #2 by AmolShah earlier in 2020 and it made sense for me, but not for the program :smiley:

When used with only three points the delaunay node retrieves null :confused:

You can download my Revit file here: Onedrive Link for Lightning.rvt

Hi @davi-id - I’ve been playing around with this in between work (Which has admittedly been busy hence the delay…) but I’ve managed to get the first part done for you using one method. This is not a Catenary yet, but rather a set of Delauny triangles between your poles.

The next step would be to take these surfaces as inputs and create the catenary surface from them :slight_smile:

Dav-id_DrapedNetOverBuilding_Delauny_Catenary.dyn (308.9 KB)

You can take some inspiration from Catenary - #23 by paulS2UM4 where @Vikram_Subbaiah shows some pretty awesome DesignScript off :muscle:

4 Likes

Thank you! Works nice. I’ve been busy doing other things. :confused: But will post a follow up. So next thing will be getting this catenary and connecting it with the ground level at the edges (just like a ball would roll over this).

1 Like