Grasshopper

algorithmic modeling for Rhino

Hey All/David,

I am using an inverted catenary to form the basis of an arch structure. However, I am trying to figure out how to define height of the catenary arch.

Currently, the catenary grasshopper component has inputs:

A (pt A)

B (pt B)
L (length)

G (direction of gravity vector)

HOWEVER, since I'm not dealing with relaxed fabric or chains with a fixed length, specifying L has little meaning to me. Rather, I'm trying to set height H of the arch. Since this isn't an option to input into the component, I've been trying to figure out a way to solve for the appropriate L such that the resulting catenary has the correct H.

Since the truly mathematical way to do this involves numerical integration, I'm wondering how the catenary component finds the curve's shape (so that I can reverse engineer this) and/or what an appropriate solution of height to length would be?

Thanks!

Michael M.

P.S. I have found a discussion similar to this at

http://www.grasshopper3d.com/forum/topics/catenary-arch-from-maximum

where a solution was claimed and a screenshot of it's effects shown. However, the script/example was never posted and so I still don't have a working solution, only a claim that it's possible.

Views: 7864

Replies to This Discussion

Hi Michael

The code in Grasshopper is similar to the one posted on this reply:
http://www.grasshopper3d.com/xn/detail/2985220:Comment:25775
Back then I was a McNeel employee - sorry if now I do not have time to look deeper into this right now, but I hope it helps.

Giulio
--
Giulio Piacentino
Weaverbird development

For a single catenary you can describe the geometry exctly usign a mathemtaical equation in which you can define the height or sag and then back calc to get the length.

 

Note, if you want to combine catanries togetehr then using the GH catenary compoennt will not give you an equilibrium form. You need to use some accurate form-finding alogirthm. See my examples if you are interested

Steve,

Thanks for the help. But I'm still confused. I'm pretty skilled in some languages, but I don't know anything yet about scripting in grasshopper.

That said, Im not trying to "combine" catenaries, so much as I'm looking for a way to input two points and a height (aka input three points and find the catenary that goes through them all), and have a catenary come out.

I was hoping i could just use the existing catenary component to do this since I need the process to react in real time to sliders changing the location of the two points or the height of the structure.

Hi again Michael

besides Chris' nice example, I think I remember that "input three points and find the catenary that goes through them all" was discussed here.

Giulio
--
Giulio Piacentino
Weaverbird development

Giulio,

Thank you! This was exactly the kind of thing I was looking for!

And thank you to Chris too!

Michael

Correction: Thanks to Giulio and Daniel!

What "mathematical equation" were you referring to? For a normal curve like a parabola or line I would know exactly how to back-calculate the length from the height or sag. However, mathematical nature of the catenary equation (y=a*cosh(x/a)) means you can't isolate 'a' without numerical methods. That is why I was wondering what method grasshopper used to find the catenary shape, so I could back-trace it.

Set the Base and Height sliders and then dbl-click on the Galapagos component.  Make sure that the Fitness is set to Minimize and then go to the Solvers Tab.  Click on 'Start Solver'.  Let it run until you have a good value and then stop the solver.  Click OK to close the Galapagos window.

Attachments:

Hey Chris,

Thanks for the help. Since I'm trying to create a unified user object, I need the solver to instantly work. Unfortunately, that means I can't have intermediate steps like Galapagos.

HOWEVER, Giulio Piacentino (above) linked me to a three-point catenary solver, which was EXACTLY what I needed. Thanks!

Michael M.

I've had just the same issue and I wrote a VB component, that does nothing but convert the height of a catenary to its length, so you can use that for the catenary component.

You'll only have to figure out reasonable starting values for amin and amax.

Lukas

Attachments:

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service