496x
005058
24.8.2021

Natočení uzlové podpory pomocí rozhraní COM

Jak mohu natočit uzlovou podporu pomocí rozhraní COM?


Odpověď:

Natočení uzlové podpory se provádí pomocí uživatelsky definovaného souřadného systému. V následujícím příkladu je uzlová podpora natočena o 45° okolo osy z. Není přitom nutné zadávat nový souřadný systém pomocí uzlů. V tomto případě stačí použít volbu RotatedSystemType, která umožňuje prostorové natočení podpory třemi rotacemi okolo os x, y a z. Rotace se zadává v radiánech:


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


Program převezme stávající uzlovou podporu z aktuálně otevřeného modelu a upraví ji. Vzhledem k tomu, že uživatelsky definovaný souřadný systém není přímou součástí rozhraní INodalSupport uzlové podpory, je samozřejmě možné při vytváření uzlové podpory přenášet také natočení.