Application for Plane Frame Analysis




Console Application (runs at command prompt) for structural analysis of plane frames (2D). It takes a plain text data file and outputs a plain text result file.  The data file covers one load case only. Source code is provided in several different programming languages, including MS Excel/VBA Add-in. The software is released under license: the License adopted is the MIT License.

NB: If want to analyse a single span beam, then it requires at least three nodes to define: two supports and an internal point such as midspan. (eg. a segment has to have at least one fixed end moment (FEM) unless part of a triangulated frame.)


The general expectation is that the data files be generated by a user developed front-end application and the results generated by the plane frame analysis application than be processed further by a user developed back-end application. The program is not intended to be an out-of-the-box production ready application for routine structural design.

There are three typical approaches for the programs use:

  1. Leave the command line program alone, and develop applications which generate  data files and call the command line executable.
  2. Use Excel/VBA and add a reference to the add-in. Develop an application which uses Excel worksheets to provide data, or directly assign data to the plane frame object model.
  3. Develop applications directly using the source code, ignoring the console application.

{Though back in 1996 a version of the program was used as our production level program before we bought MicroStran and Multiframe licenses. Example reports and calculations show examples (103 to 119) of its use: Turbo Pascal version with simple graphical printouts, with data files generated by Quattro Pro spreadsheet. The objective being to find the maximum height which can be achieved from a given c-section, where wind load is dependent on height: therefore new load files required. So the potential is only limited by the imagination of the user.}


Anyone interested in structural analysis and wants to program the front-end/pre-processor and/or back-end/post-processor for structural analysis problems.

Schools and other educational institutions

Use in STEM and STEAM projects which involve structures. Use in programming and computer science subjects: compare the differences in source code between the different languages. Extend to accommodate multiple load cases, add graphical user interface for data file creation. Add member checks for steel, cold-formed steel, timber, concrete etc…

Manufacturers of Structural Products

Manufacturers of structural products (eg. roof trusses, sheds, carports, verandahs) can use to develop product configurators, in the form of parametric structural models, where components are selected based on structural calculations.

Researchers and Experimenters

Generate height and span charts for structural sections, determine the limitations for a given structural form. Experiment changing node constraints, add and remove members. Optimise for minimum fabrication and construction costs rather than minimum weight.

Programming Languages Used

VBScript and JScript

VbScript and JScript are scripting languages available on most Windows computers, and therefore opportunity is available to most computer users to adapt the plane frame program to their needs. The program can be run from the command prompt using  the cscript version of windows scripting host (WSH). Such code could also be adapted for use in a web browser.

C# (Sharp)

Commonly used language for Windows. The source was developed in Visual Studio 2005, and also ported to Sharpdevelop. Potential exists for adding graphical user interface, and incorporating into existing larger enterprise management programs.


The source was developed in Eclipse and also ported to Netbeans. As Java is cross platform the plane frame program can be used on just about any computer and operating system. Potential existing for development of android based product configurators.


Interesting dialect of Basic programming language. Has some stricter requirements than VBA, and started using as a means of testing on the command line the conversion of our technical function library to LibreOffice (which has no immediate window and only supports popup message boxes.). The conditional statements such as ‘if’ have some peculiarities which required some changes to the code. Seems like a useful language for school programs.

Plane Frame Analysis
Plane Frame Analysis

The source developed in Visual studio 2005, and ported to SharpDevelop. There are two versions. The console application as with all other languages. Also an expanded application with a graphical interface added for displaying diagrams for: geometry, loadings, moments, shear, axial and deflections.

MS Excel / VBA

Provided as an Add-in for inclusion as a reference in VBA. Two examples for its use are provided. One just reflects the console versions of the program, using the VBA editor immediate window for command input. The other example illustrates the use of the plane frame object, and defining the structure programmatically without need of a data file.

Past and Future

The original program was written in Turbo Pascal, making use of Turbo gadgets to provide an application with input screens and graphical output. This was part translated to Delphi 3, and to Lazarus. These programs have source code using arrays indexed from base 1, all the above use arrays indexed from base zero (because the languages provide no other options.). The Delphi 3 version is similar to the graphical version in The Lazarus version operates slightly differently as Lazarus doesn’t support multiple document interface (mdi). At some future date may modify these versions to match the others and then release.

