Para poder ingresar a aprender este tema, primero debemos tener claro a que nos referimos cuando hablamos sobre “base de datos” de una entidad de AutoCAD u otro programa de CAD.

En definición, cada entidad esta creada en base a una lista, que contiene sublistas de asociaciones; cada asociación contiene dos valores separados por un punto: el primer valor contiene el tipo de propiedad, y el segundo el valor de dicha propiedad.

Por ejemplo, observa este código:

((-1 . <Entity name: 28bb41a4150>) (0 . "LINE") (330 . <Entity name: 28bb30899f0>) (5 . "3BD") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 447950.0 8.74357e+06 0.0) (11 447972.0 8.74358e+06 0.0) (210 0.0 0.0 1.0))

Aunque no parezca, lo que estas observando es una entidad tipo “línea” o, mejor dicho, la estructura de un “objeto LINEA de AutoCAD” vista desde AutoLisp.

Los paréntesis resaltados indican la lista que define la línea y los demás paréntesis de apertura y cierre definen las sublistas o elementos que contiene la asociación de indicador de propiedad y del valor de dicha propiedad, ejemplo:

La sublista (8 . “0”) tiene 2 elementos separados por un punto, en ésta sublista o asociación, el número 8, es el identificar de la capa de la línea o en otras palabras en que capa se encuentra y el valor es “0”, que indica que se encuentra en la capa 0, este valor cambiará de acuerdo a la capa en que se encuentre la línea de este ejemplo.

Muy bien, ¿todo bien hasta ahí?, y ahora te preguntarás, ¿Cómo accedo a esas propiedades de una entidad?, la respuesta es; con la función ENTGET.

Función ENTGET

Esta función obtiene una lista con sublistas o asociaciones que conforman la estructura de una entidad seleccionada con las funciones complementarias ENTLAST, ENTSEL, etc. Entget es la función más importante para comenzar a trabajar con las propiedades de un objeto.

Por ejemplo vamos a obtener la propiedades de un círculo. Dibuja un círculo y digita el siguiente código en la línea de comandos de AutoCAD:

(entget(car(entsel)))

En esta línea de código vamos a obtener las propiedades de un círculo, pero para poder obtener las propiedades del círuclo, es necesario primero que lo seleccionesmos y lo haremos mediante código Lisp mediante la función entsel.

Función ENTSEL

La función entsel al seleccionar una entidad, devuelve dos valores (el nombre de la entidad y el punto de designación), entonces, para poder obtener el nombre de la entidad, tenemos que acceder al primer elemento de la lista y lo haremos con la función CAR, car nos devuelve el nombre de la entidad y posteriormente usamos la función entget para obtener las propiedades de esa entidad (el círculo).

La función ENTGET nos devolvió lo siguiente:

((-1 . <Entity name: 28bb41a4170>) (0 . "CIRCLE") (330 . <Entity name: 28bb30899f0>) (5 . "3BF") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "F-SEC-TERRENO") (100 . "AcDbCircle") (10 447954.0 8.74358e+06 0.0) (40 . 3.45374) (210 0.0 0.0 1.0))

Aquí se muestra el código de la estructura del circulo seleccionado, a continuación te explico algunos de ellos:

(0 . "CIRCLE")			;El valor del código 0 indica el tipo de entidad.
(8 . "F-SEC-TERRENO")		;El valor del código 8 indica la capa de la entidad.
(10 447954.0 8.74358e+06 0.0)	;El valor del código 10 indica la coordenada del centro del círculo.
(40 . 3.45374)			;El valor del código 40 indica el radio del círculo.

Si sigues ejecutando el código (entget (car (entsel) ) ) y seleccionando diferentes tipos de entidades (textos, hatch, etc), verás que algunos nuevos códigos aparecen y otros desaparecen de acuerdo al tipo de entidad que se seleccione.

¿Qué te pareció esta función?, te ayudará mucho en el futuro. A continuación veremos otra función tan importante y complementaria a entget.

Funciones que se han visto en este tema:

  1. entget
  2. entlast
  3. entsel
  4. car

Dudas o aportes en los comentarios.