724x
005026
2021-06-16

使用 COM 接口创建杆件偏心

如何使用COM接口创建杆件偏心?


回复:

为了可以为杆件指定偏心,通常需要在设置杆件之前先创建偏心。

Im folgenden Beispiel wird noch ein anderer Weg gegangen. Zunächst wird die Exzentrizität erstellt und dann einem vorhandenen Stab über dessen Interface diese zugewiesen:

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

Stabexzentrizitäten können nur als Feld übergeben werden, hier wurde zu diesem Zweck ein Feld mit nur einem Element angelegt. Im angehängten Bild werden die einzelnen Elemente mit Bezug zur grafischen Elemente aufgeschlüsselt.


作者

Günthel 先生为Dlubal 软件客户提供技术支持。

链接
下载


;