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 ()".