908x
004133
13.04.2021

Question

Comment définir la friction sur une articulation de barre via l'interface COM ?


Réponse:

La friction représente une non-linéarité et peut donc être modifiée uniquement via l'interface de l'articulation de barre.

Pour ce faire, vous devez d'abord créer l'articulation de barre, si elle n'est pas déjà disponible. L'interface IMemberHinge est ensuite dirigée vers l'articulation de barre, puis vers la non-linéarité (IFriction, ici). Les méthodes GetData et SetData permettent alors de modifier les données (ici Friction) :

Sub SetMemberHingeFriction()

Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense

On Error GoTo e

Dim data As IModelData
Set data = model.GetModelData

Dim hinge(0 To 0) As RFEM5.MemberHinge

hinge(0).No = 1
hinge(0).RotationalConstantX = 1
hinge(0).RotationalConstantY = 2
hinge(0).RotationalConstantZ = 3
hinge(0).TranslationalConstantX = 4
hinge(0).TranslationalConstantY = 5
hinge(0).TranslationalConstantZ = 6
hinge(0).Comment = "Member Hinge 1"
    
hinge(0).TranslationalNonlinearityX = FrictionAType

data.PrepareModification
data.SetMemberHinges hinge
data.FinishModification
    
' get interface for member hinge
Dim imemhing As IMemberHinge
Set imemhing = data.GetMemberHinge(1, AtNo)
    
' get interface for nonlinearity "friction"
Dim iFric As IFriction
Set iFric = imemhing.GetNonlinearity(AlongAxisX)
    
' get friction data
Dim fric As Friction
fric = iFric.GetData
    
fric.Coefficient1 = 0.3
    
' set friction data
data.PrepareModification
iFric.SetData fric
data.FinishModification
    
    
e: If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source

Set data = Nothing
model.GetApplication.UnlockLicense
Set model = Nothing

End Sub


Dans le cas de la friction Vy + Vz, le Coefficient2 est utilisé pour définir le second coefficient. Le ressort dans la boîte de dialogue de la friction est contrôlé via celui de l'articulation de barre. Dans le cas traité ici, il s'agit de TranslationalConstantX pour la direction x (voir la Figure 01).