Pour créer un élément non linéaire tel qu'une articulation de barre avec un diagramme ou un échec, il est d'abord nécessaire de créer l'articulation d'extrémité de barre. Si RFEM reconnaît l'articulation de barre, elle peut être consultée à l'aide de l'interface IMemberEndRelease. Cette interface dispose alors des méthodes GetData() et SetData(). Ces deux méthodes peuvent lire ou écrire les données d'articulation d'extrémité de barre simple de type MemberEndRelease ainsi que les données d'une non-linéarité.
Dans l'exemple suivant, une articulation est d'abord activée pour la direction x dans l'articulation d'extrémité de barre, puis le WorkingDiagramType est défini comme non-linéarité dans la direction x. Une fois ces données transférées vers RFEM à l'aide d'un bloc Prepare-Finish-Modification, la non-linéarité est générée en interne. Pour le remplir avec des données, ces informations existantes sont d'abord extraites de l'interface de l'articulation d'extrémité de barre à l'aide de GetData ().
Une fois que les données (NonlinearityDiagram) ont été renseignées, elles sont à nouveau transférées avec SetData () :
Sous-ensembleNLDiagram ()
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 iModdata = model.GetModelData
' modifier l'articulation d'extrémité de barre' définir la non-linéarité « Diagramme » pour la translation xDim iMemHing As RFEM5.IMemberHingeSet iMemHing = iModelData.GetMemberHinge (1, AtNo)
Dim memHing As RFEM5.MemberHingememHing = iMemHing.GetData ()memHing.TranslationalConstantX = 0memHing.TranslationalNonlinearityX = WorkingDagramType
' Définir de nouvelles donnéesiModelData.PrepareModificationiMemHing.SetData memHingiModelData.FinishModification
' créer un diagrammeDim tbl1 () As DoubleReDim tbl1 (1, 1)tbl1 (0, 0) = 0 ' uxtbl1 (0, 1) = 0 ' Px
tbl1 (1, 0) = 0,02 ' ux (mm)tbl1 (1, 1) = 2000 ' Px (N)
Dim nldHing As RFEM5.NonlinearityDiagramnldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForcenldHing.PositiveZoneType=DiagrammeAfterLastStepType.TaringDiagramTypenldHing.PositiveZone = tbl1nldHing.Symetric = True
Dim iNldiag As RFEM5.INonlinearityDiagramSet iNldiag = iMemHing.GetNonlinearity (AlongAxisX)
' Définir de nouvelles donnéesiModelData.PrepareModificationiNldiag.SetData nldHingiModelData.FinishModification
e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
model.GetApplication.UnlockLicense
End Sub
La procédure est similaire pour les appuis nodaux et les autres non-linéarités.