1081x
004715
2020-09-10

Selecionar objetos através da interface COM

Como é que posso selecionar objetos através da interface COM?


Resposta:

Para selecionar objetos, existe a função "SelectObjects" na interface IModelData (ou IModeldata2 etc.). 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:

  1. código.vb#

Sub select_objects()

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

On Error GoTo e

  1. Dim iModdata As IModelData2
  2. Set iModdata = model.GetModelData
  3. ' enable Selections
  4. iModdata.EnableSelections True
  5. ' select nodes 2-3 and lines 1 and 3
  6. iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"
  7. iModdata.SelectObjects ModelObjectType.LineObject, "1,3"
  8. ' deselect nodes and lines
  9. iModdata.SelectObjects ModelObjectType.NodeObject, ""
  10. 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
#/code#

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.


Autor

O Eng. Günthel opera na área do apoio técnico para clientes.

Downloads


;