Domanda:
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 "EliminaOggetti ()" nell'interfaccia dei dati del modello. L'eliminazione di tutte le aste è quindi la seguente:
Sub test_delete_objects ()
Dim iApp As RFEM5.Application
Imposta iApp = GetObject (, "RFEM5.Application")
iApp.LockLicense
Dim iMod As RFEM5.IModel3
Imposta iMod = iApp.GetActiveModel
On Error GoTo e
' get interface for model data
Dim iModData As RFEM5.IModelData2
Imposta iModData = iMod.GetModelData
'prendi tutti i membri
Dim mems () Come RFEM5.Member
mems () = iModData.GetMembers
'crea elenco dei membri
Dim mem_list As String
Dim i come numero intero
Per i = 0 a UBound (mems, 1)
mem_list = mem_list & mems (i) .no & ","
Successivo
'elimina membri
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
Si noti che la funzione "EliminaOggetti" funziona solo con il numero dell'oggetto e non con l'indice dell'oggetto. Questi numeri vengono trasferiti come una stringa, separati da virgole.
Per questo motivo, tutti i membri dovevano essere recuperati prima. Quindi il campo dell'asta è stato ripetuto e tutti i numeri dell'asta sono stati inseriti nella stringa.