Pergunta:
Como é que posso alterar a configuração da malha de EF através da interface COM?
Resposta:
A configuração geral da malha de EF pode ser modificada com o auxílio da interface IFeMeshSettings. Esta interface está localizada em IModel > IModelData > ICalculation. A Figura 01 mostra os elementos que podem ser modificados/apresentados.
Veja aqui um exemplo de um código em que o comprimento-alvo dos elementos de EF é definido para 100 mm. Além disso, ainda é ativada a divisão das barras com o mesmo tamanho de elemento e a divisão mínima é definida para 3 elementos:
Sub mesh_params()
Dim iApp As RFEM5.Application
' get interface for model data
Dim iModel As RFEM5.model
Set iModel = GetObject(, "RFEM5.Model")
On Error GoTo e
If Not iModel Is Nothing Then
' obtém interface para aplicação e licença de bloqueio
Defina iApp = iModel.GetApplication ()
iApp.LockLicense
' obter interface para o modelo dat
Dim iModdata As RFEM5.IModelData2
Defina iModdata = iModel.GetModelData
' obtenha interface para cálculo
Dim iCalc As RFEM5.ICalculation2
Defina iCalc = iModel.GetCalculation ()
' obter interface para configurações de malha
Dim iMeshSet As RFEM5.IFeMeshSettings
Definir iMeshSet = iCalc.GetFeMeshSettings
' obtém as configurações gerais da malha
Dim meshGen As RFEM5.FeMeshGeneralSettings
meshGen = iMeshSet.GetGeneral
meshGen.ElementLength = 0,1
' definir novas configurações gerais de malha
iModdata.PrepareModification
iMeshSet.SetGeneral meshGen
iModdata.FinishModification
' obter configurações de barras de malha
Dim meshMem As RFEM5.FeMeshMembersSettings
meshMem = iMeshSet.GetMembers
meshMem.DivideStraightMembers = True
meshMem.ElementLength = 0,1
meshMem.MinStraightMemberDivisions = 3
' definir novas configurações de barra de malha
iModdata.PrepareModification
iMeshSet.SetMembers meshMem
iModdata.FinishModification
iApp.UnlockLicense
End If
e: Se Err.Number 0 Then
MsgBox Err.description,, Err.Source
End If
iApp.UnlockLicense
Definir iApp = Nothing
Set iModel = Nothing
End Sub
A sub-rotina também é completada por uma rotina de interceção de erros (On Error GoTo e) e volta a ser necessário um bloco Prepare-/FinishModification, tal como para a modificação de outros elementos. Aqui, o bloco é criado através da interface IFeMeshSettings.