905x
004133
2021-04-13

Вопрос

Как можно посредством интерфейса COM задать трение на шарнире стержня?


Ответ:

Трение - это тип нелинейности, который можно изменить только через интерфейс к шарниру стержня.

Для этого сначала необходимо создать шарнир стержня, если он еще не создан. Затем применим к шарниру стержня интерфейс IMemberHinge, а к нелинейности интерфейс IFriction. После того уже можно для изменения требуемых данных (в данном случае это запись Friction) использовать методы GetData и SetData:

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


В случае трения Vy + Vz, используется для настройки второго коэффициента команда Coefficient2. Постоянная пружины в диалоговом окне «Трение» затем определяется с помощью продольной пружины шарнира стержня. В данном конкретном случае это запись TranslationalConstantX , которая управляет настройками для направления x (см. Рисунок 01).