Respuesta:
Para eliminar elementos, existe la función "DeleteObjects()" en la interfaz de datos del modelo. Das Löschen aller Stäbe sieht dann wie folgt aus:
Sub test_delete_objects()
Dim iApp As RFEM5.Application
Set iApp = GetObject(, "RFEM5.Application")
iApp.LockLicense
Dim iMod As RFEM5.IModel3
Set iMod = iApp.GetActiveModel
On Error GoTo e
' get interface for model data
Dim iModData As RFEM5.IModelData2
Set iModData = iMod.GetModelData
' get all members
Dim mems() As RFEM5.Member
mems() = iModData.GetMembers
' create member list
Dim mem_list As String
Dim i As Integer
For i = 0 To UBound(mems, 1)
mem_list = mem_list & mems(i).no & ","
Siguiente
' delete members
iModData.PrepareModification
iModData.DeleteObjects MemberObject, mem_list
iModData.FinishModification
e:
If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.Source
iMod.GetApplication.UnlockLicense
Set iMod = Nothing
End Sub
Zu beachten ist, dass die Funktion "DeleteObjects" nur mit der Objektnummer und nicht mit dem Objektindex arbeitet. Diese Nummern werden als Zeichenkette getrennt mit Kommas übergeben.
Aus diesem Grund mussten zunächst alle Stäbe geholt werden. Dann wurde das Feld der Stäbe mit einer Schleife durchlaufen und alle Stabnummern in die Zeichenkette eingetragen.
Preguntas frecuentes (FAQ)