557x
005058
2021-08-24

使用COM接口旋转节点支座

如何使用COM接口旋转节点支座?


回复:

节点支座的旋转通过用户自定义坐标系来定义。 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.


作者

Günthel 先生为Dlubal 软件客户提供技术支持。

下载


;