400x
002990
26.11.2021

FAQ 005138 | Comment puis-je créer une libération d'extrémité de barre avec un « diagramme » à l'aide de l'interface COM ?

Question :
Comment puis-je créer une libération d'extrémité de barre avec un « diagramme » à l'aide de l'interface COM ?

Réponse :
Pour créer un élément non linéaire, tel qu'une libération d'extrémité de barre avec un diagramme ou une rupture, il est nécessaire de créer d'abord la libération d'extrémité de barre. Si RFEM connaît la libération en bout de barre, elle peut être obtenue à l'aide de l'interface IMemberEndRelease. Cette interface utilise les méthodes GetData() et SetData(). Les deux méthodes peuvent lire ou écrire des données de libération d'extrémité de barre simples de type MemberEndRelease ainsi que des données de non-linéarité.

Dans l'exemple suivant, la libération est d'abord activée pour la direction x dans la libération d'extrémité de barre, puis le WorkingDiagramType est défini comme non-linéarité dans la direction x. Après avoir transféré ces données vers RFEM à l'aide du bloc Prepare-Finish-Modification, la non-linéarité est créée en interne. Pour entrer les données, les données existantes sont d'abord obtenues à partir de l'interface de la libération de barre à l'aide de GetData().

Une fois les données entrées (Diagramme de non-linéarité), elles sont à nouveau transférées à l'aide de 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 la libération d'extrémité de barre
' définir la non-linéarité « Diagramme » pour la translation x
Dim iMemHing As RFEM5.IMemberHinge
Définir 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 () comme 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:      Si 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.