Frequently Asked Questions (FAQ)

Search FAQ

Show Filter Hide Filter





Customer Support 24/7

Knowledge Base

In addition to our technical support (e.g. via chat), you’ll find resources on our website that may help you with your design using Dlubal Software.

Newsletter

Receive information including news, useful tips, scheduled events, special offers, and vouchers on a regular basis.

  • Answer

    Please note the following important points:

    1. Include the correct latest references/references, for example B. Dlubal.RFEM5.dll under the following path: C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ Dlubal.RFEM5 \
    2. In Visual Studio, the properties "Embed Interop Types" and "Copy Local" must be set to false (see figure)
  • Answer

    You can use the COM interface to save the graphics to the clipboard and print them automatically from there.
  • Answer

    The load distribution of a line load is defined by the "Distribution" attribute. The "Distribution" attribute is of the "LoadDistributionType" type, and the list entries of the combo box are of the "String" type, so the type conversion is required. The "GetLoadDistributionType" function converts a list entry of the String type into a LoadDistributionType.

    '--------------------------------------------------------------------------------------------------
    Function GetLoadDistributionType(sType As String) As LoadDistributionType
    '--------------------------------------------------------------------------------------------------
        
        If sType = "Concentrated2x2QType" Then
          GetLoadDistributionType = Concentrated2x2QType
        ElseIf sType = "Concentrated2xQType" Then
          GetLoadDistributionType = Concentrated2xQType
        ElseIf sType = "ConcentratedNxQType" Then
          GetLoadDistributionType = ConcentratedNxQType
        ElseIf sType = "ConcentratedType" Then
          GetLoadDistributionType = ConcentratedType
        ElseIf sType = "ConcentratedUserDefinedType" Then
          GetLoadDistributionType = "ConcentratedUserDefinedType"
        ElseIf sType = "LinearType" Then
          GetLoadDistributionType = LinearType
        ElseIf sType = "LinearXType" Then
          GetLoadDistributionType = LinearXType
        ElseIf sType = "LinearYType" Then
          GetLoadDistributionType = LinearYType
        ElseIf sType = "LinearZType" Then
          GetLoadDistributionType = LinearZType
        ElseIf sType = "ParabolicType" Then
          GetLoadDistributionType = ParabolicType
        ElseIf sType = "RadialType" Then
          GetLoadDistributionType = RadialType
        ElseIf sType = "TaperedType" Then
          GetLoadDistributionType = TaperedType
        ElseIf sType = "TrapezoidalType" Then
          GetLoadDistributionType = TrapezoidalType
        ElseIf sType = "UniformType" Then
          GetLoadDistributionType = UniformType
        ElseIf sType = "VaryingType" Then
          GetLoadDistributionType = VaryingType
        End If

    End Function

    The "SetLineLoad" procedure creates a line load on Line 1. The load distribution is readout from the "LoadDistribution" combo box of the "LineLoad" Excel worksheet.

    '--------------------------------------------------------------------------------------------------
    Sub SetLineLoads()
    '--------------------------------------------------------------------------------------------------
    Dim model As RFEM5.model
    Dim load As RFEM5.ILoadCase
    Dim data(0) As RFEM5.LineLoad
        'Get interface for model
        Set model = GetObject(, "RFEM5.Model")
        
        'Block COM licence and program access
        model.GetApplication.LockLicense
        On Error GoTo e
       'Get interface for loads
        Set load = model.GetLoads.GetLoadCase(0, AtIndex)
        'Set parameters for lineload
        data(0).No = 1
        data(0).LineList = "1"
        data(0).Type = ForceType
        'Load Distribution from combo box
        data(0).Distribution = GetLoadDistributionType(Worksheets("LineLoad").DropDowns("LoadDistribution").List(Worksheets("LineLoad").DropDowns("LoadDistribution").ListIndex))
        data(0).Direction = LocalZType
        data(0).DistanceA = 11
        data(0).DistanceB = 22
        data(0).RelativeDistances = True
        data(0).Magnitude1 = 4000
        data(0).Magnitude2 = 5000
        data(0).Magnitude3 = 6000
        data(0).OverTotalLength = False
        data(0).Comment = "line load 1"
        'Transfer lineload
        load.PrepareModification
        load.SetLineLoads data
        load.FinishModification
        
    e:  If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source
        Set load = Nothing
        'COM licence is unlocked, program access possible again
        model.GetApplication.UnlockLicense
        Set model = Nothing


    End Sub

    The source code can be found under Downloads.
  • Answer

    The following VBA macro shows the creation of two member eccentricities. The source code can be found under Downloads.

    '--------------------------------------------------------------------------------------------------
    Sub SetEccs()
    '--------------------------------------------------------------------------------------------------
    Dim model As RFEM5.model
    Dim data As IModelData
    Dim ecc(1) As RFEM5.MemberEccentricity

        'Get interface for model
        Set model = GetObject(, "RFEM5.Model")
        
        ' Block COM licence and program access
        model.GetApplication.LockLicense

        On Error GoTo e
        ' Get interface for model data
        Set data = model.GetModelData

       'Define eccentricity 1
        ecc(0).No = 1
        ecc(0).ReferenceSystem = LocalSystemType
        ecc(0).Start.X = 0.01
        ecc(0).Start.Y = 0.02
        ecc(0).Start.Z = 0.03
        ecc(0).End.X = -0.01
        ecc(0).End.Y = -0.02
        ecc(0).End.Z = -0.03
        ecc(0).Comment = "eccentricity 1"
        
       'Define eccentricity 2
        ecc(1).No = 2
        ecc(1).ReferenceSystem = GlobalSystemType
        ecc(1).Start.X = -0.07
        ecc(1).Start.Y = -0.08
        ecc(1).Start.Z = -0.09
        ecc(1).End.X = 0.07
        ecc(1).End.Y = 0.08
        ecc(1).End.Z = 0.09
        ecc(1).Comment = "eccentricity 2"
        
        'Transfer member eccentricities
        data.PrepareModification
        data.SetMemberEccentricities ecc

    e:  data.FinishModification
        If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source
        Set data = Nothing
        ' COM licence is unlocked, program access possible again
        model.GetApplication.UnlockLicense
        Set model = Nothing

    End Sub
  • Answer

    You can use the COM interface to define nonlinear support conditions. The attached video and code shows an example of the support failure.
  • Answer

    By initializing a variable of the Application (interface) type with "new", RFEM/RSTAB is started in the background. With this variable, you can also create a new model using the "CreateModel" method, or close the program using the "Close" command.

    The following example shows how to start RSTAB, create a model with a node in the program, and close the program:


    Sub RSTAB_open_close()

    Dim filename As String
    filename = Application.ActiveSheet.Cells(7, 3)

    '   start rfem
    Dim iApp As RSTAB8.Application
    Set iApp = New RSTAB8.Application

    iApp.LockLicense
    iApp.Show

    On Error GoTo E

        '   create model
        Dim iMod As RSTAB8.IModel2
        Set iMod = iApp.CreateModel(filename)
        
        '   add data to model
        Dim nd As RSTAB8.Node
        nd.no = 10
        nd.X = 1
        nd.Y = 2
        nd.Z = 3
        
        Dim iModdata As RSTAB8.iModelData
        Set iModdata = iMod.GetModelData
        
        iModdata.PrepareModification
        iModdata.SetNode nd
        iModdata.FinishModification
        
        iMod.Save filename


    E:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
        
        Set iModdata = Nothing
        Set iMod = Nothing
        iApp.UnlockLicense
        iApp.Close
        Set iApp = Nothing
        
    End Sub


    The "iApp.Show" command is optional. This allows for displaying the program normally, not in the background.

    Under Downloads, you can find an Excel macro with the subroutines for RFEM and RSTAB.

    Please note that the folder, where the file is created, must exist.

  • Answer

    The stresses of a surface can be displayed via the COM interface. First, you need the interface for the model (IModel) and then the interface for the calculation (ICalculation2). Using this interface, you can get the interface for the results (IResults2):

    Sub stresses_surfaces_example()
    Dim iApp As RFEM5.Application
    Dim iModel As RFEM5.model
    Set iModel = GetObject(, "RFEM5.Model")

    On Error GoTo E

    If Not iModel Is Nothing Then
        '   get interface from model
        Set iApp = iModel.GetApplication
        iApp.LockLicense
        
        '   get interface from calculation
        Dim iCalc As RFEM5.ICalculation2
        Set iCalc = iModel.GetCalculation
        
        '   get interface from results from loadcase 1
        Dim iRes As RFEM5.IResults2
        Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)
        
        '   get equivalent stresses
        Dim str_equ() As RFEM5.SurfaceEquivalentStresses
        str_equ = iRes.GetSurfaceEquivalentStresses(1, AtNo, VonMisesHypothesis)
        
    End If

    E:
    If Err.Number <> 0 Then
        MsgBox Err.Number & " " & Err.description
    End If

    If Not iApp Is Nothing Then
        iApp.UnlockLicense
    End If

    The GetSurfaceEquivalentStresses function requires the specification of the calculation hypothesis. In this case, the results of the von Mises stress are displayed. Please note that the COM interface uses SI units so the stress is transferred in N/m².

  • Answer

    The *.dll and *.tlb files were probably not updated correctly on your computer. Please proceed as follows:

    1. Rename the following folders in Dlubal.bak:

         C:\Program Files (x86)\Common Files\Dlubal

         C:\Program Files\Common Files\Dlubal


    2. Reinstall RFEM or RSTAB.

    3. Move the files from the newly created Dlubal folders to the respective Dlubal.bak folders (overwrite all).

    4. Rename the Dlubal.bak folder to Dlubal.

  • Answer

    In principle, a section is an element, such as a member, and is also created in the same way. First, the interface to the objects is required. For a member, this would be IModelData, and for sections, it would be ISections. This interface can be found in IModel3:

    Sub test_section()
    '   get interface from the opened model and lock the licence/program
        Dim iModel As RFEM5.IModel3
        Set iModel = GetObject(, "RFEM5.Model")
        iModel.GetApplication.LockLicense
        
    On Error GoTo E
        
        Dim iSecs As RFEM5.ISections
        Set iSecs = iModel.GetSections()

    All sections created previously are deleted first, and then two new sections are created.
    The first section should be a solid section with a visible sectional area (see Figure 01). The data are entered in a similar way as in RFEM. As a type, "SectionOnSectionalArea" is selected, the corner points of the section are set by using "EdgePoint," and a "Vector" defines the direction of the section:

       '   first delete all sections
        iSecs.PrepareModification
        iSecs.DeleteObjects ("All")
        iSecs.FinishModification
        
        '   set section on solid
        Dim sec As RFEM5.Section
        sec.EdgePointA.X = 2
        sec.EdgePointA.Y = 5
        sec.EdgePointA.Z = 0
        sec.EdgePointB.X = 2
        sec.EdgePointB.Y = 8
        sec.EdgePointB.Z = 0
        
        sec.no = 1
        sec.Name = "solid section"
        sec.Plane = GlobalPlaneInPositiveX
        sec.ShowValuesInIsolines = False
        sec.Type = SectionOnSolidSectionLine
        sec.ObjectList = "1"
        
        iSecs.PrepareModification
        iSecs.SetSection sec
        iSecs.FinishModification

    As already known from other elements, the new section is finally transferred in a Prepare-/FinishModification block. As the second section, a surface section is to be created (see Figure 02). For this, it is necessary to use the "SectionViaSurfacePlane" type. In addition to the vector of the section direction, you have to select the display plane of the results for the surface section. In the following example, the xy plane is selected by setting "GlobalPlaneInPositiveX."

    '   set section on surface
        sec.EdgePointA.X = 2
        sec.EdgePointA.Y = 0
        sec.EdgePointA.Z = 0
        sec.EdgePointB.X = 2
        sec.EdgePointB.Y = 3
        sec.EdgePointB.Z = 0
        
        sec.no = 2
        sec.Name = "surface section"
        sec.Plane = GlobalPlaneInPositiveX
        
        sec.ShowValuesInIsolines = True
        sec.Type = SectionViaSurfacePlane
        sec.ObjectList = "1"
        
        sec.Vector.X = 0
        sec.Vector.Y = 0
        sec.Vector.Z = 1
        
        iSecs.PrepareModification
        iSecs.SetSection sec
        iSecs.FinishModification

    It is also possible to get the results of a section by using the separate method "GetResultsInSection" of the "IResults2" interface. In the following, the shear forces on the surface section are obtained. The distribution of the internal forces is set to "Continuous within Surfaces" by means of "ContinuousDistributionWithinObjects":

     '   get results
        Dim iCalc As ICalculation2
        Set iCalc = iModel.GetCalculation
        
        Dim iRes As IResults2
        Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)
        
        Dim secRes() As RFEM5.SectionResult
        secRes = iRes.GetResultsInSection(2, AtNo,
          ShearForceVy,ContinuousDistributionWithinObjects, False)

    Under Downloads, you can find the Excel macro and the test file to comprehend the program.
  • Answer

    In order to only calculate specific load cases, load combinations, or result combinations in the same way as the "To Calculate..." command (see Figure 01), you can use the CalculateBatch method of the ICalculation interface. For the transfer, the method expects a field with the load type of Loading. This Loading includes the number of the load, and the type (for example, a load combination):

    Sub batch_test()
        
    '   get interface from the opened model and lock the licence/program
        Dim iModel As RFEM5.IModel3
        Set iModel = GetObject(, "RFEM5.Model")
        iModel.GetApplication.LockLicense
        

    On Error GoTo e
        
        '   get interface for calculation
        Dim iCalc As ICalculation2
        Set iCalc = iModel.GetCalculation
        
        '   create array with loading types
        Dim loadings(3) As Loading
        loadings(0).no = 1
        loadings(0).Type = LoadCaseType
        
        loadings(1).no = 4
        loadings(1).Type = LoadCaseType
        
        loadings(2).no = 4
        loadings(2).Type = LoadCombinationType
        
        '   calculate all loadings from the array at once
        iCalc.CalculateBatch loadings

    e:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
        
        Set iModelData = Nothing
        iModel.GetApplication.UnlockLicense
        Set iModel = Nothing

    End Sub

1 - 10 of 33

Contact us

Did you find your question?
If not, contact us via our free e-mail, chat, or forum support, or send us your question via the online form.

+49 9673 9203 0

info@dlubal.com

First Steps

First steps

We provide hints and tips to help you get started with the main programs RFEM and RSTAB.

Wind Simulation & Wind Load Generation

With the stand-alone program RWIND Simulation, wind flows around simple or complex structures can be simulated by means of a digital wind tunnel.

The generated wind loads acting on these objects can be imported to RFEM or RSTAB.

Your support is by far the best

“Thank you for the valuable information.

I would like to pay a compliment to your support team. I am always impressed how quickly and professionally the questions are answered. I have used a lot of software with a support contract in the field of structural analysis, but your support is by far the best. ”