3DFrame with spring releases

Following the previous post I have added similar functionality to the 3DFrame spreadsheet.  The new file can be downloaded from:


As before, see Installing C# dll files, reminder for details of installing the supplied dll files, which provide much better performance for large frames. If these are not installed the spreadsheet will default to the built in VBA solver.

For the 3D analysis I have modified the original beam properties, rather than inserting new hinge members.  This required more extensive changes to the code than for the 2D frame (which will be described in more detail in later posts), but allows the releases to be added without introducing additional freedoms.  For the 3DFrame spreadsheet provision has been added for translational spring releases, as well as rotation about any axis.  The data input for the spring releases is shown below:


Note that end releases are now specified relative to the member principal axes, rather than the global axes.

There are also minor changes to the load input screen:


As in the previous version, there are three alternative solvers. The VBA version will work without installing any additional files, but is very slow for the large frames.


The download zip file includes a file comparing output with results from the commercial program Strand7, which shows near exact agreement:


The check analysis used the small frame shown below, with a variety of different loads and end releases, and including inclined and rotated frame members:


Graphical output from the spreadsheet is shown below:


Beam actions or deflections can also be plotted along any selected beams:

The spreadsheet will also handle much larger frames, with the model shown below completing in about 15 seconds, using the sparse compiled solver (but note that the Excel drawing routines are painfully slow, with a re-draw of the display below taking several minutes).


This entry was posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Newton, Strand7, VBA and tagged , , , , . Bookmark the permalink.

8 Responses to 3DFrame with spring releases

  1. Taylor says:

    I download the file in this post. It is 2D frame, not 3D frame. would you please check the link?


    • dougaj4 says:

      Thanks for letting me know.

      Now fixed.

      You can also access all available downloads through the Downloads tab at the top of the page.


  2. Pingback: Transferring and converting strings in Excel and Python | Newton Excel Bach, not (just) an Excel Blog

  3. Pingback: 3D Frame analyses with spring releases – 2 | Newton Excel Bach, not (just) an Excel Blog

  4. Pingback: 3DFrame update | Newton Excel Bach, not (just) an Excel Blog

  5. cesss says:

    Do you have the analytical expression for the stiffness matrix with translational spring releases? Almost every book covers the rotation springs case, but I weren’t able to find the translational springs case. Do you know of any book covering it? Thanks a lot!!


    • dougaj4 says:

      I used the procedure given in the Strand7 theoretical manual, which is worth looking at if you have access to it. I don’t know of any freely available books with this information, but all my code is open source, so you should be able to extract the procedures from there.

      The routines are in the mFrameP44 module.
      spring_jointed3 sets up a standard 3D stiffness matrix, then calls AddSprings3, which adds spring releases to any freedom specified in the array HingeA. HingeA is read directly from the named range “beamhinge” in the spreadsheet.

      The original code for the program is based on Fortran code in the book Programming the Finite Element Method by Smith, Griffiths and Margetts.


  6. Pingback: 3D Frame with zero stiffness hinges | Newton Excel Bach, not (just) an Excel Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.