470x
001846
2020-09-10

[IT] FAQ 004715 | Come posso selezionare gli oggetti tramite l'interfaccia COM?

Domanda:
Come posso selezionare gli oggetti tramite l'interfaccia COM?

Risposta:
Per la selezione di oggetti, c'è la funzione "SelectObjects" nell'interfaccia IModelData (o IModeldata2 e simili). La funzione prevede un tipo di oggetto e i numeri oggetto come una stringa. Ecco un breve esempio:

Sub select_objects()

Dim modello Come RFEM5.model
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense

On Error GoTo e

    Dim iModdata As IModelData2
    Set iModdata = model.GetModelData

    ' enable Selections
    iModdata.EnableSelections True

    ' select nodes 2-3 and lines 1 and 3
    iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"
    iModdata.SelectObjects ModelObjectType.LineObject, "1,3"

    ' deselect nodes and lines
    iModdata.SelectObjects ModelObjectType.NodeObject, ""
    iModdata.SelectObjects ModelObjectType.LineObject, ""

e:  If Err.Number 0 Then MsgBox Err.description, , Err.Source

model.GetApplication.UnlockLicense
Set iModdata = Nothing
Set model = Nothing

End Sub

Nella parte superiore, le selezioni sono attivate, e quindi i nodi da 2 a 3 e le linee 1 e 3 sono selezionate. Quindi, le linee e i nodi sono deselezionati da una stringa vuota.

Se si desidera leggere o modificare gli oggetti selezionati, è necessaria la funzione "IModelData.EnableSelections" (si trova anche sopra nel codice). Se la funzione viene recuperata con "Vero", ad esempio, solo i nodi selezionati saranno ottenuti con la funzione "IModelData.GetNodes ()".