ONCE.20. ACCESO A LA BASE DE DATOS DE AutoCAD

Si lo que hemos programado hasta ahora nos parecía importante, donde de verdad se aprovecha al máximo la potencial real de AutoLISP es en el acceso directo a la Base de Datos de AutoCAD. Hasta ahora únicamente habíamos producido objetos de dibujo —además del tratamiento de otros temas—; con los conocimientos que adquiriremos en esta sección ONCE.20 tendremos la posibilidad de acceder a lo que ya está dibujado para editarlo, eliminarlo, copiarlo, moverlo, y un sinfín de acciones que sólo tienen final en nuestra capacidad para discurrir y en nuestra imaginación y perspicacia como programadores avanzados.

 

ONCE.20.1. Organización de la Base de Datos

ONCE.20.1.1. Introducción

NOTA: Si con la integración de AutoCAD en Windows (desde la versión 12) lo que siempre se había denominado entidad pasó a llamarse objeto, en relación a la Base de Datos interna seguimos refiriéndonos a entidades de dibujo. Cuestión de convenciones.

Todas las entidades de dibujo de AutoCAD se encuentran definidas en su Base de Datos interna por medio de una serie de códigos encerrados en listas. Como ya hemos comentado alguna vez, cuando AutoCAD guarda un dibujo, éste no se guarda como tal. Por ejemplo, un círculo no se guarda como el objeto de dibujo que es, sino como una serie de códigos que describen que es un círculo, las coordenadas de su centro y su radio, además de su capa, color, tipo de línea, etcétera. Al volver a abrir el dibujo, AutoCAD interpreta dichos códigos y representa en pantalla los objetos correspondientes basándose en ellos —en los códigos—.

Este tipo de almacenamiento, que podríamos denominar vectorial, es mucho más eficaz para nosotros que, por ejemplo un mapa de bits, ya que podemos acceder a la Base de Datos y modificar los parámetros correspondientes para alterar la geometría; y todo ello sin tocar el círculo en cuestión para nada, por ejemplo.

En el caso del almacenamiento como mapa de bits, además, nos percatamos de que al acercarnos cada vez más al dibujo, éste pierde su definición. Sin embargo, en AutoCAD no ocurre esto, ya que el programa tiene la posibilidad de recalcular la Base de Datos y volver a representar el círculo como tal. Es por ello, que si actuamos sobre una geometría con el comando ZOOM (en cualquiera de sus modalidades) ésta no pierde definición. A veces, es necesario provocarle a AutoCAD para que recalcule toda la geometría; es lo que se consigue con el comando REGEN.

Esta posibilidad de la que disponemos, de acceder directamente a la Base de Datos interna, proporciona una potencia extra a AutoLISP, ya que podremos diseñar programas que modifiquen directamente los objetos de un dibujo en tiempo real y sin la intervención del usuario.

 

ONCE.20.1.2. Estructura para entidades simples

Como decíamos, las entidades se representan en la Base de Datos mediante un conjunto de listas, una para cada entidad. Además existen otras listas correspondientes a tablas de símbolos y diccionarios, las cuales representan objetos no gráficos como capas, tipos de línea y demás. Por último, existen también definiciones propias para los bloques. Nos centraremos por ahora en las entidades gráficas simples.

La lista de cada entidad es una lista de pares punteados (ya estudiados) o sublistas normales. Los pares punteados, como sabemos, contienes dos valores: el primero es el código que indica el tipo de dato contenido en el segundo, y éste contiene el dato concreto (coordenadas de un punto, nombre, etc.). Así por ejemplo, el siguiente par punteado contiene la definición para una entidad que dice que está en la capa 0:

(8 . "0")

8 es el código que define la propiedad de capa y "0" el nombre de la capa en sí.

Según el tipo de dato almacenado, la sublista puede no ser un par punteado y contener dos o más elementos. Por ejemplo, cuando se trata de un punto, contiene cuatro elementos: el código que indica que es un punto y las coordenadas X, Y y Z de dicho punto. En el siguiente ejemplo se muestra la lista que contiene las coordenadas del punto inicial de una línea:

(10 0.0 10.0 25.0)

10 es el código para el punto inicial en el caso de las líneas, 0.0 es la coordenada X del punto en cuestión, 10.0 es la coordenada Y y 25.0 la coordenada Z.

