### A plugin to create parametric catenary curves, by Paolo Marcuccetti ©2024

# Catenary Curve for Vectorworks®

With this plugin you can create parametric catenary curves

This plugin creates a parametric catenary curve out of a 2D line

Once installed and placed in a palette (see installation notes), you can click on the icon and start drawing.

The plugin is a *line object* plugin.

Start in plane view with a click (first point) then drag and release the mouse (end point).

In this way you set the two ends of the catenary and the object is created.

- Here you set the dZ values of the two points:
**dZ point 1**and**dZ Point 2** **Direction**: here you can choose to draw the catenary**downward**(like a hanging chain or rope) or**upward**like the Gateway Arch in St. Louis, Missouri, United States**Method**: you can set the chain length or the sag. The sag is meant as the distance from ground to the lower (in downward catenary) or to the higher (in upward direction) inflection point.**Chain Length**: enabled in*By Length*mode.

This allow to set a chain length. If the length is too short (minor of the two points distance), an alert is presented and the minimum length is set automatically.**dZ Sag**: enabled in*By Sag*and*Downward*mode.

This allow to set a sag value. If the value is higher than the lower**dZ**of the two points, an alert is presented and the maximum allowed value is set automatically.**dZ Rise**: enabled in*By Sag*and*Upward*mode.

This allow to set a rise value. If the value is lower than the higher**dZ**of the two points, an alert is presented and the minimum allowed value is set automatically.**Precision**: here you can set to be more precise on the curve calculation, see technical notes below.**Segments**: the curve is composed of segments of equal length. The minimum number is 2, but to achieve a better fit of the curve, it is preferable to choose a segmentation value of 50 or higher.**Curve Approximation**: there is not, in Vectorworks®, a native type of curve that fits the catenary equation. If you need strict point by point fit, then a polygonal curve with a large number of segments is needed.

If you need minor adherence but with a light and smooth curve, then you can choose between bezier, spline or arc types, with lesser segments.**Calculation time**: this is an indicator showing the time needed for calculations. The time is higher when curve is heavily bended and also when precision / segments values are set.

**Note:** the plugin provides also a couple of buttons to extract the curve as 2D or 3D curve. Of course **Segments** and **Curve Approximation** will determine the resulting curve.

**𝑦 = 𝑎 cosh (𝑥/𝑎)**

The curve obtained with this plugin is calculated from a number of straight segments of equal lengths.

The **Segments** may vary from a minimum of two to thousands, it's up to you. You can achieve good results with 50/100 segments.

When extracting the curve (see buttons in the OIP) you get a 2D or 3D curve of a type between polygon, Bezier, spline or arc, determined by the **Curve Approximation** menu.

There is not a curve type in Vectorworks® that completely fits the catenary curvature function. Though the spline type seems to fit, there are dissimilarities with high sag / rise values.

You can test it by yourself, playing with the **Curve Approximation** menu, and **Segments**, comparing the result with a test curve obtained using polygon and 100 or more segments.

All the **𝑥,𝑦** values, once derived the **𝑎** value in the formula (according with the given parameters) are calculate for evenly spaced points along the calculated length.

In order to obtain notable points (needed to calculate sag value or chain length), since the above formula is not derivable, a recursive process is performed to search the points with crescent precision. The number of iterations is proportional to the precision popup set in the OIP panel. Obviously more precision need more processing time.

Downloaded and unpack the zip file appropriate for your Vectorworks® version. You'll get a folder named **Catenary Curve [20YY]**, where [20YY] is the plugin's Vectorworks® version.

Here the official instructions (from help.vectorworks.net) for **editing the workspaces**:

And here instructions to **add a menu command**:

Follow Paolo Marcuccetti's Gumroad®'s page where you can browse/buy my productions for Vectorworks®.

Gumroad® shop page

This plugin is available in a discounted bundle with Ropes Plugin for Vectorworks® Ropes + Catenary Bundle