autocad ProgramacIón
Programando en aut uto oLISP (2da Parte) Lo prometido es deuda... Después de muchas semanas, retomamos el tema de programación en AutoLISP. Si ya olvidaste la primera parte, o si comienzas desde aquí, visita la sección Recursos de la Comunidad Latinoamericana de Usuarios de Autodesk en Español y ahí busca el recurso Programa Programando ndo en AutoLISP . En la primer parte, analizamos algunos de los undamentos básicos de AutoLISP y prometimos que a part ir de esta parte comenzaríamos a programar algo en AutoCAD, usando las herramientas básicas de AutoLISP. Antes de iniciar, permítanme comentarles que es posible utilizar la programaci programación ón en AutoLISP en cualquiera de los programas basados en AutoCAD de la amilia de Autodesk. Esto quiere decir que si tú eres usuario de AutoCAD, AutoCAD MAP, AutoCAD Civil, entre otros, puedes aplicar los mismos principios, del mismo modo, en cualquiera de estos programas programas.. Para fnes prácticos, cuando hagamos reerencia a AutoCAD a AutoCAD,, aplica a cualquiera de los programas compatibles de Autodesk. Bueno, entremos de lleno en la programación. Es hora de abrir el Block de Notas de Windows y guardar un nuevo archivo como PrimerPrograma.lsp. Es indispensable que al guardar el archivo lo hagamos con extensión LSP , así al cargarlo en AutoCAD el sistema lo reconocerá como una rutina. Comentarios en el código
En la primera parte hablamos de la importancia de mantener un código debidamente estructurado y organizado. Esto nos permitirá el poder analizar el código en el uturo y no perdernos en este. Además, es recomendable el realizar algunos breves comentarios en el código, a fn de identifcar las unciones que estamos usando, las acciones que deseamos realizar, o cualquier otra nota que deseemos colocar al código. Para insertar una nota o comentario en el código de AutoLISP, AutoLISP, debemos de colocar un punto y coma - ; - al inicio de la línea de código y a continuación escribir el comentario. Si hacemos un salto de línea usando la tecla Intro,, debemos de colocar otro punto y coma en la siguiente línea si deseamos que el comentario continúe. Intro En el archivo que hemos iniciado, procederemos a colocar un comentario sencillo. Teclea lo siguiente en el archivo del Block de Notas: ;Hola, mi nombre es <
> y aquí>> y este es mi primer programa en AutoLISP ;Con AutoLISP podemos generar nuestras propias rutinas de AutoCAD.
autocad ProgramacIón Es importante comentar que los comentarios en el código no aectan la ejecución del mismo, por lo que todo lo que esté en una línea que comience con ; se interpretará como comentario, sin importar que el texto incluya unciones de AutoLISP. Funciones de AutoLISP
Las unciones de AutoLISP son las instrucciones que nos permitirán llegar a un resultado. Hay una enorme variedad de unciones cuya combinación nos permitirá lograr grandes cosas. En esta ocasión veremos algunas de las mas básicas. Defnir un nuevo comando
Lo primero que haremos es defnir un nuevo comando de AutoCAD. Sí, leíste bien... ¡Un nuevo comando! Lo mejor es que este nuevo comando hará lo que nosotros deseamos que haga. Para ello usaremos una unción de AutoLISP llamada DEFUN , lo que quiere decir Defnir Función Ejemplo ¡Hola Mundo!
Créanme... Evité a toda costa usar este ejemplo, el cual es el mas utilizado para introducir la programación de AutoLISP. Sin embargo, este ejemplo en sí es el que permite aplicar unciones sencillas y, sobre todo, ver resultados de orma rápida (esto motiva a seguir avanzando). Usando el archivo de texto que ya tenemos abierto y al cual ya le agregamos algunos comentarios, escribiremos la siguiente línea de código: (defun C:Hola ()
Aquí hemos usado la unción DEFUN (Las mayúsculas son irrelevantes) y hemos especifcado mediante el modifcador C: que esta unción se ejecutará como un comando de AutoCAD. La palabra Hola que escribimos es el nombre de la unción que estamos defniendo y es el nombre con el que llamaremos nuestro comando desde AutoCAD. Esto quiere decir que al teclear “Hola” (sin las comillas) en la línea de comandos de AutoCAD, se ejecutará la unción que hemos defnido. Los dos paréntesis después de la palabra Hola representan las variables que hemos declarado en nuestra unción. Por el momento no estamos declarando variables. Este tema lo analizaremos mas adelante. Notemos que iniciamos nuestro programa abriendo un paréntesis. Como vimos en la parte 1, AutoLISP organiza su código en paréntesis y encierra las unciones o grupos de unciones en estos. Al terminar de defnir una
autocad ProgramacIón unción, debemos de cerrar el paréntesis para completarla. En este caso podrán notar que no se ha cerrado el paréntesis, esto es debido a que la unción Hola continúa en proceso de defnición y cerraremos el paréntesis hasta el fnal. Sencillo, ¿verdad? Sin embargo, hasta el momento nuestro comando no hace nada. Hagamos que ahora haga algo interesante, como mostrar un cuadro de diálogo con el texto que nosotros deseamos que se muestre. Escribiremos en nuestro archivo de texto la siguiente línea: ;Hola, mi nombre es Natán y este es mi primer programa en AutoLISP ;Con AutoLISP podemos generar nuestras propias rutinas de AutoCAD. (defun C:Hola () (alert “Hola Mundo”)
Para fnes prácticos y a fn de poder dar seguimiento completo a la totalidad de la unción, en algunas ocasiones incluiremos en gris las líneas anteriores del código. En esta ocasión estamos usando la unción ALERT de AutoLISP, la cual hace aparecer un cuadro de diálogo con el mensaje que nosotros previamente especifcamos, como el que se muestra a continuación:
Todo lo que esté entre las comillas se imprimirá en el cuadro de diálogo, como podemos ver en el ejemplo. ¡Adelante! Puedes probar con cualquier texto de tu elección. Notemos que hay una pequeña sangría entre la línea de la unción DEFUN y la línea de la unción ALERT. Si bien, esta no es indispensable, nos ayudará a organizar las unciones anidadas que iremos creando en nuestros programas. Esto nos permitirá identifcar visualmente cuándo comienza una unción y cuando termina, así como las otras unciones que se desarrollan dentro de esta. Lo último que necesitamos hacer es indicarle al sistema que hemos terminado de defnir nuestra unción denominada Hola. Para ello, cerraremos con el último paréntesis. En el ejemplo siguiente podremos ver la
autocad ProgramacIón totalidad del código. Hemos marcado los pares de paréntesis con un color distinto, para que identifquemos con acilidad dónde inicia una unción y dónde termina. ;Hola, mi nombre es Natán y este es mi primer programa en AutoLISP ;Con AutoLISP podemos generar nuestras propias rutinas de AutoCAD. (defun C:Hola () (alert “Hola Mundo”) )
¡Listo! Hemos defnido nuestra primera rutina para AutoCAD. No olvidemos guardar los cambios en el archivo en donde estuvimos trabajando. Ha llegado el momento de cargar nuestro primer programa en AutoCAD y verlo uncionando. Para ello, abriremos AutoCAD y ahí tecleamos el comando APPLOAD, este abrirá una ventana como la siguiente:
Aquí buscaremos el archivo que hemos creado, el cual lleva por nombre PrimerPrograma.lsp (a menos que hayamos decidido usar otro nombre) Una vez encontrado el archivo, lo seleccionaremos y hacemos click en el botón Load. En el recuadro ubicado en la parte inerior izquierda de la ventana veremos la leyenda PrimerPrograma.lsp successfully loaded , lo que quiere decir que la unción se cargó correctamente. Ahora solo alta ejecutar la unción. Tecleamos Hola desde la línea de comandos y presionamos Intro.
autocad ProgramacIón ¡Wow! ¡Nuestro programa unciona! Si hicimos todo correctamente, veremos aparecer en pantalla un cuadro de texto con la leyenda que hayamos defnido en la unción ALERT . Hemos defnido y ejecutado nuestra primera rutina de AutoLISP. Es todo por el momento. Disrutemos nuestro primer logro. Posteriormente veremos otras unciones que nos permitirán hacer muchas cosas, mucho mas interesantes que mostrar un cuadro de diálogo. Por lo pronto pueden enviar sus dudas o comentarios a [email protected] ¡Saludos!
__ Natán Villarreal CAD Manager Coppel S.A. de C.V.
Resumen
Nombre del comando: Hola Código de la rutina: ;Hola, mi nombre es Natán y este es mi primer programa en AutoLISP ;Con AutoLISP podemos generar nuestras propias rutinas de AutoCAD. (defun C:Hola () (alert “Hola Mundo”) )
Funciones de AutoLISP usadas: DEFUN ; ALERT