904x
005138
26.11.2021

Création d'une articulation d'extrémité de barre avec un diagramme à l'aide de l'interface COM

Comment puis-je créer une articulation de barre avec un « diagramme » en utilisant l'interface COM ?


Réponse:

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.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 iModdata = model.GetModelData

' modifier l'articulation d'extrémité de barre
' définir la non-linéarité « Diagramme » pour la translation x
Dim iMemHing As RFEM5.IMemberHinge
Set iMemHing = iModelData.GetMemberHinge (1, AtNo)

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

' Définir de nouvelles données
iModelData.PrepareModification
iMemHing.SetData memHing
iModelData.FinishModification


' créer un diagramme
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=DiagrammeAfterLastStepType.TaringDiagramType
nldHing.PositiveZone = tbl1
nldHing.Symetric = True

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

' Définir de nouvelles données
iModelData.PrepareModification
iNldiag.SetData nldHing
iModelData.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.