Pergunta:
Como é que posso selecionar objetos através da interface COM?
Resposta:
Para selecionar objetos, existe a função "SelectObjects" na interface IModelData (ou IModeldata2 e semelhantes). A função espera o tipo de objeto e o(s) número(s) de objetos como uma cadeia de caracteres. Aqui está um pequeno exemplo:
Sub select_objects()
Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense
On Error GoTo e
Dim iModdata As IModelData2
Defina iModdata = model.GetModelData
' ativar seleções
iModdata.EnableSelections True
' selecione os nós 2 a 3 e as linhas 1 e 3
iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"
iModdata.SelectObjects ModelObjectType.LineObject, "1,3"
' anula a seleção de nós e linhas
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
Na parte superior, as seleções são ativadas e, em seguida, os nós 2 a 3 e as linhas 1 e 3 são selecionados. Em seguida, as linhas e os nós são desselecionados por uma cadeia de caracteres vazia.
Se pretende ler ou modificar objetos selecionados, precisa da função "IModelData.EnableSelections" (também pode ser encontrada acima no código). Se a função for ativada com "True", apenas os nós selecionados serão lidos com a função "IModelData.GetNodes ()", por exemplo.