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.