We moved away from Pascal due to our extensive use of Excel and VBA for our routine calculations. The idea was we could re-use the VBA code in VB. So we do have a version of the program using VBA with arrays indexed using base 1. Unfortunately we ended up with Visual Studio 2003 and, which doesn’t support base 1 arrays, requiring a rewrite.

Carport, Verandah and Pergola Software

Anycase the VBA version using base 1 arrays is running behind the scenes in carport design software. This version has been developed in parallel, and contains graphics in Excel, however due to the way it developed it is tied to the source code for carport design. In the future will merge its features into the Excel/VBA base zero version of the plane frame program and also develop separate front-end and back-end applications for carport design. So that will have three separate modules: though that may be problematic for program installation and setup. Excel/vba doesn’t conveniently support central libraries.


LibreOffice seems like it supports central libraries, but experiments so far have indicated not quite as central as appears. So first task is to port the function library to LibreOffice, before attempting to convert plane frame to LibreOffice Basic (LoB). At this point LibreOffice calc is not looking like a suitable replacement for my use of MS Excel, so porting over is a slow and intermittent exercise.

Other Programming Languages

At present no plans to convert to C/C++, whilst I’ve always liked the compact syntax of C compared to Pascal for number crunching, and the manipulation of strings using pointers, I otherwise dislike pointers and the syntax for referencing the fields of records. I also dislike languages littered with dollar signs, so they are also out. Whilst Fortran 77 was the first language I learnt, it doesn’t support the classes I have used, though new dialects may, it is a limited use language: mostly legacy programs trapped to the IMSL library. LISP/AutoLISP possible I guess, but would be a fair bit different. Ada maybe an other alternative, though I’m guessing researchers using such language more interested in 3D analysis, and likely work at institutions where they already have access to.

Application languages like SciLab/Octave and FreeMat are other possibles, but as far as I can tell these use base 1 arrays (matrices), and such are already used in teaching structural analysis. So thus far the only other language may consider is python: whilst it is becoming popular I’m not certain of its benefit. Its syntax also seems highly prone to inadvertent error.

Primary concern is enhancing the use of spreadsheets.

Spreadsheets are popular because they allow just about everyone to automate the tasks they otherwise know how to do with pencil and paper. So small businesses, manufacturers and builders, use spreadsheets for a lot of their work, but have a bottleneck in their operations where they have to rely on external consultants to complete some of the work. That is have a specialist task, with front-end processing prior to such task, and back-end post processing after completion of such specialist task. One of those specialist tasks is the task of structural design, and still more specifically structural analysis.

Different businesses have different requirements. Some just want software which gives them a structural specification and that is what they make. Others want to try different options based on the economics of their manufacturing system. The minimum size section is not always the most economical solution, the economic solution depends on time and availability of resources to the specific supplier. For example manufacturers have little interest in what is economic to the steel erector, and vice versa.

So manufacturers are running around seeking product configurators to find minimum size section and provide calcs-for-council. The relationship between structural design and economics of manufacturing however is more complicated than minimum size section. Manufacturers therefore need to put more effort into total design and need to be able to better integrate structural design into their product decision making. The starting point towards such product design is the availability of an affordable “black box” for structural analysis which can be plugged into the decision making process.

Noting that a product configurator needs to be available on every salesperson’s laptop or accessible by every member of the public over the internet.

WARNING: There is no user manual, just access to the source code and some sample data files, with assistance by email.


Alternatively the source is also available on GitHub: PlaneFrame


{NB: The earlier versions below run from Windows XP command prompt, but not 64 bit Windows 7}

  1. Console Based (MSDOS) Plane Frame Analysis
  2. Plane Frame Analysis with Graphics (MS DOS)
  3. Plane Frame Analysis: The Front End Version 1
  4. Plane Frame Analysis: The Front End Version 2
  5. Plane Frame Analysis: The Front End Version 4
  6. Plane Frame Analysis: The Back End Version 1