990x
005138
2021-11-26

Creación de una articulación en extremo de barra con diagrama a través de la interfaz COM

¿Cómo puedo crear una articulación en extremo de barra con un 'diagrama' usando la interfaz COM?


Respuesta:

Para crear un elemento no lineal, como una liberación en barra con un diagrama o fallo, es necesario crear primero la liberación en la barra. Si RFEM conoce la liberación en la barra, se puede obtener utilizando la interfaz IMemberEndRelease. Esta interfaz usa los métodos GetData() y SetData(). Ambos métodos son capaces de leer o escribir datos simples de liberación en el extremo de la barra de tipo BarraEndRelease, así como los datos de no linealidad.

Im folgenden Beispiel wird in Stabendgelenk zunächst für die x-Richtung ein Gelenk aktiviert und dann als Nichtlinearität in x-Richtung der Typ WorkingDiagramType eingestellt. Nachdem diese Daten mithilfe eines Prepare-Finish-Modification-Blocks an RFEM übergeben wurden, legt dieses intern die Nichtlinearität an. Um diese mit Daten zu füllen, werden zunächst die vorhandenen Daten über GetData() von der Schnittstelle des Stabendgelenks geholt.

Nachdem die Daten (NonlinearityDiagram) ausgefüllt wurden, werde diese wieder mit SetData() übergeben:

Sub SetNLDiagram()

    Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")

On Error GoTo e

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

iApp.LockLicense
iApp.Show

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

'   modify member end release
'       set nonlinearity "Diagram" for x translation
Dim iMemHing As RFEM5.IMemberHinge
Set iMemHing = iModelData.GetMemberHinge(1, AtNo)

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

' Set new data
iModelData.PrepareModification
iMemHing.SetData memHing
iModelData.FinishModification


'       create diagram
Dim tbl1() As Double
ReDim tbl1(1, 1)
tbl1(0, 0) = 0  '   u-x
tbl1(0, 1) = 0  '   P-x

tbl1(1, 0) = 0.02  '   u-x (mm)
tbl1(1, 1) = 2000  '   P-x (N)

Dim nldHing As RFEM5.NonlinearityDiagram
nldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForce
nldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramType
nldHing.PositiveZone = tbl1
nldHing.Symmetric = True

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

'       Set new data
iModelData.PrepareModification
iNldiag.SetData nldHing
iModelData.FinishModification


e:      If Err.Number <> 0 Then MsgBox Err.description, , Err.Source

model.GetApplication.UnlockLicense

End Sub

Die Vorgehensweise ist für Knotenlager und andere Nichtlinearitäten analog.


Autor

El Sr. Günthel proporciona soporte técnico para los clientes de Dlubal Software y se ocupa de sus solicitudes.

Descargas


;