# Catenary

Zach, is there a manual describing the mathematical capabilities of Code Blocks?

I was already wondering if it is possible to assign number formats like

a=trunc(b)

peter

Hi all I need to draw a catenary line with specified height and specified width how can i do that ? and is it possible to make it as a revit family?

Thank you

A manual approach to determine the height. Use the slider to adjust the constant (a)

File: catenary.dyn 2 Likes

Would it be possible to specify two points within a family or project file and form a centenary between them as demonstrated in the below image? Catenary between two points…

File: catenary.dyn 1 Like

Thanks Vikram, that script works great. I did try selecting point which are 20/10/5m apart, due to the processing Dynamo hung up. Is this script scalable within Dynamo’s?

1 Like

Change the second line in the code block from

`x=(-l.Length/2)…(l.Length/2)…0.1;` (which creates points at a spacing of 0.1)

to

`x=(-l.Length/2)…(l.Length/2)…10;` (to create points with a spacing of 10)

or

`x=(-l.Length/2)…(l.Length/2)…#50;` (to create 50 points irrespective of the distance)

Thank you so much Vikram .

1 Like

Here i wanted to have a catenary with width 9 and hight 8 but i got this arc !

is there another way to find the right (a) for the top point i want.

i need the two points and the top

I think (a) is not the top of the catenary arch.

Thank you.

a is a constant that helps alter the height. It is not the height variable.

That’s the reason I said it’s a manual process that adjusts the height.

However, if you are using the definition I posted earlier, feed in 9 (not 4.5) for width.

Determining a is an algebraic problem. Need an equation to solve for a (I wasn’t able to)

i am looking for a way to replace a script that i have used int he past in 3ds max for catanary that would take a excel table of xyz locations and calculate a long run of catanarys using the values of tension in N, Density N/m Gravity, would anyone be willing to help with this. i have the max script with the equations. i was trying to start with the tools above but i am new to dynamo and need help here is a link to the script i am trying to replace https://autodesk.box.com/s/yl7ose5z33njqaitey0uhq2i298uuohb

Hi Vikram,

How would you manipulate this script so that you can feed it a list of p1’s, p2’s, and a’s and lace longest?

The above definition, slightly altered, should work fine with lists …
catenary-20180119.dyn (6.5 KB)

``````l=Line.ByStartPointEndPoint(p1,p2);
x=(-l.Length/2)..(l.Length/2)..0.1;
z=a*Math.Cosh(x/a);
p3=Point.ByCoordinates(x,0,z);
p4=p3.Translate(Vector.ZAxis(),-List.FirstItem(p3<1>).Z);

or=l.PointAtParameter(0.5);
vx=Vector.ByTwoPoints(or,l.PointAtParameter(1));
vy=Vector.ByTwoPoints(or,or.Translate(Vector.YAxis(),1));
cs=CoordinateSystem.ByOriginVectors(or,vx,vy);
p5=p4.Transform(cs);``````
5 Likes

Works great! Thanks!

1 Like

Hello Vikram,
I have a question about a z offset that seems to be occurring when I create a series of curves using the above definition. I am selecting two curves in Revit, dividing them and using those points for P1 and P2. However the end of the curves do not coincide with the points on the line and increase in the z as they progress. Could you take a look at the image and advise on how to get the curves to be consistent with the line points? Thanks

Cantenary.rfa (408 KB) catenary-20180119 3.dyn (20.9 KB)

Hi Vikram,
It is possible to obtain the catenary between two points given a length of the rope. It doesnt work for me with th given script.
Thanks

The catenary.dyn link doesn’t seem to be working…can someone repost it please?

Thanks!

In this post there is a working one

1 Like

Got it - thanks Marcel!

Sorry for the newbie question: how do you now get it to output/generate a nurbs curve/line to/in Revit? Do I need to create a node “Line by Points”?

To have Dynamo geometry to Revit geometry you need to create a Model Line.
https://dictionary.dynamobim.com/2/#/Revit/Elements/ModelCurve/Create/ByCurve