652x
005026
2021-06-16

Tworzenie mimośrodu pręta za pomocą interfejsu COM

Jak utworzyć mimośród pręta za pomocą interfejsu COM?


Odpowiedź:

Aby można było przypisać mimośród do pręta, zwykle należy go utworzyć przed ustawieniem pręta.

Inne podejście pokazano w poniższym przykładzie. Najpierw tworzony jest mimośród, a następnie przypisywany do istniejącego pręta za pośrednictwem interfejsu:


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


Mimośrody prętów mogą być przenoszone tylko jako pole; w tym celu zostało utworzone pole zawierające tylko jeden element. Na załączonym rysunku poszczególne elementy są wyszczególnione w odniesieniu do elementów graficznych.