1037x
004715
2020-09-10

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

Dim model As RFEM5.model
Establecer modelo = GetObject (, "RFEM5.Model")
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 = Nothing
Set model = Nothing

End Sub

En la parte superior se activan las selecciones, y luego se seleccionan los Nodos 2 a 3 y las Líneas 1 y 3. Luego, las líneas y nudos se deseleccionan 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 "True", sólo se obtienen los nudos seleccionados con la función "IModelData.GetNodes ()", por ejemplo.