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 Catenary tool 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.

Catenary PIO on drawing
Catenary Curve on drawing

The OIP panel:

Catenary Curve plugin info panel
  • 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 Downwardmode.
    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 Upwardmode.
    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.
  • 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.

Technical notes

Image courtesy from Wikipedia®
Catenary Curve from Wikipedia®
𝑦 = 𝑎 cosh (𝑥/𝑎)

The curve obtained with this plugin is constituted of 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 polygon and not a curve (Bezier, spline or arc).

This is mainly due to the fact that existing curve types in Vectorworks® (splines, Beziers, arcs) do not perfectly fit the catenary curvature function, especially in particular cases (high sag / rise values), so It has been decided to produce a more trusted curve that is not really a curved polyline, but a polygon.

You can test it by yourself, extracting the 2D curve and rounding the obtained polygon into splines, arcs or Beziers.

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.

  • Move the folder "as is" inside your Vectorworks Plug-ins folder (app or user folder).
  • Restart Vectorworks.
  • Edit your workspace adding the tool Catenary tool icon Catenary Curve to an existing palette (you'll find it in 3D category)
  • Save the workspace.
  • In the end you should get a new tool item Catenary tool iconCatenary Curve in the chosen palette.

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

    And here instructions to add a menu command:

    Get it!

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