El valor que requiere Delay es un entero que representa tiempo en mili segundos, o sea que Delay = 1000 = 1 segundo.
GB-Lisp
Vamos a programar en AutoLisp!!
sábado, 12 de septiembre de 2015
Delay
En ocasiones queremos guardar datos de un objeto que ha sido modificado y observamos que se guardan los datos pero con la situación anterior. Lo que yo he hecho es que posteriormente a la modificación de ese objeto (su ubicación, escala, rotación etc.) aplico el comando "Delay" que detiene una fracción de tiempo la rutina para obtener los datos de la nueva situación del objeto en cuestión.
martes, 26 de noviembre de 2013
Funciones de AutoLisp. Símbolos.
Símbolos.
Suma los argumentos proporcionados.
Argumentos:
n = números
Son requeridos dos o más argumentos.
Notación:
(+ n1 n2 n3 ...)
Ejemplos:
(+ 5 3)
8
(+ 5 3)
8
-------------------------------------------------------------------------
-
Resta al primer argumento los demás que se le proporcionen.
Argumentos:
n = números
Son requeridos dos o más argumentos, pero si se proporciona solo uno el resultado será el negativo de ese número.
Notación:
(- n1 n2 n3 ...)
Ejemplos:
(- 5 3)
(- 5 3)
2
(- 5)
-5
-------------------------------------------------------------------------
*
Multiplica los argumentos proporcionados.
Argumentos:
n = números
Son requeridos dos o más argumentos.
Notación:
(* n1 n2 n3 ...)
Ejemplos:
(* 5 3)
(* 5 3)
15
(* 2 3 5)
30
(* 2 3 5)
30
-------------------------------------------------------------------------
/
Divide el primer argumento por la multiplicación de los demás argumentos.
Argumentos:
n = números
Son requeridos dos o más argumentos.
Notación:
(* n1 n2 n3 ...)
Ejemplo2:
(/ 15 3)
(/ 15 3)
5
(/ 30 2 3)
5
(/ 30 2 3)
5
-------------------------------------------------------------------------
=
Comprueba la igualdad entre los argumentos que se proporcionen.
Argumentos:
n = números, cadenas
Son requeridos dos o más argumentos. Las cadenas con mayúsculas no se consideran como igual con las minúsculas. El resultado es T si los argumentos son iguales y nil si alguno de los argumentos es diferente de los demás.
Notación:
(* arg1 arg2 arg3 ...)
Ejemplos=
(= 5 5)
T
(= 12 5)
nil
(= "Casa" "casa")
nil
(= 5 5)
T
(= 12 5)
nil
(= "Casa" "casa")
nil
-------------------------------------------------------------------------
/=
Comprueba la desigualdad entre los argumentos que se proporcionen.
Argumentos:
var = números o cadenas
Son requeridos dos o más argumentos. El resultado es T si todos los argumentos son diferentes y nil si todos los argumentos o alguno de ellos en caso de ser más de dos son iguales.
Notación:
(* var1 var2 var3 ...)
Ejemplos=
(/= 5 5)
nil
(/= 5 5 5 5 2)
nil
(/= 12 5)
T
(/= 5 6 7 8 9 10)
T
(/= "Casa" "casa")
T
jueves, 5 de agosto de 2010
3DNOW
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.
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.
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.
Suscribirse a:
Entradas (Atom)