Вопрос:
Как с помощью интерфейса COM создать концевое высвобождение стержня с «диаграммой»?
Ответ:
Для создания нелинейного элемента, такого как высвобождение конца стержня со схемой или выходом из работы, необходимо сначала создать высвобождение конца стержня. Если RFEM известно высвобождение конца стержня, его можно получить с помощью интерфейса IMemberEndRelease. В данном интерфейсе используются методы GetData () и SetData (). Оба метода способны считывать и записывать простые данные о высвобождении концов стержня типа MemberEndRelease, а также данные о нелинейности.
В следующем примере сначала активируется высвобождение для направления x в высвобождении на конце стержня, а затем устанавливается WorkingDiagramType в качестве нелинейности в направлении x. После передачи этих данных в RFEM с помощью блока Prepare-Finish-Modification, он создает внутреннюю нелинейность. Для ввода данных сначала получаются существующие данные из интерфейса высвобождения на конце стержня с помощью функции GetData ().
После ввода данных (NonlinearityDiagram) они снова передаются с помощью SetData ():
Sub SetNLDiagram ()
Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")
On Error GoTo e
Dim iApp As RFEM5.Application
Задайте iApp = model.GetApplication
iApp.LockLicense
iApp.Show
Изменить размер iModelData как RFEM5.iModelData
Установите iModelData = model.GetModelData
' изменить высвобождение конца стержня
' установить нелинейность «Диаграмма» для переноса x
Dim iMemHing As RFEM5.IMemberHinge
Установите iMemHing = iModelData.GetMemberHinge (1, AtNo)
РАЗМЕР МЕХАНИЗМЫ как RFEM5.MemberHinge
memHing = iMemHing.GetData ()
memHing.TranslationalConstantX = 0
memHing.TranslationalNonlinearityX = WorkingDiagramType
' Установить новые данные
iModelData.PrepareModification
мемХинг iMemHing.SetData
iModelData.FinishModification
' создать диаграмму
Dim tbl1 () как двойной
ReDim tbl1 (1, 1)
tbl1 (0, 0) = 0 ' ux
tbl1 (0, 1) = 0 ' Px
tbl1 (1, 0) = 0,02 ' ux (мм)
tbl1 (1, 1) = 2000 ' Px (N)
Размеры в соответствии с RFEM5.
nldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForce
nldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramType
nldHing.PositiveZone = tbl1
nldHing.Symmetric = True
Dim iNldiag как RFEM5.INonlinearityDiagram
Задайте iNldiag = iMemHing.GetNonlinearity (AlongAxisX)
' Установить новые данные
iModelData.PrepareModification
iNldiag.SetData nldHing
iModelData.FinishModification
e: If Err.Number 0 Then MsgBox Err.description, , Err.Source
model.GetApplication.UnlockLicense
End Sub
Процедура аналогична для узловых опор и других нелинейностей.