Search
RKstructure image

RKstructure

January 13, 2021

RKstructure is an excel  VBA application for plane frames, plane trusses and beams analysis. This program is based on the direct stiffness method of analysis.

Program features:
  • Plane Truss analysis: calculate reactions, Axial forces and Joint displacements
  • Plane Frame and Beam analysis: calculate reactions, ending moments, Shear forces, Axial forces and Joint displacements
  • Draw different diagrams: Bending moment, Shear force, Axial force and Displacement
  • Generate analysis report
  • Export results as word document
Program Limitations:
  • The analysis is limited to structures with rigid joints
  • Only one point load and one uniform load are allowed for each member of the frame
  • Truss analysis only consider joint loads and do not take into account the self-weight of the structure
  • No unit conversion is available
How to use this program?

Watch the video tutorial HERE ON YOUTUBE

  • Version 1.0.0
  • Download 20685
  • File Size 1 .1 MB
  • File Count 1
  • Create Date January 13, 2021
  • Last Updated May 3, 2021
FileAction
RKstructure.zipDownload

If you believe my tools are helping you and would like to support me, please use the below button to donate.

Sharing is caring:

21 thoughts on “RKstructure”

  1. Hello, the truss analysis calculator isn’t working. It always says “can’t find library” pointing to the Public Sub MemberEndforceLocal, highlighting Dim ElematLoc. Please fix thank you. Your program helps me a lot.

  2. Hello, RODRIGUE
    Really interesting to say the least.
    Could you show the procedures of the programming or even the ideas?
    Nas.

  3. Rodrigue,
    nice concept this one. Unfortunately, I couldn’t make it work without errors (version 1.1.1, getting warnings when adding items to any list controls, and there are 2 userforms that are called to be shown while they are not on the code). So I really appreciate you have shared the code, so any can check and try to ammend it (if possible).
    I enjoyed a lot the menu (it’s a rare gem to see such a menu on an Excel Add-In, and it speaks about the detail you have put in your creation). The userforms, also, look well designed. It’s a pitty it should be solved the list controls operation before any user can get an uderstanding about how the program works.
    I will try to load some Chart edition code of my own, so one can call any joint, truss member, load, support or diagram just double clicking on the item (although it’s very buggy…). That would be a nice addition to this project.
    Last, it would be very appropiate if this can be overworked to handle FEM analysis in Excel.
    Just ideas, do not consider this to be a demand of future development. 😉

      1. Hi Rodrigue,
        I have already fixed them myself (althoug the missing userforms could not be solved without your help 😉 ). Commenting the lines with the missing userforms the code compiles nearly 100% (I get an error with Time)
        Anyway, here are the problems I have, so far encountered, in version 1.1.1:
        Missing userforms, on Sheet5 (2DFrame)):

        Private Sub FixedEndmomentCal_Click()
        '! FIXEDMOMENTFORM.Show 'commented out for debugging
        End Sub
        Private Sub ResultsButton_Click()
        '! Calculator.Show 'commented out for debugging
        End Sub

        I could also not find the Progressform form (but can be commented out as by its name is clearly a Progress bar and for me they are only time consuming using userforms (better performance using the Excel status bar). So I have disabled it wherever it appears.

        As per the .AddItem problem, once the AddItem is triggered, you are assigning the values to the .List() object in the subsequent lines, but the .AddItem object is empty because you have not assigned anything (properly, the pvarItem).

        I think the correct syntaxis should be something like this:

        With ListControl
        ' for a single column list control:
        .AddItem valueToBeAssigned

        ' for a multicolumns list control:
        .AddItem pVarItem
        .List(.ListCount - 1, #) = Value_# 'where # is number index, and the list could be feeded via a loop
        End With

        for example, in procedure btnAddmember_Click (on frmTrussMemberProperty), your code looks like:

        With Me.lbxMemberProperty
        .Additem
        .List(.ListCount - 1, 0) = .ListCount
        '...some more columns feeded
        End With

        Where it should be like:

        With Me.lbxMemberProperty
        .Additem .ListCount
        '.List(.ListCount - 1, 0) = .ListCount ' this line is just not needed now
        '...some more columns feeded
        End With

        I really don't understand why you are not getting compiling errors while I do (me on MsOffice 2019 x86, on Win10 x64); but to me your syntaxis is not good in that AddItem issue.
        Some guide on List array feeding here: https://www.excelguru.ca/content.php?168-Fill-MultiColumn-Listbox-With-Worksheet-Range

        More running errors, feeding the lists from a range can halt some type missmatch error, that could be solved using the .Value or .Value2 attribute, for example on the following userforms (FrmJointcoord, frmMemberProperty, frmTrussSupportdata, frmTrussJointload,...), the UserForm_Initialize procedures are feeding the list control from Excel ranges (use search for: ".List(*) = Sheets", with pattern matching to get all the occurrences)

        I had to replace the Replace(Time, ":", "") sentence with Replace(VBA.Time, ":", "") on the ExportReportToword procedure because there is a library declared by you that I could not reach to edit (password locked) and I have not installed on my PC, so it's bugging with the VBA own Scripting library functions.

        In the frmTrussMemberProperty userform there is a txtEdit control that does not exists (by I pressume it to be the so called txtEditMem, although not pretty sure about this). Also the ltvMemberProperty does not exists, so I assume the ltvMemberProperty_BeforeLabelEdit and ltvMemberProperty_ItemClick procedures should be commented out (it seems to be a renamed control).

        Finally, I could not yet determine which Sheet should be called on DrawingAreaAdd procedure while recalling the AddCoodSystem subprocedure, so I commented out until I guess the right variable value to feed there.

        On Sheet9 (ColumnDesign) there is no ColumnDesign procedure declared for PlotChart

        Amending the code as stated here will, code compile without errors and the macro file will run perfect.

        Kind regards, and very nice work.

        P.D. as per the PRO version, although I appreciate your effort converting the code to C#, I really enjoy the Excel one better, as it serves my purposes of learning the guts behind the direct stiffness method, and is way more portable. Not to say about the .EXE issue. If I can manage to get this refactored to handle the FEM thing it will be a beautiful app (I know that it's in spanish, -which I'm confident with XD-, but something like it is shown on that work is my objective).

          1. More things that I have ammended:
            on ClTrussStructure –> MemberEndforceLocal, I have to separate the declaration of the variable from the redimension of it (Althought the ReDim can also allocate some memory for the variable, is not the way to do it, and should be done in two steps when dealing with Variant types)
            Dim ElmatLoc(): ReDim ElmatLoc(2, 2, NM)
            Dim EldispLoc(): ReDim EldispLoc(2, NM)

            Also, this two variables where declared as Dim, but somehow they should be declared as Public to be reached by other modules:
            Public StrtTime As Date
            Public Counter As Date

            I have been tidying a bit the code, just for me to understand how it works, but not yet changed anything of the macro internal operation, so I can still email you the workbook.

        1. Hello, the truss analysis calculator isn’t working. It always says “can’t find library”
          Can you send me the correct version ?
          thankyou for your help in advance

  4. Hi Enrique,
    Happy to know that you solved your problem out.
    I will update the file to solve the compile errors.
    Thanks for your feedback.
    RK

  5. Hi Rodrigue,
    thank you for such an interesting and rich program.
    I really love it and with it , I could have learned a lot about VBA software building.
    By the way, I think exporting the member local matrix, global structure matrixes into a sheet would be great too.
    such a suggestion !
    In the other side, i’ll work on that too.
    thanks again.

Leave a Reply

Your email address will not be published. Required fields are marked *