You are on page 1of 5

ProgramacIn

autocad

Programando en autoLISP
(2da Parte)
Lo prometido es deuda... Despus de muchas semanas, retomamos el tema de programacin en AutoLISP. Si ya olvidaste la primera parte, o si comienzas desde aqu, visita la seccin Recursos de la Comunidad Latinoamericana de Usuarios de Autodesk en Espaol y ah busca el recurso Programando en AutoLISP. En la primer parte, analizamos algunos de los fundamentos bsicos de AutoLISP y prometimos que a partir de esta parte comenzaramos a programar algo en AutoCAD, usando las herramientas bsicas de AutoLISP. Antes de iniciar, permtanme comentarles que es posible utilizar la programacin en AutoLISP en cualquiera de los programas basados en AutoCAD de la familia 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. Para fines prcticos, cuando hagamos referencia a AutoCAD, aplica a cualquiera de los programas compatibles de Autodesk. Bueno, entremos de lleno en la programacin. 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 extensin LSP, as al cargarlo en AutoCAD el sistema lo reconocer como una rutina. Comentarios en el cdigo En la primera parte hablamos de la importancia de mantener un cdigo debidamente estructurado y organizado. Esto nos permitir el poder analizar el cdigo en el futuro y no perdernos en este. Adems, es recomendable el realizar algunos breves comentarios en el cdigo, a fin de identificar las funciones que estamos usando, las acciones que deseamos realizar, o cualquier otra nota que deseemos colocar al cdigo. Para insertar una nota o comentario en el cdigo de AutoLISP, debemos de colocar un punto y coma - ; - al inicio de la lnea de cdigo y a continuacin escribir el comentario. Si hacemos un salto de lnea usando la tecla Intro, debemos de colocar otro punto y coma en la siguiente lnea si deseamos que el comentario contine. 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 <<Tu nombre aqu>> y este es mi primer programa en AutoLISP ;Con AutoLISP podemos generar nuestras propias rutinas de AutoCAD.

ProgramacIn
Es importante comentar que los comentarios en el cdigo no afectan la ejecucin del mismo, por lo que todo lo que est en una lnea que comience con ; se interpretar como comentario, sin importar que el texto incluya funciones de AutoLISP. Funciones de AutoLISP Las funciones de AutoLISP son las instrucciones que nos permitirn llegar a un resultado. Hay una enorme variedad de funciones cuya combinacin nos permitir lograr grandes cosas. En esta ocasin veremos algunas de las mas bsicas. Definir un nuevo comando Lo primero que haremos es definir un nuevo comando de AutoCAD. S, leste bien... Un nuevo comando! Lo mejor es que este nuevo comando har lo que nosotros deseamos que haga. Para ello usaremos una funcin de AutoLISP llamada DEFUN, lo que quiere decir Definir Funcin Ejemplo Hola Mundo! Cranme... Evit a toda costa usar este ejemplo, el cual es el mas utilizado para introducir la programacin de AutoLISP. Sin embargo, este ejemplo en s es el que permite aplicar funciones sencillas y, sobre todo, ver resultados de forma rpida (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 lnea de cdigo:
(defun C:Hola ()

autocad

Aqu hemos usado la funcin DEFUN (Las maysculas son irrelevantes) y hemos especificado mediante el modificador C: que esta funcin se ejecutar como un comando de AutoCAD. La palabra Hola que escribimos es el nombre de la funcin que estamos definiendo y es el nombre con el que llamaremos nuestro comando desde AutoCAD. Esto quiere decir que al teclear Hola (sin las comillas) en la lnea de comandos de AutoCAD, se ejecutar la funcin que hemos definido. Los dos parntesis despus de la palabra Hola representan las variables que hemos declarado en nuestra funcin. Por el momento no estamos declarando variables. Este tema lo analizaremos mas adelante. Notemos que iniciamos nuestro programa abriendo un parntesis. Como vimos en la parte 1, AutoLISP organiza su cdigo en parntesis y encierra las funciones o grupos de funciones en estos. Al terminar de definir una

ProgramacIn
funcin, debemos de cerrar el parntesis para completarla. En este caso podrn notar que no se ha cerrado el parntesis, esto es debido a que la funcin Hola contina en proceso de definicin y cerraremos el parntesis hasta el final. Sencillo, verdad? Sin embargo, hasta el momento nuestro comando no hace nada. Hagamos que ahora haga algo interesante, como mostrar un cuadro de dilogo con el texto que nosotros deseamos que se muestre. Escribiremos en nuestro archivo de texto la siguiente lnea:
;Hola, mi nombre es Natn y este es mi primer programa en AutoLISP ;Con AutoLISP podemos generar nuestras propias rutinas de AutoCAD. (defun C:Hola () (alert Hola Mundo)

autocad

Para fines prcticos y a fin de poder dar seguimiento completo a la totalidad de la funcin, en algunas ocasiones incluiremos en gris las lneas anteriores del cdigo. En esta ocasin estamos usando la funcin ALERT de AutoLISP, la cual hace aparecer un cuadro de dilogo con el mensaje que nosotros previamente especificamos, como el que se muestra a continuacin:

Todo lo que est entre las comillas se imprimir en el cuadro de dilogo, como podemos ver en el ejemplo. Adelante! Puedes probar con cualquier texto de tu eleccin. Notemos que hay una pequea sangra entre la lnea de la funcin DEFUN y la lnea de la funcin ALERT. Si bien, esta no es indispensable, nos ayudar a organizar las funciones anidadas que iremos creando en nuestros programas. Esto nos permitir identificar visualmente cundo comienza una funcin y cuando termina, as como las otras funciones que se desarrollan dentro de esta. Lo ltimo que necesitamos hacer es indicarle al sistema que hemos terminado de definir nuestra funcin denominada Hola. Para ello, cerraremos con el ltimo parntesis. En el ejemplo siguiente podremos ver la

ProgramacIn
totalidad del cdigo. Hemos marcado los pares de parntesis con un color distinto, para que identifiquemos con facilidad dnde inicia una funcin y dnde termina.
;Hola, mi nombre es Natn y este es mi primer programa en AutoLISP ;Con AutoLISP podemos generar nuestras propias rutinas de AutoCAD. (defun C:Hola () (alert Hola Mundo) )

autocad

Listo! Hemos definido 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 funcionando. 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 botn Load. En el recuadro ubicado en la parte inferior izquierda de la ventana veremos la leyenda PrimerPrograma.lsp successfully loaded, lo que quiere decir que la funcin se carg correctamente. Ahora solo falta ejecutar la funcin. Tecleamos Hola desde la lnea de comandos y presionamos Intro.

ProgramacIn
Wow! Nuestro programa funciona! Si hicimos todo correctamente, veremos aparecer en pantalla un cuadro de texto con la leyenda que hayamos definido en la funcin ALERT. Hemos definido y ejecutado nuestra primera rutina de AutoLISP. Es todo por el momento. Disfrutemos nuestro primer logro. Posteriormente veremos otras funciones que nos permitirn hacer muchas cosas, mucho mas interesantes que mostrar un cuadro de dilogo. Por lo pronto pueden enviar sus dudas o comentarios a natanvg@gmail.com Saludos! __ Natn Villarreal CAD Manager Coppel S.A. de C.V.

autocad

Resumen Nombre del comando: Hola Cdigo de la rutina:


;Hola, mi nombre es Natn 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

You might also like