869x
004961
2021-04-08

Eliminazione di elementi tramite l'interfaccia COM

Come posso utilizzare l'interfaccia COM per eliminare tutti i nodi o le aste in un modello, ad esempio?


Risposta:

Per eliminare gli elementi, c'è la funzione "DeleteObjects()" nell'interfaccia dei dati del modello. 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 & ","
    Successivo
    
    '   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.


Autore

Il signor Günthel fornisce supporto tecnico per i clienti di Dlubal Software e si prende cura delle loro richieste.

Link
Download


;