sábado, 6 de diciembre de 2008

¿Cómo funciona AutoLisp?

¿Cómo funciona autoLisp?

AutoLisp funciona por medio de listas que empiezan con el nombre de una función seguida de los argumentos requeridos.



(+ a b c ...)

aquí la función es "+" y los argumentos son "a", "b", c, etc. Esta función puede tener un número indeterminado de argumentos, hay funciones en la que están restringidos el numero de argumentos. Por ejemplo:



(getpoint)

esta función sirve para pedir un punto al usuario y no requiere argumentos, pero tiene la opción de poner una cadena de petición, escribe directamente en la linea de comandos de autocad lo siguiente:



(getpoint "\nDame el punto num 1:")

si no ponemos la petición saldría una línea en blanco en el área de comandos, pero al ponerle la petición ésta queda en espera hasta darle respuesta. Como nota, la diagonal invertida con "n" (\n) indican un salto de linea.



Al dar un punto la función devuelve una lista de números que indican las coordenadas "x", "y" y "z" del punto seleccionado. El valor obtenido se imprime en la pantalla. Si queremos asignar ese valor a una variable usaremos la función "setq" de la manera siguiente:



(setq pt1 (getpoint "\nDame el punto num 1:"))

al ejecutarse esta función quedará guardado en memoria el valor de la coordenada "p1".



Para guardar la coordenada pt2 sería:



(setq pt2 (getpoint "\nDame el punto num 2:"))

y ya queda también pt2 guardada en la memoria.



Para verificar que esos datos estén en memoria podemos usar la función "print" que imprime en pantalla el valor que se le indique:



(print pt1)

(print pt2)

y deben de salir los valores de pt1 y pt2.



Para utilizar los valores guardados en memoria dibujaremos una linea del "pt1" al "pt2"



(command "line" pt1 pt2 "")

siguiendo el mismo proceso que usamos al dibujar en autocad ubicaremos los argumentos después de la función "command". Las dobles comillas juntas indican un enter.



Hasta el momento todo lo que hemos escrito entre paréntesis y en negrillas se puede escribir directamente en la línea de comandos de autocad. Ahora vamos a hacerlo en forma.



Tecleamos vlisp para que se despliegue el editor de autolisp, damos "file/new" en el menú superior de comandos y después "file/save as..", se guarda en nuestra carpeta personalizada el archivo lin.lsp. Incluimos el listado siguiente:



(defun c:lin ()

(setq pt1 (getpoint "\nDame el punto num 1:"))

(setq pt2 (getpoint "\nDame el punto num 2:"))

(command "line" pt1 pt2 "")

)



una vez introducido el listado se guarda de nuevo y regresamos a autocad. Para cargar el programa tecleamos "appload", buscamos nuestro archivo, damos "load" y "close" y ya debemos de tener una nuevo comando activo, el comando "lin".



No tiene mucho chiste hacer programa que dibuje una línea pero este ejercicio es para principiantes desde cero. Seguiremos agregando información.

jueves, 20 de noviembre de 2008

Es fácil y divertido programar dentro de Auto CAD. Para programar se usa el leguaje AutoLisp. Simplemente escribe en la barra de comandos de autocad para ver como funcionan las instrucciones de AutoLisp:

command: (setq a 5)
command: (setq b 7)

ahora la variable "a" vale "5" y la "b" tiene un valor de "7".

Esto queda en la memoria de Auto CAD.

Ahora teclea:
command: (+ a b)

¡Ya estas programando! asi de sencillo es auto-lisp
Hagamoslo en forma:
En un archivo de texto teclea lo siguiente:

(defun c:suma ()
(setq a (getreal "\nValor de a: "))
(setq b (getreal "\nValor de b: "))
(+ a b)
)

Guárdalo con la extensión .lsp (puedes usar el bloc de notas y tambien puedes copiar el listado y pegarlo en la barra de comandos y el programita ya queda cargado en la memoria de autocad).

ahora, para llamar a tu programa teclea "appload" y busca tu archivo, una vez que lo cargues ya puedes usar dentro de autocad el comando suma.

Para los que ya saben algo de autolisp esto puede resultar muy fácil pero esto va dirigido a los que inician.