395x
002990
2021-11-26

FAQ 005138 | W jaki sposób mogę utworzyć końcowe zwolnienie pręta ze „schematem” za pomocą interfejsu COM?

Pytanie:
W jaki sposób mogę utworzyć końcowe zwolnienie pręta ze „schematem” za pomocą interfejsu COM?

Odpowiedź:
Aby utworzyć element nieliniowy, taki jak zwolnienie na końcach pręta z wykresem lub uszkodzenie, należy najpierw utworzyć zwolnienie na końcu pręta. Jeżeli w programie RFEM znane jest zwolnienie na końcach pręta, można je uzyskać za pomocą interfejsu IMemberEndRelease. Interfejs ten wykorzystuje metody GetData () i SetData (). Obie metody umożliwiają odczytanie lub zapisanie danych zwykłego zwolnienia prętowego typu MemberEndRelease oraz danych o nieliniowości.

W poniższym przykładzie zwolnienie jest najpierw aktywowane dla kierunku x w zwolnieniu na końcu pręta, a następnie jako nieliniowość w kierunku x zostaje ustawiona nieliniowość WorkingDiagramType. Po przesłaniu tych danych do programu RFEM za pomocą bloku Prepare-Finish-Modification, program RFEM tworzy wewnętrznie nieliniowość. Aby wprowadzić dane, najpierw pobierane są istniejące dane z interfejsu zwolnienia końcowego pręta za pomocą GetData ().

Po wprowadzeniu danych (NonlinearityDiagram) są one przenoszone ponownie za pomocą SetData():

Sub SetNLDdiagram ()

Model przyciemnienia Jak w RFEM5.model
Ustaw model = GetObject(, "RFEM5.Model")

On Error GoTo e

Dim iApp As RFEM5.Application
Ustaw iApp = model.GetApplication

iApp.LockLicense
iApp.Show

Dim iModelData As RFEM5.iModelData
Ustaw iModelData = model.GetModelData

' modyfikowanie zwolnienia pręta na końcu pręta
' ustaw nieliniowość "Wykresu" dla translacji x
Dim iMemHing As RFEM5.IMeberHinge
Ustaw iMemHing = iModelData.GetMemberHinge (1, AtNo)

Dim memHing As RFEM5.MemberHinge
memHing = iMemHing.GetData ()
memHing.TranslationalConstantX = 0
memHing.TranslationalNonlinearityX = WorkingDiagramType

' Ustawić nowe dane
iModelData.PrepareModification
iMemHing.SetData memHing
iModelData.FinishModification

' utwórz wykres
Dim tbl1 () As Double
ReDim tbl1 (1, 1)
tbl1(0, 0) = 0 ' ux
tbl1(0, 1) = 0 ' Px

tbl1(1,0) = 0,02 ' ux (mm)
tbl1(1, 1) = 2000 ' Px (N)

Dim nldHing As RFEM5.NonlinearityDiagram
nldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForce
nldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramType
nldHing.Dodatnia strefa = tbl1
nldHing.Symetryczny = True

Dim inNldiag As RFEM5.INonlinearityDiagram
Ustaw iNldiag = iMemHing.GetNonlinearity (AlongAxisX)

' Ustawić nowe dane
iModelData.PrepareModification
wNldiag.SetData nldHing
iModelData.FinishModification

e:      Jeżeli Err.Number 0 to MsgBox Err.description, , Err.Source

model.GetApplication.UnlockLicense

Zakończ sub

Procedura jest podobna w przypadku podpór węzłowych i innych nieliniowości.