475x
001846
2020-09-10

[ES] FAQ 004715 | ¿Cómo puedo seleccionar objetos a través de la interfaz COM?

Pregunta:
¿Cómo puedo seleccionar objetos a través de la interfaz COM?

Respuesta:
Para seleccionar objetos, está la función "SelectObjects" en la interfaz IModelData (o IModeldata2 y similares). La función espera el tipo de objeto y los números de objeto como una cadena. Aquí hay un ejemplo corto:

Sub select_objects ()

  1. Dim model As RFEM5.model

Establecer modelo = GetObject (, "RFEM5.Model")

  1. model.GetApplication.LockLicense

On Error GoTo e

    Dim iModdata como IModelData2
    Establecer iModdata = model.GetModelData

    ' habilitar selecciones
    iModdata.EnableSelections True

    ' seleccione los nudos 2-3 y las líneas 1 y 3
    iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"
    iModdata.SelectObjects ModelObjectType.LineObject, "1,3"

    ' anula la selección de nudos y líneas
    iModdata.SelectObjects ModelObjectType.NodeObject, ""
    iModdata.SelectObjects ModelObjectType.LineObject, ""

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

model.GetApplication.UnlockLicense
Establecer iModdata = Nada

  1. Set model = Nothing

End Sub

En la parte superior, se activan las selecciones y luego se seleccionan los Nudos 2 a 3 y las Líneas 1 y 3. Luego, se anula la selección de las líneas y nudos mediante una cadena vacía.

Si desea leer o modificar los objetos seleccionados, necesita la función "IModelData.EnableSelections" (también se puede encontrar arriba en el código). Si la función se recupera con "Verdadero", solo se obtienen los nudos seleccionados con la función "IModelData.GetNodes ()", por ejemplo.