3.3. Definir Bloques con ENTMAKE

La portabilidad de los programas que efectúan inserciones de bloques está limitada por la necesidad de incluír junto al programa las bibliotecas de dibujos que se han de insertar. Esto obliga a empaquetar los ficheros que contienen el código junto a los dibujos y requiere de parte del usuario una instalación cuidadosa que asegure que el programa encontrará los dibujos adecuados. Un cambio en la estructura de directorios o en el nombre de los ficheros provocará irremediablemente el fallo de la aplicación. Tampoco queda asegurada la uniformidad de los resultados, al ser los ficheros de dibujo suceptibles de manipulación.

Una manera de evitar estas dificultades consiste en definir cada vez, mediante el mismo programa que los inserta, los bloques necesarios. Esto puede lograrse de una manera muy eficaz mediante la función entmake que crea, accediendo directamente a la base de datos del dibujo, nuevas entidades. La función entmake resulta especialmente apropiada para la definición de bloques sin necesidad de dibujar previamente las entidades que lo componen. Estos bloques pueden incluir cualquier entidad válida de dibujo, incluyendo atributos de texto.

La sintaxis de esta función es:

(entmake [lista_entidad])

donde [lista_entidad] contiene la información necesaria para la definición de la entidad en un formato similar al que devuelve la función entget. Una forma sencilla de obtener esta lista para el programador consiste en dibujar previamente las entidades que le interesan, utilizar la función entget -tecleando, por ejemplo (entget (car (entsel)))- y copiando la lista de entidad resultante. Esta operación, directamente accesible a los usuarios de las versión 13 y 14 bajo Windows puede implementarse para los usuarios de DOS mediante una rutina que escriba el resultado de esta lectura a un fichero de texto.

Los bloques y otras entidades complejas deberán crearse mediante varias llamadas sucesivas a entmake que definan, una a una sus elementos componentes (vértices, atributos, etc.). Cuando entmake detecta la creación de una entidad compleja, genera un archivo temporal para almacenar los datos de la definición. Cada vez que se utiliza entmake, se comprueba si este archivo temporal existe y se incluye en él la nueva información. Una vez terminada la definición de la entidad compleja, (definiendo las entidades SEQEND o ENDBLK, según corresponda) se validan los datos y se añade la entidad al dibujo. Si tiene éxito en la creación de la entidad entmake devuelve la lista de entidad o, en el caso de un bloque, el nombre de dicho bloque. Si la entidad no es creada, entonces devuelve nil.

Para evitar su redefinición, en caso de que exista un bloque del mismo nombre, es recomendable explorar la tabla de bloques previamente mediante la función tblsearch.

La función entmake también puede ser utilizada para crear objetos NO-GRÁFICOS, tales como capas, estilos, etc.


LISTADO DEL PROGRAMA

Página de Inicio / Home Page