Así pues, y visto hasta aquí, podemos explicar un ejemplo mayor que se corresponde con la lista (casi) completa de una línea más o menos ordenada. La lista podría ser la siguiente:

((-1 . <Nombre de objeto: bd75a0>)
(0 . "LINE")
(8 . "PIEZA")
(62 . 1)
(6 . "TRAZOS")
(10 0.0 10.0 25.0)
(11 10.0 100.0 25.0)
)

Se trata pues de una lista con siete sublistas incluidas. La explicación de cada una de ellas es la que sigue.

(-1 . <Nombre de objeto: bd75a0>) es la lista que define el nombre de la entidad; –1 es el código específico para este nombre. Esta lista siempre se representa de la misma forma: es un par punteado que como primer elemento tiene el código de nombre de entidad (-1) y, como segundo elemento, el texto fijo Nombre de objeto:, más un nombre en hexadecimal para la entidad, encerrado todo este último elemento entre corchetes angulares.

NOTA: En versiones inglesas de AutoCAD, Nombre de objeto: cambia por Entity name:.

Los nombres que se asignan a cada entidad de dibujo son, en realidad, posiciones de memoria —por eso están en hexadecimal—. Es por ello que un mismo objeto de dibujo siempre va a tener un nombre identificativo y único, en una misma sesión de dibujo, que lo diferencie de todos los demás. En el momento en que cerremos el dibujo y lo volvamos a abrir, es posible (y casi seguro) que el objeto adquiera otro nombre, pero será también único para él en esa sesión de dibujo. Debido a esto, esta propiedad de los objetos no puede ser modificada.

(0 . "LINE") es la lista para el tipo de entidad; 0 es el código que define este tipo. El segundo elemento de la lista, que es par punteado, indica el tipo de entidad. Hay que tener en cuenta que este tipo siempre se representa en la Base de Datos en inglés, por lo que cuando se haga referencia a él desde los programas en AutoLISP habrá que hacerlo en este idioma. Además, se trata de una cadena de texto, y por eso va entre comillas (y en mayúsculas).

(8 . "PIEZA") indica la capa en la cual se encuentra actualmente la línea; 8 es el código para la capa. El segundo elemento de la lista, que es par punteado, describe, como cadena de texto y en mayúsculas, el nombre de la capa en cuestión.

(62 . 1) especifica el color de la línea; 62 es el código para el color. El segundo elemento del par punteado es el código de color de AutoCAD 14, en este caso 1 que se corresponde con el rojo.

(6 . "TRAZOS") es el tipo de línea de la entidad, línea en este caso; 6 es el código correspondiente al tipo de línea. El segundo elemento del par punteado es el nombre del tipo de línea, que aparecerá en mayúsculas y entre comillas por ser cadena.

(10 0.0 10.0 25.0) indica el punto inicial de la línea; en este caso 10 es el código del punto inicial, en otros casos (con otras entidades) significará otra cosa. Esta lista no es un par punteado, sino que contiene varios elementos. Dichos elementos son las coordenadas X (0.0), Y (10.0) y Z (25.0) del punto de inicio de la entidad de línea. Los puntos son separadores decimales.

(11 10.0 100.0 25.0) es el punto final de la línea; 11 es el código de punto final para las entidades que sean líneas; en otros casos será otra cosa. De la misma forma, la lista contiene después las coordenadas cartesianas del punto.

NOTA: En un caso real, la lista de una simple línea ofrecería más sublistas con otros códigos específicos que ya se estudiarán.

Como vemos, la manera en que están definidas las entidades en la Base de Datos de AutoCAD es bien sencilla. Al ser listas pueden ser fácilmente tratadas desde AutoLISP. Para entidades complejas, tipo polilíneas o bloques, el formato varía un poco, es por ello que se estudiará bajo el siguiente epígrafe. Las entidades no gráficas se verán también más adelante.

Se puede observar que para acceder a las propiedades y características de las entidades es necesario conocer los códigos normalizados. Estos códigos pueden ser comunes a todas las entidades o depender del tipo de entidad de que se trate. Así por ejemplo —como se ha indicado en su momento—, el código 8 representa la capa en la cual se encuentra la entidad actualmente; este código es común a todas las entidades de dibujo. En cambio el código 10, que en el ejemplo de la línea representaba su punto inicial, en un círculo indica su centro (al igual que en un arco), en un texto o en un bloque indica su punto de inserción, etcétera. La lista completa de todos los códigos de entidades para AutoCAD 14 se proporciona más adelante (ONCE.20.1.5.).

