708x
001807
2020-09-01

[ES] FAQ 004688 | ¿Cómo puedo modificar la configuración de la malla de EF a través de la interfaz COM?

Pregunta:
¿Cómo puedo modificar la configuración de la malla de EF a través de la interfaz COM?

Respuesta:
La configuración general de la malla de EF se puede modificar utilizando la interfaz IFeMeshSettings. Esta interfaz se encuentra en IModel> IModelData> ICalculation. La imagen 01 muestra qué elementos se pueden modificar/mostrar.

Aquí hay un ejemplo de código donde la longitud objetivo de los elementos de EF se establece en 100 mm. Además, se activa la división de las barras con el mismo tamaño de elemento y se establece la división mínima en 3 elementos:

Sub mesh_params ()

Dim iApp As RFEM5.Application

' obtener la interfaz para los datos del modelo
Dim iModel As RFEM5.model
Set iModel = GetObject(, "RFEM5.Model")

On Error GoTo e

Si no es iModel entonces

    ' obtener interfaz para la aplicación y bloquear la licencia
    Establecer iApp = iModel.GetApplication ()
    iApp.LockLicense

    ' obtener la interfaz para los datos del modelo
    Atenuar iModdata como RFEM5.IModelData2
    Establecer iModdata = iModel.GetModelData

    ' obtener interfaz para el cálculo
    Dim iCalc As RFEM5.ICalculation2
    Establecer iCalc = iModel.GetCalculation ()

    ' obtener interfaz para la configuración de la malla
    Dim iMeshSet como RFEM5.IFeMeshSettings
    Establecer iMeshSet = iCalc.GetFeMeshSettings

    ' obtener la configuración general de la malla
    Dim meshGen As RFEM5.FeMeshGeneralSettings
    meshGen = iMeshSet.GetGeneral

    meshGen.ElementLength = 0.1

    ' establecer una nueva configuración general de la malla
    iModdata.PrepareModification
    iMeshSet.SetGeneral meshGen
    iModdata.FinishModification

    ' obtener la configuración de la barra de la malla
    Dim meshMem como RFEM5.FeMeshMembersSettings
    meshMem = iMeshSet.GetMembers

    meshMem.DivideStraightMembers = True
    meshMem.ElementLength = 0.1
    meshMem.MinStraightMemberDivisions = 3

    ' establecer una nueva configuración de barra de malla
    iModdata.PrepareModification
    iMeshSet.SetMembers meshMem
    iModdata.FinishModification

    iApp.UnlockLicense
End If

e:  Si Err.Number 0 entonces
    MsgBox Err.description`` Err.Source
    End If
    iApp.UnlockLicense
    Establecer iApp = Nada
    Establecer iModel = Nada

End Sub

La subrutina también se completa con una rutina de intercepción de errores (On Error GoTo e) y se requiere el bloque Prepare-/FinishModification como en el caso de modificar otros elementos. Aquí, el bloque se crea a través de la interfaz IFeMeshSettings.