lunes, 8 de diciembre de 2014

¿Qué puede hacer por ti AutoLISP?

¿Qué es AutoLISP?


AutoLISP es un poderoso lenguaje de programación integrado en AutoCAD. Es un subconjunto del LISP, un lenguaje de programación desarrollado inicialmente en los años cincuenta del pasado siglo. Además de los conceptos del lenguaje original añade algunas funciones especialmente diseñadas para la manipulación de dibujos de AutoCAD. Es un verdadero lenguaje de programación, no es una macro o mera secuencia de acciones dentro de la aplicación.

AutoLISP permite la manipulación de las entidades y variables de un dibujo de AutoCAD mediante sencillas rutinas de ejecución automática, así como la extracción de datos del dibujo y su exportación para su posterior tratamiento y análisis con otros programas.


Normalmente, se usa como lenguaje evaluado, es decir, sin compilar, cada instrucción del lenguaje debe ser leída por el evaluador y convertida a lenguaje máquina. La primera vez que el evaluador de AutoLISP encuentra un bloque de código, lo evalúa y convierte a código máquina, si a lo largo de la ejecución del programa el bloque de instrucciones se repite, el evaluador no necesita volver a convertirlo, “recuerda” su valor y lo ejecuta simplemente, sin usar tiempo adicional en su conversión.

Es un lenguaje orientado a la manipulación de símbolos, lo que lo hace ideal para la programación de sistemas CAD. Un símbolo es cualquier representación de la realidad mediante una convención previamente establecida. Tanto los símbolos como los datos y el mismo programa se integran en listas que se colocan entre paréntesis. De hecho, AutoLISP  es un lenguaje extremadamente eficiente para encontrar símbolos en una lista. Su nombre proviene de LISt Processing (procesado de listas) y, en realidad, cualquier programa de AutoLISP es una lista en sí mismo. Como tal, cualquier programa de LISP comienza con la apertura de un paréntesis y finaliza con su cierre.

En la mayoría de los lenguajes de programación la asignación de información se hace mediante signos matemáticos, por ejemplo con el carácter igual (=). En LISP, por el contrario, la forma de asignar valor a una variable es mediante la instrucción “setq”. Mediante esta sencilla instrucción se puede transferir la información de una a otra lista de las que componen el programa.

Los símbolos no tienen porqué ser palabras, pueden ser cualquier cosa a la que se le pueda asignar un significado. Una representación gráfica, por ejemplo, puede ser un símbolo, es decir, una abstracción de la realidad susceptible de ser interpretada por el programa. En ese sentido, el símbolo es el “sujeto” portador del valor de la realidad representada.

En AutoCAD los símbolos gráficos complejos, por ejemplo, la representación de una bañera, están formados por entidades simples: líneas, arcos, elipses... coordinados y dispuestos como elementos constitutivos de la representación inteligible. Estos elementos simples son los “ladrillos” constituyentes de una nueva representación, dotada a su vez de un significado, que el programa puede entender y usar como conjunto. Por ejemplo, el bloque de una mesa no tiene que ser definido y establecido una y otra vez desde el principio para constituir un comedor. Basta con repetirlo como conjunto (bloque) para obtener el resultado apetecido.

Los símbolos pueden contener información adicional acerca de cualquiera de las cualidades del objeto que representan: color, material, calidad, precio… de forma que un símbolo de AutoCAD puede contener toda la información necesaria para designar unívocamente la realidad representada. Y lo que es mejor, toda esa información se puede extraer del dibujo mediante el uso de AutoLISP, bien para su uso con el propio programa, como para su tratamiento por programas distintos: procesadores de texto, hojas de cálculo, programas de mediciones y presupuestos, etc. Con ello, el uso de AutoLISP podría permitirnos, desde redactar la memoria de un proyecto, hasta hacer su valoración completa, nada más usando la información contenida en los dibujos de AutoCAD.

AutoLISP permite abordar desde programas muy sencillos -por ejemplo que permitan cambiar las propiedades de las entidades de un dibujo o contar sus concurrencias- hasta programas de enorme complejidad y sofisticación, como el cálculo de las tuberías de una instalación de calefacción o la evaluación de las pérdidas caloríficas de un edificio.

AutoCAD es un programa muy versátil, su propósito es generalista, permite cualquier tipo de diseño, pero no está concebido para un uso en particular. Se puede usar para diseño arquitectónico o para representación topográfica, para diseño industrial o para representación de circuitos electrónicos. Y lo que es una ventaja por su arquitectura flexible, puede ser una desventaja por su falta de especificidad. Afortunadamente AutoCAD puede ser configurado de forma que se adapte al propósito con que cada uno lo use y además, su arquitectura abierta le permite ser utilizado para multitud de operaciones que en otros sistemas CAD deben realizarse mediante programas externos. Con AutoLISP podrás implementar muchas de esas potencialidades, desde crear tus propias órdenes en línea que sustituyan a rutinas frecuentes, hasta configurar entornos de trabajo y verdaderos programas de procesamiento y cálculo integrados en el dibujo.

No hay comentarios:

Publicar un comentario