En algún caso especial pueden existir varias sublistas con el mismo código como primer elemento. Esto ocurre por ejemplo con las splines, que mediante el código 10 representan todos sus puntos de control, mediante el código 11 todos sus puntos de ajuste, mediante el código 40 todos los valores de nodos, y demás.

Por otro lado, decir que hay que tener muy en cuenta un aspecto importantísimo cuando se trabaja con ciertas entidades, como polilíneas, bloques u objetos en tres dimensiones, entre otras. Y es que las coordenadas de sus puntos característicos están referidas al llamado SCE (Sistema de Coordenadas de la Entidad) —o SCO (Sistema de Coordenadas del Objeto)—. Para poder trabajar con ellas habrá que convertir dichos puntos previamente mediante la función TRANS (ya estudiada). Por ejemplo, en una polilínea trazada mediante varios puntos, el primero de ellos está referido al SCP absoluto actual, sin embargo las demás coordenadas son relativas a dicho primer punto, es decir, están en el SCE. Esto hace que el proceso de regeneración de un dibujo en AutoCAD ahorre bastante tiempo, ya que sólo ha de recalcular el primer punto (los demás son relativos a él).

 

ONCE.20.1.3. Estructura para entidades compuestas

Nos dedicaremos ahora al estudio de la estructura que representa en la Base de Datos a las entidades complejas o compuestas.

Estas entidades compuestas no poseen una sola lista con sublistas, sino que se estructuran en varias listas separadas (cada una con sus propias sublistas de asociación): una lista de cabecera, varias listas de componentes y al final una lista de fin de secuencia. Las entidades compuestas que presentan estas características son:

  • Polilíneas no optimizadas (versiones anteriores a la 14): tanto polilíneas 2D adaptadas a curva como polilíneas 3D y también mallas.
  • Inserciones de bloque con atributos.

 

ONCE.20.1.3.1. Polilíneas no optimizadas

En versiones anteriores a la 14 de AutoCAD, las polilíneas tenían un tratamiento diferente en la Base de Datos interna de la aplicación. En AutoCAD 14 aparece el concepto de polilíneas optimizadas, las cuales tienen una forma de guardarse junto al resto del dibujo más eficaz y controlada.

Estas nuevas polilíneas optimizadas están consideradas como entidades simples en la Base de Datos, y así se representan (su tipo de entidad, código 0, es LWPOLYLINE). No obstante, las polilíneas adaptadas a curva o curva B (spline) se convierten a polilíneas de versiones anteriores (tipo de entidad POLYLINE). También las polilíneas 3D y las mallas de AutoCAD son tipos de polilíneas no optimizadas. En este apartado pues, se verá este tipo de polilíneas, ya que son entidades compuestas.

NOTA: La variable de sistema de AutoCAD 14 PLINETYPE especifica si el programa utiliza polilíneas 2D optimizadas. Sus valores se pueden observar en la lista de variables proporcionada en el APÉNDICE B.

Las polilíneas no optimizadas aparecen en la Base de Datos de AutoCAD 14 de la siguiente manera:

1º La lista correspondiente a la entidad compuesta (tipo de entidad POLYLINE), conteniendo las características y propiedades globales de la polilínea. Es la denominada cabecera de la entidad en la Base de Datos. Esta lista contiene un código especial 66 que especifica que las siguientes listas pertenecen a la polilínea.

2º Un conjunto de listas de los vértices de la polilínea. A cada vértice le corresponde una lista (tipo de entidad VERTEX) que contiene las propiedades y características individuales de cada elemento (segmentos por ejemplo) de la polilínea.

3º Una lista de "fin de secuencia", que es un tipo de entidad especial llamado SEQEND que especifica el final de las listas de vértices, y por lo tanto de la polilínea. Esta lista contiene el código especial –2 que indica el nombre de la entidad principal, es decir de la cabecera.

Por ejemplo, una polilínea sencilla que contuviera únicamente dos segmentos, cada uno de ellos con espesores diferentes, podría contener en la Base de Datos las siguientes listas y sublistas (entre otras):

((-1 . <Nombre de objeto: 26a0a20>)
(0 . "POLYLINE")
(8 . "PIEZA")
(66 . 1)
(67 . 0)
(10 0.0 0.0 0.0)
(70 . 0)
(40 . 5.0)
(41 . 5.0)
(210 0.0 0.0 1.0)
)

