1128x
004484
2020-07-07

Вопрос

Можно ли с помощью интерфейса RF‑COM отобразить напряжения на поверхности?


Ответ:

Да, напряжения на поверхности можно отобразить также через интерфейс COM. Однако для этого вам потребуется сначала интерфейс для модели (IModel), а потом интерфейс для расчета (ICalculation2). С помощью данного интерфейса затем можно получить интерфейс для результатов (IResults2):

Sub stresses_surfaces_example()
Dim iApp As RFEM5.Application
Dim iModel As RFEM5.model
Set iModel = GetObject(, "RFEM5.Model")

On Error GoTo E

If Not iModel Is Nothing Then
' get interface from model
Set iApp = iModel.GetApplication
iApp.LockLicense
    
' get interface from calculation
Dim iCalc As RFEM5.ICalculation2
Set iCalc = iModel.GetCalculation
    
' get interface from results from loadcase 1
Dim iRes As RFEM5.IResults2
Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)
    
' get equivalent stresses
Dim str_equ() As RFEM5.SurfaceEquivalentStresses
str_equ = iRes.GetSurfaceEquivalentStresses(1, AtNo, VonMisesHypothesis)
    
End If

E:
If Err.Number <> 0 Then
MsgBox Err.Number & " " & Err.description
End If

If Not iApp Is Nothing Then
iApp.UnlockLicense
End If

Функция GetSurfaceEquivalentStresses затем требует задания расчетной гипотезы. В данном примере у нас будут отображать результаты напряжения по фон Мизесу. Не забудьте, что в интерфейсе COM используются единицы SI, поэтому напряжение передается всегда в Н/м².