1024x
004715
2020-09-10

Domanda

Come posso selezionare gli oggetti tramite l'interfaccia COM?


Risposta:

Per la selezione degli 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 ()".