675x
005026
16.6.2021

Vytvoření excentricity prutu pomocí rozhraní COM

Jak mohu vytvořit excentricitu prutu pomocí rozhraní COM?


Odpověď:

Aby bylo možné prutu přiřadit excentricitu, je nutné ji normálně před vytvořením prutu zadat.

Jiný postup je popsán v následujícím příkladu. Nejdříve se vytvoří excentricita, která se poté přiřadí ke stávajícímu prutu pomocí jeho rozhraní:


'---------------------
Sub SetEccentricity()
'---------------------

Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense

On Error GoTo e

Dim iModData As RFEM5.iModelData
Set iModData = model.GetModelData

' create eccentricity
Dim eccens(0 To 0) As RFEM5.MemberEccentricity
eccens(0).No = 1
eccens(0).Comment = "test eccentricity"

eccens(0).ReferenceSystem = LocalSystemType

eccens(0).Start.X = 0
eccens(0).Start.Y = 0
eccens(0).Start.Z = 0

eccens(0).End.X = 0
eccens(0).End.Y = 0
eccens(0).End.Z = 0

eccens(0).HingeAtEndNode = False
eccens(0).HingeAtStartNode = False

eccens(0).HorizontalAlignment = Middle
eccens(0).VerticalAlignment = Bottom

eccens(0).TransverseOffset = True
eccens(0).ReferenceObjectNo = 2
eccens(0).ReferenceObjectType = MemberObject
eccens(0).HorizontalAxisOffset = Middle
eccens(0).VerticalAxisOffset = Top

eccens(0).StartAdjoiningMembersOffset = False
eccens(0).EndAdjoiningMembersOffset = False

iModData.PrepareModification
iModData.SetMemberEccentricities eccens
iModData.FinishModification

' add eccentricity to member
Dim iMem As RFEM5.IMember
Set iMem = iModData.GetMember(1, AtNo)

Dim mem As RFEM5.Member
mem = iMem.GetData

mem.EccentricityNo = 1

iModData.PrepareModification
iMem.SetData mem
iModData.FinishModification


e: If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source

model.GetApplication.UnlockLicense

End Sub


Excentricity prutů lze přenášet pouze jako pole; za tímto účelem bylo vytvořeno pole pouze s jedním prvkem. Na přiloženém obrázku jsou jednotlivé prvky rozepsány podle grafických prvků.