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ů.