Esta primera lista de cabecera contiene el tipo de entidad POLYLINE, que es la entidad principal o compuesta. En este caso se encuentra en la capa PIEZA. Su color es PorCapa, pues no aparece ninguna lista con el código 62. El grosor inicial y el grosor final globales de la polilínea (códigos 40 y 41) son ambos de 5.0. El resto de sublistas —alguna de ellas no se muestra aquí— hacen referencia a aspectos tales como si la polilínea es abierta o cerrada, si está adaptada curva, la orientación de su altura de objeto respecto al SCP actual, etc. El código 66 con valor 1 es el que indica que siguen otras listas de componentes de vértice.

NOTA: Apreciamos un aspecto aún no comentado, que es el hecho de que si no existe alguna de las listas significa que se toman unos valores por defecto, como por ejemplo PorCapa para el color (veremos más ejemplos).

La segunda de las listas de la polilínea podría ser la siguiente:

((-1 . <Nombre de objeto: 26a0a28>)
(0 . "VERTEX")
(8 . "PIEZA")
(67 . 0)
(10 100.0 110.0 0.0)
(70 . 0)
(40 . 5.0)
(41 . 5.0)
(42 . 0.0)
(50 . 0.0)
)

Esta segunda lista, con el tipo de entidad VERTEX, contiene las sublistas para el primer vértice de la polilínea. Su capa es PIEZA, las coordenadas (código 10) son en este caso X = 100, Y = 110 y Z = 0. El grosor inicial y final del segmento que empieza en ese vértice (códigos 40 y 41) son ambos 5.0. El resto de datos se refieren a si hay curva adaptada, la dirección de la tangente, etc.

La tercera lista:

((-1 . <Nombre de objeto: 26a09e8>)
(0 . "VERTEX")
(8 . "PIEZA")
(67 . 0)
(10 120.0 130.0 0.0)
(70 . 0)
(40 . 5.0)
(41 . 0.0)
(42 . 0.0)
(50 . 0.0)
)

Esta tercera lista corresponde al segundo vértice. En este caso sus coordenadas son X = 120, Y = 130 y Z = 0. El grosor inicial del segmento que empieza en ese vértice es 5.0, pero el grosor final aquí es 0.0.

Último vértice de la polilínea:

((-1 . <Nombre de objeto: 26a12a5>)
(0 . "VERTEX")
(8 . "PIEZA")
(67 . 0)
(10 160.0 140.0 0.0)
(70 . 0)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(50 . 0.0)
)

Esta cuarta lista contiene los datos del tercer vértice. Sus coordenadas son X = 160, Y = 140 y Z = 0). Al ser una polilínea abierta, el grosor inicial y final coinciden puesto que no hay ningún segmento que parta de este vértice. El grosor en este caso es 0.

Y la lista de fin de secuencia:

((-1 . <Nombre de objeto: 26a12e7>)
(0 . "SEQEND")
(8 . "PIEZA")
(67.0)
(-2 . <Nombre de objeto: 26a0a20>)
)

Esta última lista indica que la polilínea ya no contiene más vértices. El tipo de entidad es SEQEND. El código -2 indica el nombre de entidad de cabecera que repite el ya indicado en la primera lista.

 

ONCE.20.1.3.2. Inserciones de bloque con atributos

Las inserciones de un bloque son referencias a dicho bloque y están consideradas como entidades simples, con una única lista en la Base de Datos de AutoCAD. La definición de las entidades que forman dicho bloque se encuentran contenidas en las denominadas tablas de símbolos, que veremos en el apartado siguiente.

Sin embargo, si el bloque en cuestión contiene atributos es considerado como una entidad compuesta o compleja, de forma que la referencia del bloque es la entidad de cabecera y cada uno de los atributos viene definido en otras tantas listas siguientes. Al final, una lista de fin de secuencia cierra la entidad compuesta, como en el caso de las polilíneas no optimizadas.

Las referencias de bloques con atributos aparecen en la Base de Datos de AutoCAD 14 de la siguiente manera:

1º La lista correspondiente a la entidad compuesta, en este caso una referencia de bloque (tipo de entidad INSERT). Es la cabecera.

2º Un conjunto de listas para cada atributo (tipo de entidad ATTRIB).

3º Una lista de "fin de secuencia" (tipo de entidad SEQEND).

