390x
002990
2021-11-26

FAQ 005138 | Как с помощью интерфейса COM создать концевое высвобождение стержня с «диаграммой»?

Вопрос:
Как с помощью интерфейса 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

Процедура аналогична для узловых опор и других нелинейностей.