Adición de condiciones a la lista de filtros

AutoCAD ActiveX

 
Adición de condiciones a la lista de filtros
 
 
 

Cuando se especifican varios criterios de selección, AutoCAD supone que el objeto seleccionado debe cumplir todos ellos. Los criterios, no obstante, pueden calificarse de otras formas. En cuanto a los elementos numéricos, se pueden especificar operaciones relacionales (por ejemplo, que el radio de un círculo sea mayor o igual que 5.0). Para todos los elementos, se pueden especificar operaciones lógicas (por ejemplo, Text o Mtext).

Para indicar un operador relacional en la definición del filtro, utilice un código DXF de -4. Especifique el operador como cadena. En la siguiente tabla se muestran los operadores relacionales que pueden utilizarse.

Operadores relacionales para las listas de filtros de conjuntos de selección

Operador

Descripción

"*"

Comodín genérico (siempre verdadero)

"="

Igual a

"!="

Distinto de

"/="

Distinto de

"<>"

Distinto de

"<"

Menor que

"<="

Menor o igual que

">"

Mayor que

">="

Mayor o igual que

"&"

AND binario (solo grupos de enteros)

"&="

Igual a, con máscara binaria (solo grupos de enteros)

Los operadores lógicos de las listas de filtros también se indican con un código de grupo –4 y deben ser una cadena, pero tienen que estar emparejados. El operador de apertura va precedido de un símbolo de menor que  (<), y el de cierre de un símbolo de mayor que (>). En la siguiente tabla se muestran los operadores lógicos que pueden utilizarse.

Operadores de agrupamiento lógicos para las listas de filtros de conjuntos de selección

Operador inicial

operador

Encierra

Ending

operador

"<AND"

Uno o más operandos

"AND>"

"<OR"

Uno o más operandos

"OR>"

"<XOR"

Dos operandos

"XOR>"

"<NOT"

Un operando

"NOT>"

Selección de un círculo cuyo radio sea mayor o igual que 5.0.

El siguiente código indica que el objeto seleccionado debe ser un círculo cuyo radio sea mayor o igual que 5.0:

Sub Ch4_FilterRelational()
   Dim sstext As AcadSelectionSet
   Dim FilterType(2) As Integer
   Dim FilterData(2) As Variant
   Set sstext = ThisDrawing.SelectionSets.Add("SS5")
      
   FilterType(0) = 0
   FilterData(0) = "Circle"
   FilterType(1) = -4
   FilterData(1) = ">="
   FilterType(2) = 40
   FilterData(2) = 5#
      
   sstext.SelectOnScreen FilterType, FilterData
End Sub

Selección de Text o Mtext

En el siguiente ejemplo se especifica que se puedan seleccionar objetosText o Mtext:

Sub Ch4_FilterOrTest()
   Dim sstext As AcadSelectionSet
   Dim FilterType(3) As Integer
   Dim FilterData(3) As Variant
   Set sstext = ThisDrawing.SelectionSets.Add("SS6")
   FilterType(0) = -4
   FilterData(0) = "<or"
   FilterType(1) = 0
   FilterData(1) = "TEXT"
   FilterType(2) = 0
   FilterData(2) = "MTEXT"
   FilterType(3) = -4
   FilterData(3) = "or>"
      
   sstext.SelectOnScreen FilterType, FilterData
End Sub