Para criar um elemento não linear, como uma articulação de barra com um diagrama ou uma rotura, tem de criar primeiro a articulação de barra. Se o RFEM conhecer a articulação de barra, esta poderá ser acedida através da interface IMemberEndRelease. Esta interface contém os métodos GetData() e SetData(). Ambos os métodos são capazes de ler ou escrever os dados de articulação de barra simples do tipo MemberEndRelease, bem como os dados de uma não linearidade.
No exemplo a seguir, primeiro é ativada uma articulação para a direção x na articulação de barra e, em seguida, o tipo WorkingDiagramType é definido como a não linearidade na direção x. Após estes dados terem sido transferidos para o RFEM utilizando um bloco Prepare-Finish-Modification, a não linearidade é criada internamente. Para preenchê-la com dados, primeiro são obtidos os dados existentes na interface da articulação de barra utilizando GetData ().
Após o preenchimento dos dados (NonlinearityDiagram), estes são novamente transferidos com SetData():
Sub SetNLDiagram()
Dim model As RFEM5.modelSet model = GetObject(, "RFEM5.Model")
On Error GoTo e
Dim iApp As RFEM5.ApplicationSet iApp = model.GetApplication
iApp.LockLicenseiApp.Show
Dim iModelData As RFEM5.iModelDataSet iModelData = model.GetModelData
' modify member end release' set nonlinearity "Diagram" for x translationDim iMemHing As RFEM5.IMemberHingeSet iMemHing = iModelData.GetMemberHinge(1, AtNo)
Dim memHing As RFEM5.MemberHingememHing = iMemHing.GetData()memHing.TranslationalConstantX = 0memHing.TranslationalNonlinearityX = WorkingDiagramType
' Set new dataiModelData.PrepareModificationiMemHing.SetData memHingiModelData.FinishModification
' create diagramDim tbl1() As DoubleReDim tbl1(1, 1)tbl1(0, 0) = 0 ' u-xtbl1(0, 1) = 0 ' P-x
tbl1(1, 0) = 0.02 ' u-x (mm)tbl1(1, 1) = 2000 ' P-x (N)
Dim nldHing As RFEM5.NonlinearityDiagramnldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForcenldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramTypenldHing.PositiveZone = tbl1nldHing.Symmetric = True
Dim iNldiag As RFEM5.INonlinearityDiagramSet iNldiag = iMemHing.GetNonlinearity(AlongAxisX)
' Set new dataiModelData.PrepareModificationiNldiag.SetData nldHingiModelData.FinishModification
e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
model.GetApplication.UnlockLicense
End Sub
O procedimento é semelhante para apoios de nós e outras não linearidades.