¿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.