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.