479x
002411
2021-03-05

[EN] FAQ 004961 | ¿Cómo puedo usar la interfaz COM para eliminar todos los nudos o barras en un modelo ...

Pregunta:
¿Cómo puedo usar la interfaz COM para eliminar todos los nudos o barras en un modelo, por ejemplo?

Respuesta:
Para eliminar elementos, está la función "DeleteObjects ()" en la interfaz de datos del modelo. La eliminación de todas las barras es la siguiente:

Sub test_delete_objects ()

Dim iApp As RFEM5.Application
Establecer iApp = GetObject (, "RFEM5.Application")

iApp.LockLicense

Dim iMod como RFEM5.IModel3
Set iMod = iApp.GetActiveModel

On Error GoTo e

    'obtener interfaz para datos del modelo
    Dim iModData As RFEM5.IModelData2
    Set iModData = iMod.GetModelData

    'obtener todos los miembros
    Dim mems() As RFEM5.Member
    mems () = iModData.GetMembers

    'crear lista de miembros
    Dim mem_list como cadena
    Dim i como entero
    Para i = 0 a UBound (mems, 1)
        mem_list = mem_list & mems (i) .no & ","
    Siguiente

    'eliminar miembros
    iModData.PrepareModification
    iModData.DeleteObjects MemberObject, lista_mem
    iModData.FinishModification

e:

If Err.Number 0 Then MsgBox Err.description, vbCritical, Err.Source

iMod.GetApplication.UnlockLicense
Establecer iMod = Nada

End Sub

Tenga en cuenta que la función "DeleteObjects" sólo funciona con el número de objeto y no con el índice de objeto. Estos números se transfieren como una cadena, separados por comas.

Por esta razón, primero se tuvieron que buscar todas las barras. Luego, se recorrió el campo de la barra y se introdujeron todos los números de la barra en la cadena.