417x
002990
2021-11-26

FAQ 005138 | ¿Cómo puedo crear una liberación en barra con un "diagrama" usando la interfaz COM?

Pregunta:
¿Cómo puedo crear una liberación en 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 pueden leer o escribir datos de liberación de extremo de barra simple del tipo MemberEndRelease, así como los datos de no linealidad.

En el siguiente ejemplo, la liberación se activa primero para la dirección x en la liberación del extremo de la barra y luego se establece WorkingDiagramType como la no linealidad en la dirección x. Después de transferir estos datos a RFEM utilizando el bloque Preparar-Finalizar-Modificación, crea la no linealidad internamente. Para introducir los datos, primero se obtienen los datos existentes de la interfaz de la liberación del extremo de la barra utilizando GetData ().

Después de introducir los datos (NonlinearityDiagram), se transfieren de nuevo utilizando SetData ():

SubconjuntoNLDiagram ()

  1. Dim model As RFEM5.model

Establecer modelo = GetObject (, "RFEM5.Model")

On Error GoTo e

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

iApp.LockLicense
iApp.Show

Atenuar iModelData como RFEM5.iModelData
Establecer iModelData = model.GetModelData

' modificar la liberación del extremo de la barra
' establecer "Diagrama" de no linealidad para la traslación x
Atenuar imemHing como RFEM5.IMemberHinge
Establecer iMemHing = iModelData.GetMemberHinge (1, AtNo)

Atenuar la membRa como RFEM5.MemberHinge
memHing = iMemHing.GetData ()
memHing.TranslationalConstantX = 0
memHing.TranslationalNonlinearityX = WorkingDiagramType

' Establecer datos nuevos
iModelData.PrepareModification
imemHing.SetData memHing
iModelData.FinishModification

' crear diagrama
Dim tbl1 () como doble
REDIMIR 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.PositiveZone = tbl1
nldHing.Symmetric = True

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

' Establecer datos nuevos
iModelData.PrepareModification
iNldiag.SetData nldHing
iModelData.FinishModification

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

model.GetApplication.UnlockLicense

End Sub

El procedimiento es similar para los apoyos en nudos y otras no linealidades.