Общие параметры сетки КЭ можно легко изменить с помощью интерфейса IFeMeshSettings, который находится в разделе IModel > IModelData > ICalculation. На Рисунке 01 затем показано, какие элементы можно в сетке изменить/отобразить.
Ниже приводим также пример кода для настройки длины конечных элементов, которая должна быть равной 100 мм. Далее активируется также деление стержней с одинаковым размером элемента, причем минимальное деление установлено на 3 элемента:
Sub mesh_params()
Dim iApp As RFEM5.Application
' get interface for model dataDim iModel As RFEM5.modelSet iModel = GetObject(, "RFEM5.Model")
On Error GoTo e
If Not iModel Is Nothing Then ' get interface for application and lock licence Set iApp = iModel.GetApplication() iApp.LockLicense ' get interface for model dat Dim iModdata As RFEM5.IModelData2 Set iModdata = iModel.GetModelData ' get interface for calculation Dim iCalc As RFEM5.ICalculation2 Set iCalc = iModel.GetCalculation() ' get interface for mesh settings Dim iMeshSet As RFEM5.IFeMeshSettings Set iMeshSet = iCalc.GetFeMeshSettings ' get general mesh settings Dim meshGen As RFEM5.FeMeshGeneralSettings meshGen = iMeshSet.GetGeneral meshGen.ElementLength = 0.1 ' set new general mesh settings iModdata.PrepareModification iMeshSet.SetGeneral meshGen iModdata.FinishModification ' get mesh member settings Dim meshMem As RFEM5.FeMeshMembersSettings meshMem = iMeshSet.GetMembers meshMem.DivideStraightMembers = True meshMem.ElementLength = 0.1 meshMem.MinStraightMemberDivisions = 3 ' set new mesh member settings iModdata.PrepareModification iMeshSet.SetMembers meshMem iModdata.FinishModification iApp.UnlockLicenseEnd If
e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source End If iApp.UnlockLicense Set iApp = Nothing Set iModel = Nothing
End Sub
В подпрограмме находится также функция перехвата ошибок (On Error GoTo e). Более того, здесь, так же как и случае модификации других элементов требуется блок Prepare-/FinishModification. В таком случае блок создается с помощью интерфейса IFeMeshSettings.