Sagitta and Versine

A Sagitta is used extensively in architecture when calculating the arc necessary to span a certain height and distance and also in optics where it is used to find the depth of a spherical mirror or lens.

A Versine is used in navigation and railway track design.

Create a Sagitta with VBA

Questions similar to these appear in the Be Communities MicroStation Programming Forum.

Q How do I create a Sagitta?

A This article describes a MicroStation VBA project that creates a sagitta. It works in two ways, either interactively or by calculation.

Sagitta Dialog


The macro …

  1. Lets you pick an arc
  2. Calculates a chord from the current cursor position
  3. Constructs a new line — a sagitta — that connects the centre point the chord with the arc

By Calculation

The macro …

  1. Lets you pick an arc
  2. Lets you specify the desired sagitta length
  3. Calculates the chord size
  4. Draws the chord and sagitta

If you want to get started with using this macro, go to Download.

Example Arc

The starting point is a arc.

Create Sagitta

After running the macro, the result is a chord across the arc and a vertical line — the sagitta.

Create Sagitta

Notes for Programmers

The macro shows how to pick the initial arc using a locate class that Implements ILocateCommandEvents. Once user has picked an arc element, the locate class starts a chord creator class that Implements IPrimitiveCommandEvents. The calculation of the chords and the sagitta is straightforward, and they are displayed both in dynamics and after the final datapoint. The length of the sagitta is measured and displayed.

Download Sagitta.ZIP

Download the Create Sagitta ZIP archive, and unpack it to a suitable location such as \Workspace\Standards\macros. Start the macro using the key-in …

vba run [Sagitta]modMain.Main


Post questions about MicroStation programming to the MicroStation Programming Forum.