DesignScript
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Create Catenary Curves with DesignScri pt?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I have a funicular fireplace design that I created using Rhino Grasshopper.
The design and the Grasshopper definition screen capture are attached. Grasshopper has a catenary curve component that creates a spline curve in Rhino. All you need is two points and a number slider to drive the length of the curve.
The baked geometry that I created in Rhino was subsequently imported into AutoCAD where I solid modeled the fireplace and rendered it.
How would you tackle this same design problem with DesignScript?
Thanks.
Solved! Go to Solution.
Re : Create Catenary Curves with DesignScri pt?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
I do not know Grasshopper, but may be this to start with DesignScript:
import("ProtoGeometry.dll");
numPts = 17;
def parabola(width : double, height : double)
{
a = -4 * height / (width * width);
x = width / -2..width / 2..#numPts;
y = 0;
z = a * x * x + height;
return = BSplineCurve.ByPoints(Point.ByCoordinates(x, y, z));
}
spl1 = parabola(10, 6);
spl2 = parabola(12, 8);
Re : Create Catenary Curves with DesignScri pt?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi _gile,
Thank you for your quick response!
I ran your script and the results are attached. This is a very nice approximation of my fireplace geometry.
The reason I say approximation is because a parabola is visually very similar to a catenary but mathematically very different. The catenary also has a very important structural attribute in that it creates a compression only arch that is structurally stable. This is not true of a parabola. Here's more information about the differences.
http://mathforum.org/library/drmath/view/65729.htm
http://en.wikipedia.org/wiki/Catenary
Please add the catenary curve to the geometry library so that you can use DesignScript for funicular form finding.
Thanks.
Re : Re : Create Catenary Curves with DesignScri pt?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
This one draws a true catenary curve.
You'd have to play with the param argument to find the height that suits you according to a given width.
import("ProtoGeometry.dll");
import("Math.dll");
def catenary(width : double, param : double)
{
height = param * Math.Cosh(width / (2 * param));
x = width / -2..width / 2..#17;
y = 0;
z = param * Math.Cosh(x / param) - height;
return = BSplineCurve.ByPoints(Point.ByCoordinates(x, y, z));
}
cat1 = catenary(100, -28);
cat2 = catenary(120, -30);
Re : Re : Create Catenary Curves with DesignScri pt?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks, that was fast!
Please see the attached 2 page PDF for a comparison of the parabola and the catenary definitions. I have a question about how you wrote the numPts variable in both definitions.
Otherwise, I consider this problem solved.
Thanks again!

