5. Información Asociada Mediante Atributos de Bloques.


A principios de la década de los '90 seacometió la conversión a formato digital de los planos de lasredes de la empresa regional de suministro eléctrico. A larepresentación de la red se deseaba incorporar datos como seríanlas referencias de consumidores, los códigos identificadores de lassubestaciones transformadoras y de los nodos de interconexión, lasreferencias a planos de detalles del soterramiento de cables y otrasinformaciones relacionadas. Estas referencias y códigos seríanprocesados mediante programas de gestión de bases de datos para generarmapas temáticos a partir del resultado de las consultas realizadas. Comoresultado de la asesoría realizada, se recomendó comoúnico método práctico disponible en el momento deldiseño de la aplicación, la inclusión de atributosalfanuméricos variables, tanto visibles como invisibles, enreferencias de bloque [7].

5.1. Bloques con atributos.

Los bloques permiten reunir un número variablede entidades gráficas en un único objeto contenedor. Este objetocontenedor BLOCK o definición de bloque, puede insertarse en losespacios gráficos o anidarse en otras definiciones de bloque generandoobjetos referencia de bloque (entidades de tipo INSERT). El concepto dereferencia de bloque corresponde a un símbolo definible por el usuario yque está ligado a una geometría de componentes gráficosalmacenada en un apartado específico de la base de datos del dibujo(tabla de bloques del archivo DWG). Puede entonces el modelo construirse apartir de ocurrencias (copias transformadas) de esa geometría. Laocurrencia de un símbolo contiene las mismas entidades gráficasde la definición de bloque original, aunque sometidas a desplazamiento,rotación y cambios de escala [11].

La incorporación a la definición del bloque decadenas alfanuméricas como entidades del tipo TEXT no presentaríadificultades de acuerdo a esta definición. Sin embargo, la presencia dedatos constantes sería de una utilidad relativamente escasa. Laposibilidad de incluir como parte de una definición de bloqueinformación alfanumérica variable para cada ocurrencia constituyeuna anomalía respecto a la definición estricta de bloque quepresenta dificultades obvias. Ya no se trataría de una simple copiatransformada en un sentido estrictamente geométrico de ladefinición original. Para dar solución a este caso se recurre aun proceso similar al utilizado para generar el bloque mismo: se crea unaentidad gráfica especial, la entidad ATTDEF o definición deatributo, que actúa como plantilla, reservando un lugar ypredefiniendo las características visuales que adoptará dichainformación [13].

Esta viene a concretarse en su contenido literal sólo en el momentode generarse cada ocurrencia particular, es decir en el momento de lainserción del bloque (Figura 1) y pasando a generar una entidad nueva,el objeto referencia de atributo (entidad ATTRIB), asociados siempre alobjeto referencia de bloque (INSERT). La referencia de atributose asocia a la referencia de bloque estableciendo una secuencia en labase de datos de entidades, de manera tal que la entidad INSERT actúacomo cabecera de una sucesión de entidades ATTRIB que viene a concluircon una entidad especial fin de secuencia (SEQEND).


Fig. 1 Bolque con atributos y sus inserciones. En este caso los atributos se han definido como invisibles.

Tanto el objeto definición de atributo como elobjeto referencia de atributo no son más que ocurrencias desubclases ("AcDbAttributeDefinition" y"AcDbAttribute") derivadas de la subclase de objetos de texto"AcDbText" que forma parte a su vez de la clase de los objetosgráficos del dibujo "AcDbEntity". En realidad lo queestamos haciendo entonces no es más que añadir al dibujo textosque se relacionan con la cabecera del bloque (INSERT) por su posiciónsecuencial en la base de datos, modificados para añadirles una etiquetaidentificadora. El recurso es aunque simple, sumamente efectivo, pero con laslimitaciones que expondremos más adelante (ver apartado5.4.).

5.2. Extracción de la información contenida en los atributos.

El programasuministra el comando _ATTEXT para la extracción de estos atributos a unfichero de texto con formato a elegir entre CDF o SDF, que pueden serleídos a su vez desde los programas de bases de datos másusuales. Los datos a extraer y su ordenamiento deberán ser definidosmediante un fichero de texto que actúa como plantilla deextracción (figura 2).

La mediación obligada de un fichero externorestaría eficacia a procesos que no exijan este paso intermedio. Estopuede obviarse, sin embargo mediante el desarrollo de funciones de usuario quegestionen dichos atributos.



Fig. 2 - Plantillapara extracción de atributos

5.2.1. Función LISP para lectura de atributos.

La Figura 3 muestra el código fuente LISP para unafunción de este tipo, desarrollada empleando la recursión,método usual en LISP cuando se trata de operaciones sobre listas u otrassecuencias. Esta función es recursiva por la cola (tail-recursive), conlo que se asegura un alto grado de optimización una vez compilada[8].


Figura 3. Función LISP para lectura deatributos.

5.2.2. Limitaciones al uso de Bloques con atributos.

La utilización de los atributos para asociar datosalfanuméricos a los bloques tiene una limitación: las referenciasde bloque son por su naturaleza entidades de carácter puntual. Laúnica información geométrica a ellas asociada se reduce alos resultados de las transformaciones aplicadas a la definiciónoriginal, es decir, un punto de inserción, los factores de escala en X,Y, Z y el ángulo de rotación. Una entidad de naturaleza lineal ode superficie, por este motivo no resultaría adecuadamente representadamediante un bloque, aún cuando su apariencia en pantalla pudiera sugerirlo contrario.


Inicio | Índice |Continuar...