Häufig gestellte Fragen (FAQs)

Nach FAQ suchen

Show Filter Hide Filter





Kundenservice rund um die Uhr

Knowledge Base

Zusätzlich zum persönlichen Support (z. B. via Chat) finden Sie auf unserer Website rund um die Uhr Hilfe und Informationen.

Newsletter

Erhalten Sie regelmäßig Informationen über Neuigkeiten, praktische Tipps, geplante Events, Aktionen und Gutscheine.

  • Antwort

    Wahrscheinlich wurden die *.dll und *.tlb-Dateien auf Ihrem Rechner nicht korrekt aktualisiert. Bitte gehen Sie wie folgt vor:

    1. Folgende Ordner in Dlubal.bak umbenennen:

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

         C:\Program Files\Common Files\Dlubal


    2. RSTAB oder RFEM neu installieren

    3. Dateien aus den neu angelegten Dlubal-Ordnern in jeweiligen Dlubal.bak-Ordner verschieben (alles überschreiben)

    4. Dlubal.bak-Ordner in Dlubal umbenennen

  • Antwort

    Prinzipiell ist ein Schnitt ein Element wie z. B. ein Stab und wird auch auf die gleiche Art und Weise angelegt. Zuerst wird die Schnittstelle zu den Objekten benötigt. Beim Stab wäre das IModelData, bei den Schnitten ist es ISections. Dieses Interface ist in IModel3 zu finden:

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

    Zunächst werden alle bereits angelegten Schnitte gelöscht und danach zwei neue Schnitte angelegt. 
    Der erste Schnitt soll ein Volumenschnitt mit sichtbarer Schnittfläche sein (siehe Bild 01). Die Eingabe erfolgt analog zur Eingabe in RFEM. Als Typ wird "SectionOnSectionalArea" gewählt, über "EdgePoint" werden die Eckpunkte des Schnittes gesetzt und "Vector" definiert die Richtung des Schnitts:

       '   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

    Wie bereits durch andere Elemente bekannt, wird der neue Schnitt schlussendlich in einem Prepare-/FinishModifikation-Block übergeben. Als zweiter Schnitt soll ein Flächenschnitt angelegt werden (siehe Bild 02). Dazu muss als Typ "SectionViaSurfacePlane" verwendet werden. Bei einem Flächenschnitt muss neben der Angabe des Vektors der Schnittrichtung auch die Darstellungsebene der Ergebnisse gewählt werden. Im folgenden Beispiel wird die xy-Ebene über das Einstellen von "GlobalPlaneInPositiveX" gewählt:

    '   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

    Die Ergebnisse eines Schnitts können ebenfalls über die gesonderte Methode "GetResultsInSection" der Schnittstelle "IResults2" geholt werden. Im Folgenden werden die Querkräfte am Flächenschnitt geholt. Der Verlauf der Schnittgrößen wird über "ContinuousDistributionWithinObjects" auf "Durchlaufend innerhalb Flächen" eingestellt:

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

    Im Anhang finden Sie das Excel-Makro und die Testdatei, um das Programm nachvollziehen zu können.
  • Antwort

    Um nur bestimmte Lastfälle, Lastkombinationen oder Ergebniskombinationen zu berechnen, genau wie der Befehl "Zu berechnen..." (siehe Abbildung 01), kann die Methode CalculateBatch der Schnittstelle ICalculation verwendet werden. Bei der Übergabe erwartet die Methode ein Feld mit der Belastung vom Typ Loading. Loading beinhaltet dabei die Nummer der Belastung und den Typ (z. B. Lastkombination):

    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
  • Antwort

    Eine Imperfektion gilt als Belastung und wird über das Interface des Lastfalls übergeben. Mit der Voraussetzung, dass das Interface zum Modell bereits geholt wurde, wird nun das Interface zu den Lasten (ILoads) und danach das Interface zum Lastfall 1 (ILoadCase) geholt, insofern dieser bereits angelegt wurde:

            '   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
            imperf.no = 1
            imperf.ObjectList = 1
            imperf.Precamber = 300
            imperf.PrecamberActivity = ActivityAccording_EN_1993_1_1
            
            '   set imperfection
            iLc1.PrepareModification
            iLc1.SetImperfection imperf
            iLc1.FinishModification

    Die Daten der Imperfektion (Imperfection) werden danach zuerst ausgefüllt, hier für Stab 1, und dann innerhalb eines Prepare-/FinishModification Blocks des Lastfall Interfaces übergeben.

  • Antwort

    Um ein vorhandenes Element verändern zu können, muss das Interface zum entsprechenden Element geholt werden, hier am Beispiel eines Stabes:

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

    Über diesen Code wird das Interface zum Stab 1 geholt, welcher bereits angelegt sein muss. Danach können über die Methode .GetData() des Interfaces die Stabdaten geholt werden.

    Falls Daten modifiziert werden sollen (wie hier die Stabdrehung), können diese danach innerhalb eines Prepare-/FinishModification-Blocks mit der Methode .SetData() an das Programm übergeben werden:


        Dim mem As RSTAB8.Member
        mem = iMem.GetData
        
        mem.Rotation.Angle = 0.5
        mem.Rotation.Type = RSTAB8.Angle
       
        iModData.PrepareModification
        iMem.SetData mem
        iModData.FinishModification
  • Antwort

    Folgendes Code Beispiel zeigt das Holen von verschiedenen Berechnungsparametern über die COM-Schnittstelle. Es wird auch das Übergeben einer Einstellung für das Deaktivieren der Schubsteifigkeit gezeigt:

        '   get model interface
        Set iApp = iModel.GetApplication()
        iApp.LockLicense
        
        '   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 calculation options
        Dim calc_opts As RFEM5.CalculationOptions
        calc_opts = iCalc.GetOptions
        
        '   set ShearStiffness to false
        calc_opts.ShearStiffness = False
        iCalc.SetOptions calc_opts

    Im Anhang finden Sie dazu ein EXCEL Makro zum Herunterladen.
  • Antwort

    Ein Ergebnisstab wird zunächst genau wie ein normaler Stab angelegt:

        Dim model As RFEM5.model
        Set model = GetObject(, "RFEM5.Model")
        model.GetApplication.LockLicense

        On Error GoTo e

        Dim data As IModelData
        Set data = model.GetModelData

        Dim members(0) As RFEM5.Member
        
        members(0).No = 3
        members(0).LineNo = 12
        members(0).Type = ResultBeamType
        
        members(0).StartCrossSectionNo = 1
        members(0).EndCrossSectionNo = 1
        
        members(0).Comment = "result beam 1"

        data.PrepareModification
        data.SetMembers members
        data.FinishModification

    Danach muss das Interface IMember vom entsprechenden Stab geholt werden und über die Methode GetExtraData erhält man das Interface zu IResultMember. Mit Hilfe dieses Interfaces kann nun die ResultMember-Daten gelesen oder geschrieben werden. Zu beachten ist, dass beim Schreiben ein Prepare-/Finishmodification-Block benötigt wird:

        Dim iMem As IMember
        Set iMem = data.GetMember(3, AtNo)
        
        Dim iRMem As IResultBeam
        Set iRMem = iMem.GetExtraData
        
        Dim RMem As ResultBeam
        RMem = iRMem.GetData
        
        RMem.IncludeSurfaces = "1"
        RMem.IncludeSolids = "all"
        
        RMem.Integrate = WithinCuboidGeneral
        
        Dim params(0 To 3) As Double
        
        RMem.Parameters = params
        RMem.Parameters(0) = 0.5
        RMem.Parameters(1) = 0.5
        RMem.Parameters(2) = 0.1
        RMem.Parameters(3) = 0.1
        
        data.PrepareModification
        iRMem.SetData RMem
        data.FinishModification

    Im Anhang finden Sie das fertige EXCEL Makro und die zugehörige Testdatei.
  • Antwort

    Reibung stellt eine Nichtlinearität dar und kann daher nur über das Interface zum Stabendgelenk modifiziert werden.

    Dazu muss zuerst das Stabendgelenk angelegt werden, sofern nicht bereits vorhanden. Danach wird das Interface IMemberHinge zum Stabendgelenk und dann zur Nichtlinearität (hier IFriction) geholt. Über die Methoden GetData und SetData können dann die Daten (hier Friction) modifiziert werden:

    Sub SetMemberHingeFriction()

        Dim model As RFEM5.model
        Set model = GetObject(, "RFEM5.Model")
        model.GetApplication.LockLicense

        On Error GoTo e

        Dim data As IModelData
        Set data = model.GetModelData

        Dim hinge(0 To 0) As RFEM5.MemberHinge

        hinge(0).No = 1
        hinge(0).RotationalConstantX = 1
        hinge(0).RotationalConstantY = 2
        hinge(0).RotationalConstantZ = 3
        hinge(0).TranslationalConstantX = 4
        hinge(0).TranslationalConstantY = 5
        hinge(0).TranslationalConstantZ = 6
        hinge(0).Comment = "Member Hinge 1"
        
        hinge(0).TranslationalNonlinearityX = FrictionAType

        data.PrepareModification
        data.SetMemberHinges hinge
        data.FinishModification
        
        ' get interface for member hinge
        Dim imemhing As IMemberHinge
        Set imemhing = data.GetMemberHinge(1, AtNo)
        
        ' get interface for nonlinearity "friction"
        Dim iFric As IFriction
        Set iFric = imemhing.GetNonlinearity(AlongAxisX)
        
        ' get friction data
        Dim fric As Friction
        fric = iFric.GetData
        
        fric.Coefficient1 = 0.3
        
        ' set friction data
        data.PrepareModification
        iFric.SetData fric
        data.FinishModification
        
        
    e:  If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source

        Set data = Nothing
        model.GetApplication.UnlockLicense
        Set model = Nothing

    End Sub


    Für den Fall Reibung Vy + Vz kann über Coeffcient2 der zweite Koeffizient eingestellt werden. Die Wegfeder im Reibung Dialog wird über die Wegfeder des Stabendgelenks gesteuert. Im konkreten Fall ist das für die x-Richtung TranslationalConstantX (siehe Abbilung 01).

  • Antwort

    Die asynchrone Berechnung wird verwendet, wenn ein selbst erstelltes Programm RFEM oder RSTAB nur aufrufen und parallel weiterarbeiten soll. Wenn die Berechnung dann fertig ist, wird dieses Ereignis über einen Delegaten übermittelt. Ein C# Beispiel in einem Visual Studio Projekt finden Sie im Downloadbereich unten.
  • Antwort

    Diese Überprüfung kann Programm-automatisch über

    • "IApplication.LockLicense()"
    • "bool isLicensed = IApplication.IsComLicensed()"
    • "IApplication.UnlockLicense()"

    abgefragt werden.

