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.


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

  • 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")
    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.DeleteObjects ("All")
        '   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
        = 1
        sec.Name = "solid section"
        sec.Plane = GlobalPlaneInPositiveX
        sec.ShowValuesInIsolines = False
        sec.Type = SectionOnSolidSectionLine
        sec.ObjectList = "1"
        iSecs.SetSection sec

    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
        = 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.SetSection sec

    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")

    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
        Set iModel = Nothing

    End Sub
  • Answer

    In most cases, the problem is that the finite elements of the cover surfaces are very close to each other in the edge area of the cushion when using Bézier surfaces. The FE mesh nodes of the bottom and top surface might be combined then. In principle, there are two approaches:

    1. Numerical solution of the problem:

    You can adjust the tolerance for combining FE mesh nodes by using the menu "Tools" → "Regenerate model."

    2. Geometrical solution of the problem:

    A more workable solution is to increase the distance between surfaces by using the boundary surfaces as shown in Figure 01.
  • Answer

    When using the COM interface (RF‑COM or RS‑COM), you can create a comment by using the guide object interface IGuideObjects. The following is an example program that creates a comment:

    Sub test_comment()

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

    On Error GoTo e
        Dim iModelData As RFEM5.IModelData2
        Set iModelData = iModel.GetModelData
        Dim iGuiObj As RFEM5.IGuideObjects
        Set iGuiObj = iModel.GetGuideObjects
        Dim comm As RFEM5.Comment
        '   set frame type
        comm.Frame = CircularFrameType
        '   set reference object type
        comm.ObjectType = GeneralObjectType
        comm.ObjectNo = 1
        '   set point if GeneralObjectType is choosen
        comm.Point.X = 2
        comm.Point.Y = 4
        comm.Point.Z = 6
        '   set offset from reference object
        comm.Offset.X = 0.5
        comm.Offset.Y = 1
        comm.Offset.Z = 1.5
        comm.Rotation = 1
        '   set text of comment
        comm.Text = "testcomment"
        '   transfer object to program
        iGuiObj.SetComment comm
    e:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
        Set iModelData = Nothing
        Set iModel = Nothing

    End Sub

    The selection of the reference or the element to which the comment is refferred to is defined by the type (ObjectType) first. Here, it is possible to select, for example, a member, a node or any point in space. Next, the number of the reference object is specified via ObjectNo (for example, Member 1). If you have selected a free point, it is set by Point.
    Finally, you can specify an offset which results from the reference object.
  • Answer

    Since there are only the directions x- and y- in the plane for surfaces, it is first necessary to define which should be the hoop stress and which the axial stress. In the following example, sigma_x should be the axial stress and sigma_y the hoop stress.

    The example consists of an inclined circular container (Figure 01). After the modeling, the program tries to align the local axis systems on the global axis system (Figure 02). However, the x‑axis should run along the container for all surfaces in this case. This orientation can be achieved as follows.

    First, the z‑axis of all surfaces must point inwards or outwards. In the example, the outside direction has been selected. If this is not the case for the surface, you can right-click the surface and use the "Reverse Local Axis System" feature to move the z‑axis to the other surface side. Then, select all surfaces and open the Axes tab in the Edit Surface dialog box. Figure 03 shows the dialog box. In this case, one of the boundary lines oriented axially has been selected. Figure 04 shows the aligned local axis systems now. All x-axes are axial and all y-axes run in the circumferential (hoop) direction.

    Figure 05 shows the results of the membrane stresses axial (sigma‑x,m) and along the circumference (sigma‑y,m).

  • Answer

    A resultant requires a specific combination of loads that cannot be provided by result combinations.

    The problem is apparent in the following example. A single-span beam is subjected to three different load cases. For the support at Node 1, the result envelope of the 6 possible load combinations gives the maximum P‑Z of 11.25 kN based on the result of CO2 (see Figure 01). The support at Node 2 has the maximum P‑Z of 12 kN, based on the result of CO1. However, the resultant of 23.25 kN does not exist in any of the involved load combinations and is therefore too large (maximum CO 1 and CO 2 with 22.5 kN).

    The situation is similar to the pure result combination of the load cases which have the same maximum values P‑Z of the Nodal Supports 1 and Nodal Support 2. However, it is not apparent here that the resultant would give incorrect results.

    For this reason, a resultant is not used for result combinations as the results may be incorrect.

  • Answer

    An imperfection is considered as a load and is transferred via the interface of the load case. Provided that the interface to the model has already been imported, the interface to the loads (ILoads) followed by the interface to Load Case 1 (ILoadCase) will subsequently be imported, if it has already been created before:

            '   set loadcases
            Dim iLoads As iLoads
            Set iLoads = model.GetLoads
            '   get load case
            Dim iLc1 As ILoadCase
            Set iLc1 = iLoads.GetLoadCase(1, AtNo)
            '   define imperfection
            Dim imperf As Imperfection
            imperf.Comment = "test"
            imperf.Direction = LocalZType
            imperf.Inclination = 200
   = 1
            imperf.ObjectList = 1
            imperf.Precamber = 300
            imperf.PrecamberActivity = ActivityAccording_EN_1993_1_1
            '   set imperfection
            iLc1.SetImperfection imperf

    The data of the imperfection is then filled out first, here for Member 1, and then transferred within the Prepare-/FinishModification block of the Interfaces load case.

  • Answer

    To modify an existing element, you have to get the interface to the corresponding element, in this case on an example of a member:

        Dim iModel As RSTAB8.model
        Set iModel = GetObject(, "RSTAB8.Model")
        Dim iModData As IModelData
        Set iModData = iModel.GetModelData
        Dim iMem As RSTAB8.IMember
        Set iMem = iModData.GetMember(1, AtNo)

    Use this code to get the interface to Member 1, which should already be created. Then, you can use the .GetData () method of the interface to get the member data.

    If you want to modify the data (such as the member rotation here), you can subsequently transfer it to the program within the Prepare-/FinishModification block with the method .SetData ().

        Dim mem As RSTAB8.Member
        mem = iMem.GetData
        mem.Rotation.Angle = 0.5
        mem.Rotation.Type = RSTAB8.Angle
        iMem.SetData mem
  • Answer

    The following code shows how to get different calculation parameters via the COM interface. It also shows how to specify the setting for deactivating shear stiffness:

        '   get model interface
        Set iApp = iModel.GetApplication()
        '   get calculation interface
        Dim iCalc As RFEM5.ICalculation2
        Set iCalc = iModel.GetCalculation
        '   get surface bending theory
        Dim calc_bend As RFEM5.BendingTheoryType
        calc_bend = iCalc.GetBendingTheory
        '   get settings for nonlinearities
        Dim calc_nl As RFEM5.CalculationNonlinearities
        calc_nl = iCalc.GetNonlinearities
        '   get precision and tolerance settings
        Dim calc_prec As RFEM5.PrecisionAndTolerance
        calc_prec = iCalc.GetPrecisionAndTolerance
        '   get calculation settings
        Dim calc_sets As RFEM5.CalculationSettings
        calc_sets = iCalc.GetSettings
    'get calculate options
        Dim calc_opts As RFEM5.CalculationOptions
        calc_opts = iCalc.GetOptions
        '   set ShearStiffness to false
        calc_opts.ShearStiffness = False
        iCalc.SetOptions calc_opts

    Under Downloads, you can find the EXCEL macro.

1 - 10 of 70

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

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. ”