Uso de listas de filtros para definir normas de conjuntos de selección

AutoCAD ActiveX

 
Uso de listas de filtros para definir normas de conjuntos de selección
 
 
 

Las listas de filtros se componen de parejas de argumentos. El primer argumento representa el tipo de filtro (un objeto, por ejemplo), y el segundo argumento especifica el valor que se está filtrando (círculos, por ejemplo). El tipo de filtro consiste en un código de grupo DXF que indica el tipo de filtro que se aplicará. A continuación se presentan los tipos de filtro que más se utilizan.

Códigos DXF para filtros comunes

Código DXF

Tipo de filtro

0

Tipo de objeto (cadena)

Como “Line,” “Circle,” “Arc” etc.

2

Nombre de objeto (cadena)

El nombre de tabla (asignado) de un objeto guardado.

8

Nombre de capa (cadena)

Como “Layer 0.”.

60

Visibilidad del objeto (entero)

Use 0 = visible, 1 = invisible.

62

Número de color (entero)

Valores de índice numéricos desde el 0 al 256.

Cero indica BAYBLOCK. 256 indica BALAYER. Un valor negativo indica que la capa está desactivada.

67

Indicador de espacio modelo/papel (entero)

0 u omisión = espacio modelo, 1 = espacio papel.

Para obtener una lista completa de los códigos de grupo DXF, véase Tipos de valores de códigos de grupo en el DXF Reference.

Los argumentos de los filtros se declaran como matrices. El tipo de filtro se declara como entero y el valor de filtro es una variante. Cada tipo de filtro debe tener emparejado un valor de filtro. Por ejemplo:

FilterType(0) = 0 'Indicates filter refers to an object type
FilterData(0) = "Circle" 'Indicates the object type is "Circle"

Especificación de un solo criterio de selección para un conjunto de selección

El siguiente código solicita al usuario que seleccione los objetos que debe incluir un conjunto de selección, pero sólo los añade si se trata de un objeto Circle:

Sub Ch4_FilterMtext()
   Dim sstext As AcadSelectionSet
   Dim FilterType(0) As Integer
   Dim FilterData(0) As Variant
   Set sstext = ThisDrawing.SelectionSets.Add("SS2")
   FilterType(0) = 0
   FilterData(0) = "Circle"
   sstext.SelectOnScreen FilterType, FilterData
End Sub