Así pues, un sencillo bloque que representara una resistencia eléctrica, conteniendo un atributo para el valor de la resistencia, tendría en la Base de Datos una serie de listas parecidas a las que siguen:

((-1 . <Nombre de objeto: 26a0af8>)
(0 . "INSERT")
(8 . "ELEMENTOS")
(67 . 0)
(66 . 1)
(2 . "RES")
(10 80.0 100.0 0.0)
(41 . 1.0)
(42 . 1.0)
(50 . 0.0)
(43 . 1.0)
(210 0.0 0.0 1.0)
)

El tipo de entidad INSERT indica que se trata de una inserción de bloque. El bloque se llama RES (código 2). Se encuentra insertado en la capa ELEMENTOS. El código 66 con un valor 1 indica que el bloque contiene atributos y que siguen listas para cada atributo. El código 10 indica las coordenadas del punto de inserción del bloque. Los códigos 41, 42 y 43 indican las escalas X , Y y Z de inserción del bloque. El código 50 es el ángulo de rotación de la inserción. El último código es para la orientación de la altura de objeto.

La siguiente lista que aparece en la Base de Datos es la correspondiente al atributo incluido en el bloque:

((-1 . <Nombre de objeto: 26a0b00>)
(0 . "ATTRIB")
(8 . "ELEMENTOS")
(10 120.0 80.0 0.0)
(40 . 16.0)
(1 . "250K")
(2 . "RESIS")
(67 . 0)
(70 . 4)
(73 . 0)
(50 . 0.0)
(41 . 1.0)
(51 . 0.0)
(7 . "TS1")
(71 . 0)
(72 . 4)
(11 150.0 100.0 0.0)
(210 0.0 0.0 1.0)
)

El tipo de entidad es ATTRIB y se encuentra en la misma capa que la inserción del bloque. El punto de inserción del texto del atributo tiene coordenadas X = 120, Y = 80 y Z = 0. La altura de este texto (código 40) es 16. Los códigos 1 y 2 indican el valor del atributo (aquí es 250K) y el identificador (aquí RESIS) respectivamente. El código 70 con valor 4 indica que se trata de un atributo verificable. El código 50 indica el ángulo de rotación del texto. Los códigos siguientes hacen referencia al estilo de texto del atributo; en este caso tiene factor de proporción 1, ángulo de inclinación 0, estilo TS1, generación normal, y es un texto con opción rodear (código 72 con valor 4). El punto indicado para rodear está en el código 11.

La última lista con el tipo de entidad SEQEND, puesto que ya no hay más atributos sería la siguiente:

((-1 . <Nombre de objeto: 26a0b08>)
(0 . "SEQEND")
(8 . "ELEMENTOS")
(67 . 0)
(-2 . <Nombre de objeto: 26a0af8>)
)

El último código -2 contiene el nombre de la entidad principal o de cabecera, que es la referencia del bloque.

 

ONCE.20.1.4. Estructura para objetos no gráficos

Los objetos no gráficos de AutoCAD son datos que contiene el dibujo pero que no pertenecen a objeto gráficos como tal. Se subdividen en diccionarios, tablas de símbolos y bloques. Su estructura en la Base de Datos consiste también en una serie de listas de asociación similares a las de las entidades gráficas, pero que no contienen entidades propiamente dichas sino definiciones y características propias de los objetos no gráficos.

Las tablas de símbolos y los bloques comprenden 9 objetos no gráficos:

  • Capas
  • Estilos de texto
  • Tipos de línea
  • Estilos de acotación
  • Vistas almacenadas
  • Configuraciones de ventanas múltiples
  • SCPs almacenados
  • Definiciones de bloques
  • Aplicaciones registradas

Los objetos de diccionario reúnen 2 objetos añadidos en la versión 13 de AutoCAD:

  • Estilos de línea múltiple
  • Grupos de selección

A partir de la revisión c4 de la versión 13, y en la versión 14, se han añadido otros tipos de objetos más específicas como XRECORD para almacenar datos arbitrarios o ACAD_PROXY_OBJECT para objetos proxy procedentes de aplicaciones no reconocidas por AutoCAD.

La organización de estos objetos en la Base de Datos, como hemos dicho, es similar a la de las entidades gráficas, a base de listas de asociaciones que poseen un código como primer elemento que indica el tipo de dato que viene a continuación. Los tipos de datos correspondientes a estos objetos para el tipo de entidad (código 0) son los que siguen:

Tipo de entidad ---- Objeto no gráfico

