Uso de patrones comodín en los criterios de filtros de conjuntos de selección

AutoCAD ActiveX

 
Uso de patrones comodín en los criterios de filtros de conjuntos de selección
 
 
 

Los nombres de símbolos y cadenas de las listas de filtros pueden incluir patrones comodín.

En la siguiente tabla se incluyen los caracteres comodín que reconoce AutoCAD y su función en el contexto de una cadena:

Caracteres comodín

Carácter

Descripción

# (almohadilla)

Equivale a cualquier número de una sola cifra.

@ (arroba)

Equivale a cualquier carácter alfabético (solo uno).

. (punto)

Equivale a cualquier carácter no alfanumérico.

* (asterisco)

Equivale a cualquier secuencia de caracteres, incluidas las secuencias vacías, y puede utilizarse en cualquier lugar del patrón de búsqueda: al principio, medio o final

? (signo de interrogación)

Equivale a cualquier carácter (solo uno).

~ (tilde)

Cuando es el primer carácter del patrón, equivale a cualquier carácter distinto del patrón.

[...]

Equivale a cualquiera de los caracteres incluidos.

[~...]

Equivale a cualquier carácter no incluido (uno solo).

- (guión)

Se utiliza entre paréntesis para especificar un rango de un solo carácter.

, (coma)

Separa dos patrones.

` (comilla inversa)

Omite los caracteres especiales (lee el carácter siguiente).

Utilice la comilla simple (`) para indicar que un carácter no se debe tratar como comodín, sino como carácter literal. Por ejemplo, para establecer que el conjunto de selección solo incluya un bloque anónimo denominado “*U2”, utilice los siguientes argumentos de filtro:

FilterType(0) = 2
FilterData(0) = "`*U2"

Selección de Mtext donde aparezca una palabra específica en el texto

El siguiente código define los criterios de selección como cualquier Mtext cuya cadena de texto contenga la palabra “La”. En este ejemplo se muestra también el uso del método de selección SelectByPolygon:

Sub Ch4_FilterPolygonWildcard()
   Dim sstext As AcadSelectionSet
   Dim FilterType(1) As Integer
   Dim FilterData(1) As Variant
   Dim pointsArray(0 To 11) As Double
   Dim mode As Integer
   mode = acSelectionSetWindowPolygon
   pointsArray(0) = -12#: pointsArray(1) = -7#: pointsArray(2) = 0
   pointsArray(3) = -12#: pointsArray(4) = 10#: pointsArray(5) = 0
   pointsArray(6) = 10#: pointsArray(7) = 10#: pointsArray(8) = 0
   pointsArray(9) = 10#: pointsArray(10) = -7#: pointsArray(11) = 0
   Set sstext = ThisDrawing.SelectionSets.Add("SS10")
      
   FilterType(0) = 0
   FilterData(0) = "MTEXT"
   FilterType(1) = 1
   FilterData(1) = "*La*"
      
   sstext.SelectByPolygon mode, pointsArray, FilterType, FilterData
End Sub