481x
005058
24. August 2021

Verdrehung eines Knotenlagers mit Hilfe der COM-Schnittstelle

Wie kann ich mit Hilfe der COM-Schnittstelle ein Knotenlager verdrehen?


Antwort:

Die Verdrehung eines Knotenlagers wird mit Hilfe eines benutzerdefinierten Koordinatensystem durchgeführt. Im folgenden Beispiel wird ein Knotenlager um 45° um die z-Achse verdreht. Es ist dabei nicht erforderlich, über Knoten ein neues Koordinatensystem zu definieren. In diesem Fall genügt die Verwendung der Option RotatedSystemType, welches über die drei Verdrehungen um x-, y- und z-Achse eine räumliche Drehung des Lagers ermöglicht. Die Eingabe der Verdrehung erfolgt in Radiant:


Sub test_nodal_support()

Dim iApp As RFEM5.Application
Set iApp = GetObject(, "RFEM5.Application")

iApp.LockLicense

Dim iMod As RFEM5.IModel3
Set iMod = iApp.GetActiveModel

On Error GoTo e

'   get interface of modeldata
Dim iModData As RFEM5.IModelData2
Set iModData = iMod.GetModelData

'   get interface of nodal support
Dim iNs As RFEM5.INodalSupport
Set iNs = iModData.GetNodalSupport(1, AtNo)

'   get nodal support data
Dim ns As RFEM5.NodalSupport
ns = iNs.GetData

'   modify data
ns.ReferenceSystem = UserDefinedSystemType
ns.UserDefinedReferenceSystem.Axis1 = AxisX
ns.UserDefinedReferenceSystem.Axis2 = AxisY
ns.UserDefinedReferenceSystem.Type = RotatedSystemType
ns.UserDefinedReferenceSystem.RotationAngles.X = 0
ns.UserDefinedReferenceSystem.RotationAngles.Y = 0
ns.UserDefinedReferenceSystem.RotationAngles.Z = 45 * 3.14159265359 / 180

'   set nodal support data
iModData.PrepareModification
iNs.SetData ns
iModData.FinishModification

e:

If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.Source

iMod.GetApplication.UnlockLicense
Set iMod = Nothing

End Sub


Das Programm nimmt das vorhandene Knotenlager eins aus dem aktuell geöffneten Modell und modifiziert es. Da das benutzerdefinierte Koordinatensystem kein direkter Bestandteil des Interfaces INodalSupport vom Knotenlager ist, kann die Verdrehung selbstverständlich auch beim Anlegen eines Knotenlagers übergeben werden.