------------------------------------------------

LAYER
-------------- Capa

LTYPE -------------- Tipo de línea

STYLE -------------- Estilo de texto

DIMSTYLE ---------- Estilo de acotación

VIEW -------------- Vista almacenada

VPORT ------------- Configuración de ventanas múltiples

UCS --------------- SCP almacenado

BLOCK ------------ Definición de bloque

ENDBLK ----------- Final de definición de bloque

APPID ------------ Aplicación registrada

GROUP ------------ Grupo de selección

MLINESTYLE ------ Estilo de línea múltiple

En el caso de las definiciones de bloque, además de la lista con las características globales existen listas con todas las entidades que componen el bloque. A continuación veremos ejemplos de listas de algunos de los objetos no gráficos.

 

ONCE.20.1.4.1. Capa

La lista de definición de una capa en la tabla de símbolos podría ser la siguiente:

((0 . "LAYER")
(2 . "EJES")
(70 . 4)
(62 . -7)
(6 . "TRAZO_Y_PUNTO")
)

En este caso, el código 0 con valor asociado LAYER indica que se trata de una capa. Su nombre es EJES. El color asociado es blanco y, como el número de color aparece con signo negativo (-7), quiere decir que se encuentra en este momento desactivada. El tipo de línea asociado a la capa es TRAZO_Y_PUNTO.

 

ONCE.20.1.4.2. Estilo de texto

La lista de definición de un estilo de texto podría ser como la que sigue:

((0 . "STYLE")
(2 . "TS1")
(40. 0.0)
(41 . 1.0)
(50 . 0.0)
(71 . 0)
(42 . 3.5)
(3 . "romans.shx")
(4 . "")
)

El nombre del estilo de texto es TS1; la altura en la definición del estilo (código 40) es 0; el factor de proporción (código 41) es 1; el ángulo de inclinación del estilo (código 50) es 0; la generación del estilo es normal (código 71 igual a 0); la altura actual de los textos por defecto (código 42) es 3.5; y el archivo de definición de tipos de letra en que está basado el estilo es ROMANS.SHX.


ONCE.20.1.4.3. Tipo de línea

La lista correspondiente a la definición de un tipo de línea cargado en el dibujo presenta un aspecto como el siguiente:

((0 . "LTYPE")
(2 . "TRAZOS")
(3 . "-- -- -- -- -- -- -- -- --")
(72 . 65)
(73 . 2)
(40 . 0.75)
(49 . 0.5)
(49 . -0.25)
)

El nombre del tipo de línea es TRAZOS; el aspecto que presenta en el archivo de definición ACAD.LIN o ACADISO.LIN, según preferencias, es el que aparece asociado como una cadena de texto al código 3; el código 72 indica un factor de alineamiento A, que como se sabe es obligatorio para los tipos de línea de AutoCAD. El código 73 indica el número de parámetros (sucesión de tramos, huecos y puntos) que definen el patrón de la línea. En este caso son dos, un trazo y un hueco. El código 40 proporciona la longitud total del patrón y el código 49 da en varias listas los valores de ese patrón: positivos para trazos, negativos para huecos y 0 para puntos.

 

ONCE.20.1.4.4. Definición de bloque

La lista de cabecera de la definición de un bloque tiene una característica especial y es que contiene un código -2 con el nombre de la primera entidad de las que compone ese bloque. Por ejemplo:

((0 . "BLOCK")
(2 . "RES")
(70 . 66)
(10 0.0 0.0 0.0)
(-2 . <Nombre de objeto: 26a0b07>)
)

El bloque definido se llama RES, su punto de inserción es el de coordenadas X = 0, Y = 0 y Z = 0) y el nombre de la primera entidad de la que está compuesta el bloque es 26a0b07.

Como veremos seguidamente, a partir de ese nombre se podría acceder a todas las listas con las entidades que componen el bloque, exactamente del mismo modo que para las entidades sueltas. Aquí al explorar las listas de entidades en orden correlativo (ENTNEXT), después de la última se devuelve nil. No obstante, al construir las listas mediante ENTMAKE se requiere una lista final del tipo ENDBLK que indica que ya no hay más listas de componentes del bloque.

NOTA: Estas funciones AutoLISP se estudiarán tras la tabla de códigos de entidades.

 

ONCE.20.1.5. Códigos de acceso a Base de Datos

La lista de códigos se presenta en el siguiente archivo.