La rotazione di un vincolo esterno del nodo è definita per mezzo di un sistema di coordinate definito dall'utente. 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.