1 - 10 von 24

Kontakt

Kontakt zu Dlubal

Haben Sie Ihre Frage und Antwort gefunden? Wenn nicht, kontaktieren Sie uns über unseren kostenlosen E-Mail-, Chat- bzw. Forum-Support oder reichen Sie Ihre Frage mittels des Online-Formulars ein.

+49 9673 9203 0

info@dlubal.com

Erste Schritte

Erste Schritte

Wir geben Ihnen Hinweise und Tipps, die Ihnen den Einstieg in das Basisprogramm RFEM und RSTAB erleichtern.

Windsimulation & Windlast-Generierung

Handbücher zu RWIND Simulation

Mit dem Einzelprogramm RWIND Simulation lassen sich mittels eines digitalen Windkanals Windströmungen um einfache oder komplexe Stukturen simulieren.

Die generierten Windlasten, die auf diese Objekte wirken, können in RFEM bzw. RSTAB importiert werden.

Eure Unterstützung ist mit Abstand die Beste

„Besten Dank für die wertvollen Infos. 

Kompliment an das Support-Team. Immer wieder beeindruckend, wie schnell und kompetent die Fragen beantwortet werden. Habe im Bereich Statik viele Software mit Supportvertrag im Einsatz, aber eure Unterstützung ist mit Abstand die Beste.“