482x
005058
2021-08-24

Obrót podpory węzłowej za pomocą interfejsu COM

Jak mogę obrócić podporę węzłową za pomocą interfejsu COM?


Odpowiedź:

Obrót podpory węzłowej jest definiowany za pomocą układu współrzędnych zdefiniowanego przez użytkownika. W poniższym przykładzie podpora węzłowa jest obrócona o 45 ° wokół osi z. Nie ma potrzeby definiowania nowego układu współrzędnych poprzez węzły. W tym przypadku wystarczy użyć opcji RotatedSystemType, która umożliwia przestrzenny obrót podpory poprzez trzy obroty wokół osi x, y i z. Obrót jest wprowadzany w radianach:


Sub test_nodal_support ()

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

iApp.LockLicense

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

On Error GoTo e

' pobierz interfejs danych modelu
Dim iModData As RFEM5.IModelData2
Set iModData = iMod.GetModelData

' pobierz interfejs podpory węzłowej
Dim iNs As RFEM5.INodalSupport
Ustaw iNs = iModData.GetNodalSupport (1, AtNo)

' pobierz dane podpory węzłowej
Dim ns As RFEM5.NodalSupport
ns = iNs.GetData

' modyfikować dane
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

' ustawić dane podpory węzłowej
iModData.PrepareModification
iNs.SetData ns
iModData.FinishModification

e:

Jeżeli Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.Source

iMod.GetApplication.UnlockLicense
Ustaw iMod = Nic

Koniec podrzędny


Program pobiera istniejącą podporę węzłową z aktualnie otwartego modelu i modyfikuje ją. Ponieważ układ współrzędnych zdefiniowany przez użytkownika nie jest bezpośrednią częścią interfejsu podpory węzłowej, obrót można oczywiście przenieść również podczas tworzenia podpory węzłowej.