481x
005058
2021-08-24

Rotación del apoyo en nudo utilizando la interfaz COM

¿Cómo puedo girar un apoyo en nudo usando la interfaz COM?


Respuesta:

La rotación de un apoyo en nudo se define por medio de un sistema de coordenadas definido por el usuario. En el siguiente ejemplo, un apoyo en nudo se gira 45 ° sobre el eje z. No es necesario definir un nuevo sistema de coordenadas a través de nudos. En este caso, es suficiente usar la opción RotatedSystemType, que permite una rotación espacial del apoyo a través de tres giros sobre los ejes x, y, z. La rotación se introduce en radianes:


Sub test_nodal_support ()

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

iApp.LockLicense

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

On Error GoTo e

' obtener la interfaz de datos del modelo
Dim iModData As RFEM5.IModelData2
Set iModData = iMod.GetModelData

' obtener interfaz de soporte en nudo
Dim iNs como RFEM5.INodalSupport
Establecer iNs = iModData.GetNodalSupport (1, AtNo)

' obtener datos del apoyo en nudo
Dim ns como RFEM5.NodalSupport
ns = iNs.GetData

' modificar datos
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

' establecer datos del apoyo en nudo
iModData.PrepareModification
iNs.SetData ns
iModData.FinishModification

e:

Si Err.Number <> 0, entonces MsgBox Err.description, vbCritical, Err.Source

iMod.GetApplication.UnlockLicense
Establecer iMod = Nada

End Sub


El programa toma el apoyo en nudo existente del modelo abierto actualmente y lo modifica. Dado que el sistema de coordenadas definido por el usuario no es una parte directa de la interfaz INodalSupport del apoyo en nudo, la rotación también se puede transferir al crear un apoyo en nudo, por supuesto.