3.3. Definir Bloques con ENTMAKE


La portabilidad de los programas que efectúan inserciones de bloquesestá limitada por la necesidad de incluír junto al programa lasbibliotecas de dibujos que se han de insertar. Esto obliga a empaquetar losficheros que contienen el código junto a los dibujos y requiere de partedel usuario una instalación cuidadosa que asegure que el programaencontrará los dibujos adecuados. Un cambio en la estructura dedirectorios o en el nombre de los ficheros provocará irremediablementeel fallo de la aplicación. Tampoco queda asegurada la uniformidad de losresultados, 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, losbloques necesarios. Esto puede lograrse de una manera muy eficaz mediante lafunción entmake que crea, accediendo directamente a la base dedatos del dibujo, nuevas entidades. La función entmake resultaespecialmente apropiada para la definición de bloques sin necesidad dedibujar previamente las entidades que lo componen. Estos bloques pueden incluircualquier 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 parala definición de la entidad en un formato similar al que devuelve lafunción entget. Una forma sencilla de obtener esta lista parael 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. Estaoperación, directamente accesible a los usuarios de las versión13 y 14 bajo Windows puede implementarse para los usuarios de DOS mediante unarutina que escriba el resultado de esta lectura a unfichero de texto.

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

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

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


LISTADO DEL PROGRAMA

Página deInicio / Home Page