Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autolisp PDF
Autolisp PDF
CONTENIDO
PREÁMBULO 5
OBJETIVOS 7
INTRODUCCIÓN 7
LISTAS: 9
ÁTOMOS: 9
SET: 10
SETQ: 11
CREACIÓN DE PROGRAMAS 12
DEFUN : 14
A) CUANDO SE DEFINE EL NOMBRE DE UN PROGRAMA: 14
B) CUANDO DE DEFINE ALGUNA SUBRUTINA: 15
REPEAT: 15
WHILE: 16
Capacitación Página 1
Laboratorio de cómputo de ingeniería Curso de AutoLISP
MANEJO DE MENSAJES 16
FUNCIONES EN AUTOLISP 18
FUNCIONES BASICAS 22
FUNCIONES ARITMÉTICAS 23
ABS : (ABS N) 23
EXP : (EXP N) 23
EXPT : (EXPT N P) 24
GCD : (GCD A B C) 24
LOG: (LOG N) 24
MAX : (MAX A B C ...) 24
MIN : (MIN A B C ...) 25
REM : (REM X Y) 25
SQRT: (SQRT X) 25
FUNCIONES TRIGONOMÉTRICAS 25
ATAN : (ATAN X) 25
COS : (COS X) 26
SIN : (SIN X) 26
Capacitación Página 2
Laboratorio de cómputo de ingeniería Curso de AutoLISP
AND: 27
OR: 27
FUNCIONES DE CADENA 28
FUNCIONES DE CONVERSIÓN 29
OPEN 31
CLOSE (CLOSE ARCHIVO) 31
FINDFILE (FINDFILE ARCHIVO) 31
LOAD (LOAD"PROGRAMA.LSP") 32
READ (READ CADENA) 32
READ-LINE (READ-LINE ARCHIVO) 32
WRITE-LINE (WRITE-LINE ARCHIVO) 32
FUNCIONES DE DEPURACIÓN 33
Capacitación Página 3
Laboratorio de cómputo de ingeniería Curso de AutoLISP
FUNCIONES VARIAS 33
TEXTSCR (TEXTSCR) 33
GRAPHSCR (GRAPHSCR) 33
VER (VER) 33
QUIT, EXIT 33
Capacitación Página 4
Laboratorio de cómputo de ingeniería Curso de AutoLISP
CURSO DE AUTOLISP
PREÁMBULO
El presente desarrollo tiene como objetivo el conocer ampliamente la forma en que están
interrelacionados los archivos del programa, directorios, menús, utilerías e iconos; todo
esto para facilitar la familiarización del usuario con el paquete y poderle permitir detectar
errores y fallas, así como una ágil localización de las mismas.
Algunos archivos importantes, son todos aquellos del formato ACAD*.*, ya que se trata
de archivos que cuentan con parámetros de funcionamiento propios del programa, se
pueden citar los siguientes:
Capacitación Página 5
Laboratorio de cómputo de ingeniería Curso de AutoLISP
ACAD.DWG: Es el archivo en el que se encuentran las opciones que por default siempre
están activadas al iniciar un dibujo nuevo, tales como la opción de desactivar las marcas de
la pantalla con el comando BLIPMODE (OFF), para evitar llenar nuestra pantalla de
marcas (cruces) cada vez que se ejecute algún comando (EJ. Line)
ACAD.EXE: Archivo ejecutable con el que corre el programa, debiendo de ser invocado
por el ACADR12.BAT para dar de alta las configuraciones de rutas de búsqueda de
información.
ACAD.LIN: Archivo que contiene la información referente a los tipos de línea manejados por
AUTOCAD.
ESTRUCTURA DE DIRECTORIOS
Capacitación Página 6
Laboratorio de cómputo de ingeniería Curso de AutoLISP
REQUERIMIENTOS DE AUTOLISP
OBJETIVOS
• Extender las posibilidades gráficas del AUTOCAD para fines prácticos, como una
herramienta auxiliar en el diseño y solución de problemas. Dar a conocer a los alumnos
los alcances y las limitaciones de la programación en AUTOLISP.
• Al término del presente curso, los alumnos serán capaces de diseñar aplicaciones
especificas de acuerdo a sus necesidades gráficas y de dibujo en AUTOCAD.
INTRODUCCIÓN
Este lenguaje es utilizado para generar rutinas orientadas al uso especifico del
AUTOCAD. Permite desarrollar programas y funciones para el manejo de entidades de tipo
gráfico.
Capacitación Página 7
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Como puede darse cuenta el usuario, dicho lenguaje de programación es propio del programa
de CAD de AUTODESK (AUTOCAD), por lo que su uso se limita a implementar
aplicaciones específicas de acuerdo a las necesidades del usuario a un problema de
diseño o de dibujo determinado, valiéndose de todas la funciones y herramientas de
dibujo que proporciona el AUTOCAD, logrando obtener soluciones muy poderosas dentro
de este ambiente.
Para aquellos usuarios que están muy familiarizados con la programación en los
lenguajes BASIC y C, el AUTOLISP les resultara muy semejante y de gran simplicidad, ya
que su estructura, forma de validar variables, algoritmos y secuencias lógicas son muy
parecidas; con las distinción de que aquí por lo general se emplearan artificios para obtener
elementos de dibujo de AUTOCAD, tales como líneas, arcos, polilíneas, elipses, etc.
Hay que tomar en cuenta que el número más pequeño que se puede manejar dentro de
AUTOLISP es: -32768 y el más grande: +32767, lo cual se debe de tener siempre presente
cuando se editen fórmulas o se validen variables, ya que de existir un número fuera de ese
rango, se cerrara a los valores anteriormente mencionados.
En comparación con otros lenguajes de programación, en AUTOLISP no se nombran los
renglones de programa con algún número que los anteceda para registrarlos (P.ej: BASIC,
FORTRAN), sino que los programas se efectúan de acuerdo al orden en que están
invocadas sus subrutinas y a su vez, en el orden en que se escriben los renglones.
Antes de cualquier cosa, hay que tener en cuenta que AUTOLISP difiere entre el uso de
las mayúsculas y minúsculas, siendo muy importante considerar esto cuando se definan
variables o nombres de subrutinas.
Por lo que se recomienda que siempre se escriban este tipo de datos con MAYÚSCULAS
para facilitar la programación y evitar posibles confusiones en el uso de la notación.
Capacitación Página 8
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Los principales tipos de variables empleados, y sus formas de expresión más sencillas
son los siguientes:
LISTAS:
Son cadenas de elementos, entre paréntesis, separados entre sí por espacios. Dichos
elementos pueden ser variables de tipo numérico, alfanumérico, o validaciones de las mismas.
Ej. (A B C D E)
Es una lista que contiene 5 elementos, que son: A, B, C, D y E, separados cada uno de
ellos entre paréntesis y todos ellos entre paréntesis. Aquí dichos elementos pueden ser
variables.
ÁTOMOS:
Son por lo general los elementos de las listas, y se identifican por que no existen espacios
entre sus caracteres.
Es una lista formada por dos tomos (ABC y DEF) de 3 caracteres cada uno.
Como se verá más adelante, la instrucción SETQ nos permite guardar en una variable el
contenido de otra o de alguna serie de operaciones, y se vuelve indispensable su uso, cuando
se editan fórmulas.
(SETQ Y (+ (* M X) B))
Capacitación Página 9
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Hay que notar, que para editar las fórmulas, hay que hacer un uso muy extensivo y apropiado
de los paréntesis para que la fórmula exprese lo que necesitamos. En este caso, en el primer
juego de paréntesis se hace el producto de M * X, en el segundo se suma el resultado del
primero al valor de la variable B, y posteriormente en la variable Y se almacena toda la
operación completa.
Otro ejemplo, puede ser el hecho de que se requiera emplear la fórmula para el cálculo
de la pendiente de la recta, M = (Y2 - Y1) / (X2 - X1), la línea de programación en
AUTOLISP es la siguiente:
Las instrucciones fundamentales que nos permiten dar valores a las variables, son las
siguientes:
SET:
Es una instrucción que asigna el valor de una determinada expresión a un símbolo
determinado.
Capacitación Página 10
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Su sintaxis es la siguiente:
(SET A 5)
El inconveniente de emplear esta instrucción consiste en que sólo se puede asignar valor a
una variable por cada comando, es decir, por cada línea de programación, siendo este
de tipo numérico exclusivamente (dato o fórmula).
SETQ:
Funciona de manera semejante a SET, pero con la diferencia de que permite validar varias
variables al mismo tiempo, haciendo esto a la manera de una LISTA, pudiendo guardar
textos en las variables. Su sintaxis es la siguiente:
Ej. Si se quisiera guardar el texto: "SALLE" en la variable "B", y el número "5" en la variable
"A", empleando una sola línea, dicha línea de nuestro programa seria la siguiente:
(SETQ A 5 B "SALLE")
Aqui se tienen 4 átomos en una lista, donde con el comando SETQ realizamos la
validación de las variables de interés por parejas, así que es importante considerar el orden
que se emplea en escribir dicha información.
Análogamente, si quisiéramos validar en una misma línea: A=1, B=2, C=3, nuestra línea de
programación sería:
(SETQ A 1 B 2 C 3)
Capacitación Página 11
Laboratorio de cómputo de ingeniería Curso de AutoLISP
CREACIÓN DE PROGRAMAS
El archivo del programa se deber hacer en algún procesador de textos o editor de sistema
operativo, salvándose en la modalidad de sólo texto con extensión *.lsp, un ejemplo puede
ser el siguiente.
; UNIVERSIDAD LA SALLE
; PROGRAMA HECHO POR .....
(DEFUN C:NOMBRE()
(ALGORITMOS O SECUENCIAS)
...
...
)
En donde "NOMBRE" es el nombre con el cual deseamos que sea reconocido nuestro
programa como un comando adicional del AUTOCAD, algoritmos y secuencias son
procedimientos de programación que se requieran para inicializar una serie previa de
instrucciones (tales como dar valores a variables, definir límites del dibujo, número de
vistas, factores de textos o líneas, subrutinas, etc.)
Los ";" empleados, nos ayudan a escribir notas o mensajes dentro de nuestro programa, que
son ignorados al momento de ejecutar la aplicación. Esto con la finalidad de colocar
comentarios tales como el nombre del autor, descripción del programa o sus rutinas, etc.
Nótese la sintaxis requerida, cada línea de programa debe de llevar un paréntesis al inicio y
otro al final, de manera semejante el paréntesis que indica el inicio de la rutina principal
que contiene al nombre del programa, es cerrado al concluir este .
Hay que considerar que cada subrutina que se emplee más adelante requerir a su vez de
un paréntesis a su inicio, y otro a su terminación, al igual que líneas de programa que
contengan fórmulas.
Una vez hecho lo anterior, desde la línea de comandos de AUTOCAD, se llama al programa
de AUTOLISP de la siguiente forma:
(LOAD"NOMBRE.LSP")
Y una vez que fue cargado, aparece en pantalla el nombre con el cual AUTOCAD lo
reconoce, siendo éste el previamente definido por la función DEFUN C: NOMBRE
Capacitación Página 12
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Las subrutinas son partes de nuestro programa que nos permiten distribuir eficientemente
los pasos o tareas que los forman, por ejemplo se pueden destinar subrutinas para definir
valores fijos de variables, otras para pedir información al usuario, otras para hacer cálculos y
otras para trazar entidades de dibujo.
La sintaxis es muy semejante a la de la rutina principal, ya que aquí no se especificará la
definición de un nombre de programa. Un ejemplo puede ser una subrutina que trace una
línea a 2 puntos con coordenadas conocidas como 2,3 y 5,6:
(LINEA1()
(COMMAND "LINE" "2,3" "5,6" C)
)
Es importante señalar, que entre los paréntesis que están después del nombre de la subrutina,
se pueden escribir las validaciones de las variables que están interactivas entre el programa
principal y las subrutinas, requiriendo una estricta sintaxis y orden en el listado de las
mismas para lograr una ejecución eficiente del programa. Otra opción más fácil es dejar
vacío ese espacio para que AUTOLISP reconozca automáticamente este tipo de variables,
tal y como se hizo anteriormente.
Capacitación Página 13
Laboratorio de cómputo de ingeniería Curso de AutoLISP
DEFUN:
Es la instrucción empleada en la validación de programas y sus respectivas subrutinas, es
decir, le indica a AUTOLISP el nombre con el que se llama desde AUTOCAD un
programa de LISP y los nombres de sus rutinas.
(DEFUN C:NOMBRE()
:
)
Las instrucciones que definen lo que hace nuestro programa de AUTOLISP, se incluyen
donde se colocaron los puntos suspensivos y termina o se cierra el paréntesis que se abre
desde el DEFUN, pudiéndose llamar alguna subrutina, P.ej:
(DEFUN C:NOMBRE()
(INICIO)
:
)
En éste último ejemplo, nuestro programa se llama NOMBRE, y lo primero que hace al
ejecutarse, es ir a la subrutina INICIO y ejecutar las instrucciones ahí contenidas,
posteriormente regresar a esta rutina (PROGRAMA PRINCIPAL) y ejecutar las
instrucciones siguientes hasta concluirlas todas.
Capacitación Página 14
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Ejemplos:
(DEFUN INICIO()
:
)
REPEAT:
Instrucción que permite ejecutar un proceso o subrutina un determinado número de
veces, ejemplo:
(SETQ A 10)
(SETQ B 100)
(SETQ X 4)
(REPEAT X
(SETQ A (+ A 10))
(SETQ B (+ B 100))
)
En este ejemplo, se validan primero las variables A y B con 10 y 100 respectivamente, luego
se ejecuta cuatro veces el proceso de incrementar A en 10 y B en 100, de tal forma que
cuando termine el ciclo definido por el REPEAT, A valdrá 50 y B valdrá 500.
Capacitación Página 15
Laboratorio de cómputo de ingeniería Curso de AutoLISP
WHILE:
Funciona en forma semejante al REPEAT, pero efectúa algún ciclo sólo mientras se cumpla
algún tipo de condicionamiento, P.ej:
(SETQ A 1)
(WHILE (<= A 10)
:
(SETQ A (+ 1 A))
En este ejemplo, el ciclo definido por los puntos suspensivos, se ejecuta siempre y cuando
la variable A sea menor o igual a 10, por lo que es indispensable colocar dentro del proceso
repetitivo a un contador, o a algún otro tipo de validación para la variable A, para que ésta
cambie y la rutina no se efectúe en forma indefinida.
MANEJO DE MENSAJES
Dentro de AUTOLISP es posible mandar mensajes para ser leídos por el usuario de nuestros
programas, habiendo varias formas de hacerlo:
Un ejemplo puede ser el siguiente: Donde nuestro archivo de sólo texto se llama L0.LSP
; CURSO DE AUTOLISP
;
; ESTE PROGRAMA DIBUJA UNA LINEA DE LOS PUNTOS 2,3 A 5,6 Y
; DESPLIEGA UN MENSAJE DE AVISO CUANDO TERMINA.
(DEFUN C:L0()
(COMMAND "LINE" "2,3" "5,6" C)
(ALERT "Fin del trazo de la línea")
)
En este ejemplo, tenemos unas líneas al inicio de nuestro programa con comentarios que
serán ignorados por AUTOCAD al momento de ejecutar nuestro programa.
Capacitación Página 16
Laboratorio de cómputo de ingeniería Curso de AutoLISP
; CURSO DE AUTOLISP
;
; ESTE PROGRAMA DIBUJA UNA LINEA DE LOS PUNTOS 2,3 A 5,6 Y
; DESPLIEGA UN MENSAJE DE AVISO CUANDO INICIA Y CUANDO
TERMINA.
(DEFUN C:L0()
(PROMPT "\n DIBUJO DE 1 LINEA" )
(COMMAND "LINE" "2,3" "5,6" C)
(ALERT "Fin del trazo de la línea")
(PROMPT "\n FIN DEL PROGRAMA" )
)
Capacitación Página 17
Laboratorio de cómputo de ingeniería Curso de AutoLISP
FUNCIONES EN AUTOLISP
Son instrucciones que nos permiten pedir información para poderla almacenar
posteriormente en alguna variable. Dicha validación se hará siempre empleando la instrucción
SETQ vista anteriormente, donde se escribe en nuestra línea de programa primero SETQ y
el nombre de la variable deseada, luego la debida instrucción de entrada de datos con algún
comentario entre comillas, que es el que aparecerá como mensaje en la línea de comandos
de AUTOCAD.
La importancia de todas estas instrucciones consiste en que son la manera en que se puede
introducir información por el usuario una vez que se esta ejecutando algún programa de
AUTOLISP, para ser almacenada en alguna variable. De acuerdo al tipo de información
que se necesite, es la instrucción que se empleará, pudiendo ser alguna de las siguientes:
Capacitación Página 18
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Aquí lo que se está haciendo es que la computadora solicite al usuario dos puntos o
coordenadas, mediante la aparición de un texto en pantalla, que es el que se encuentra
entre comillas, posteriormente calcula la distancia entre ellos y lo almacena en la variable X.
Para efectos de comentarios o textos en combinación con este comando, se acostumbra usar
el comando PROMPT para enviar textos hacia la línea de comandos de AUTOCAD.
Capacitación Página 19
Laboratorio de cómputo de ingeniería Curso de AutoLISP
En este ejemplo, en la variable F se está almacenando el valor que en ese momento tenga la
variable PDMODE del SETVAR de AUTOCAD. Hay que recordar que dentro del
SETVAR, PDMODE define el estilo (tipo) de simbologías para dibujar puntos en alguna
coordenada.
Si PDMODE en ese instante tenía como valor 34 (correspondiente a un punto formado por
un círculo, una línea vertical y otra horizontal), entonces F tomará el valor de 34. Para la
utilización de GETVAR, resulta indispensable el conocimiento completo de todas las
variables que maneja AUTOCAD dentro del SETVAR, así como sus aplicaciones para fines
de dibujo.
EN GENERAL:
Cuando se especifique un tipo de dato a almacenar en una variable y el usuario proporcione
otro, AUTOLISP mandará un mensaje de error con el que le avisa al usuario.
Un caso común es el querer almacenar un texto en una variable empleando GETREAL,
querer almacenar un número fraccional empleando GETINT, etc.
Capacitación Página 20
Laboratorio de cómputo de ingeniería Curso de AutoLISP
FUNCIONES MATEMÁTICAS
Hay que notar que para cada una de las 4 funciones anteriores se pueden usar mas de 2
números dentro de los paréntesis, para realizar la operación deseada, algunos ejemplos son:
(- 50 40 2.5) Lo cual nos da la siguiente operación: (50 - 40) - 2.5, resultando 7.5 como valor
devuelto por AUTOLISP.
(/ 100 20 2) Da como resultado 2, ya que siendo enteros todos los números, AUTOLISP a
su vez devuelve un resultado entero.
Para obtener el resultado deseado de 2.5, la línea de programa sería: (/ 100.0 20.0 2.0),
hay que tomar en cuenta esto para las demás funciones.
En caso de que sólo se escriba un sólo número, lo devolverá como resultado para cualquiera
de estas funciones,
AUTOLISP también maneja el número 3.141592654, reconociéndolo como pi, de tal forma
que se puede usar como constante dentro de AUTOLISP.
Capacitación Página 21
Laboratorio de cómputo de ingeniería Curso de AutoLISP
FUNCIONES BÁSICAS
CAR:
Es una instrucción que sirve para analizar el primer valor de una lista, es decir, siempre nos
devuelve este valor.
En este caso, cuando se ejecuten dentro de algún programa estas 2 líneas, primero se
almacena en la variable P una lista de 3 valores que representa las coordenadas de un
punto, posteriormente en la variable X se guardar el valor de la coordenada X de ese punto.
CDR:
Funciona igual que CAR, pero con la diferencia que esta instrucción nos devuelve todos los
valores de una lista, exceptuando al primero.
LAST:
Esta instrucción nos devuelve el último valor de una lista. En nuestro ejemplo anterior, si
escribimos una línea de programa así:
(SETQ Z (LAST P))
LENGTH :
Es una instrucción que nos ayuda a conocer la extensión de una lista de datos, es decir, el
número de datos que contiene dicha lista.
Capacitación Página 22
Laboratorio de cómputo de ingeniería Curso de AutoLISP
FUNCIONES ARITMÉTICAS
Estas funciones se complementan con las anteriormente descritas, tales como la suma,
resta, multiplicación y división. Para utilizarse hay que seguir los criterios de uso de
paréntesis como en cualquier otro lenguaje de programación en el que se usen funciones de
este tipo.
Es importante señalar que para todas estas instrucciones en las que se emplean listas, dichas
listas deben ser por completo formadas por números o variables con contenido numérico, ya
que no es posible emplear variables con contenido alfanumérico para realizar este tipo de
operaciones. De manera semejante con aquellas que sólo usan una variable. El usuario
comprende que por ejemplo, no es posible sumar dos variables: X + Y, si X = "PERRO" y
Y = "GATO", necesariamente tienen que ser números reales.
No hay que olvidar, que al realizar alguna operación o función de tipo matemático, dicho
resultado se debe de almacenar en alguna otra variable, empleando SETQ.
ABS : (ABS n)
Función que como en otros lenguajes, muestra el valor absoluto de un número, por ejemplo:
En este ejemplo se está almacenando en X el número +21.365, puesto que el valor absoluto
siempre es positivo.
EXP : (EXP n)
Con esta instrucción se obtiene el número de Euler = 2.7182818 elevado a una potencia
"n" determinada, de tal forma que nos ayuda a obtener el antilogaritmo natural de un número.
Ejemplos: (EXP 1.0), nos devuelve el valor de 2.7182818
(EXP -0.4), nos devuelve el valor de 0.67032
Capacitación Página 23
Laboratorio de cómputo de ingeniería Curso de AutoLISP
EXPT : (EXPT n p)
Esta instrucción puede elevar un número "n" a una potencia "p",
Ejemplos: (SETQ X (EXPT 3 2)) Se almacena en X el valor de 3*3 = 9
GCD : (GCD a b c)
Es una instrucción que busca entre varios números (a, b, c,..,N) su máximo común
denominador,
Ejemplos:
(GCD 12 20)
Nos devuelve el máximo común denominador de los números almacenados en las variables
X, Y Z.
LOG: (LOG n)
Es una función que nos sirve para calcular el logaritmo natural de un número real, es decir,
usando al número de Euler como base, ejemplos:
(LOG 4.5) Nos devuelve:1.50408
Hay que tener cuidado de no usar números negativos para el cálculo de logaritmos, ya sea
cuando se usan variables o simplemente los números en las instrucciones de programa, por
que como ya todos sabemos, no es posible calcular logaritmos de números negativos y la
computadora nos manda algún mensaje de error.
Capacitación Página 24
Laboratorio de cómputo de ingeniería Curso de AutoLISP
REM: (REM X Y)
Esta función sirve para obtener el residuo de dos números, de tal forma que nos devuelve
el resto de la división de X entre Y.
SQRT: (SQRT X)
Función que calcula la raíz cuadrada positiva de un número real POSITIVO, ya que en el
AUTOLISP, no se usan los números de tipo complejo.
Como ya es sabido, la raíz cuadrada de 4 puede ser +2 y además -2, ya que al elevarlos al
cuadrado, ambas opciones nos dan 4. En AUTOLISP, la computadora siempre nos da el
valor positivo de una raíz cuadrada.
FUNCIONES TRIGONOMÉTRICAS
Hay que considerar, que siempre que se utilicen estas funciones, la computadora realiza los
cálculos en radianes, si se desea obtener o proporcionar a AUTOLISP un valor en grados,
hay que hacer las conversiones necesarias, considerando que 2PIradianes = 360 grados.
ATAN: (ATAN X)
Nos devuelve en radianes el valor del arco cuya tangente es un número, es decir: calcula
en radianes el valor del ángulo cuya tangente es el valor que estamos dando,
Capacitación Página 25
Laboratorio de cómputo de ingeniería Curso de AutoLISP
COS: (COS X)
Calcula el coseno de un número en radianes, su sintaxis es igual a la de ATAN.
Ejemplo: (SETQ X (COS pi)) Almacena en "X" el número -1.0, que es el coseno en
radianes de 3.141592654...
SIN: (SIN X)
Calcula la función seno de un número
AUTOLISP no cuenta con una instrucción para calcular la función TANGENTE, pero es
posible calcularla mediante la siguiente identidad trigonométrica:
El usuario puede programar una pequeña rutina que calcule la TANGENTE de cualquier
número en radianes.
Por lo general se emplean en combinación con funciones lógicas de tipo IF... THEN, en
donde si se cumple la condición se ejecuta lo incluido dentro del siguiente par de paréntesis,
de lo contrario se ejecuta lo incluido en la segunda pareja de paréntesis.
(IF (CONDICIONES)
(VERDADERO)
(FALSO)
)
(= NUMERO1 NUMERO2) Sirve para saber cuando 2 o más argumentos sean iguales,
Ejemplo:
(= 4 4.00) La máquina devuelve "T" (true), siendo verdadero el algoritmo
(= 499 500 499) Nos devuelve "Nil", siendo falso el argumento.
Capacitación Página 26
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Donde LISTA1 y LISTA2 son variables que contienen varios elementos, es decir, una lista
Análogamente, se sigue el mismo criterio de falso y verdadero como respuestas para los
siguientes:
(/= NUMERO1 NUMERO2) Para el caso en el que se quiera que sea verdadero cuando
2 números son diferentes.
AND:
Compara 2 o más expresiones, devolviendo verdadero solamente cuando todas las funciones
se cumplan.
(AND EXPRESION1 EXPRESION2...)
OR:
Compara 2 o más expresiones, devolviendo verdadero cuando por lo menos alguna de las
funciones se cumpla.
Se pueden realizar combinaciones de estas 2 para atender a las necesidades del usuario,
algunos ejemplos son:
Capacitación Página 27
Laboratorio de cómputo de ingeniería Curso de AutoLISP
En este último ejemplo E tomará el valor de 5 si se cumple alguna de las 2 condiciones de que
forzosamente A sea igual a B o que C sea igual a D.
Hay que notar la forma en que se realizan los arreglos de parejas de paréntesis, para evitar en
lo posible errores de sintaxis que sean laboriosos de localizar en algoritmos más complejos.
FUNCIONES DE CADENA
Capacitación Página 28
Laboratorio de cómputo de ingeniería Curso de AutoLISP
FUNCIONES DE CONVERSIÓN
Capacitación Página 29
Laboratorio de cómputo de ingeniería Curso de AutoLISP
ITOA
Trabaja en forma contraria a ATOI, este comando convierte un número entero, en un texto
(cadena).
Capacitación Página 30
Laboratorio de cómputo de ingeniería Curso de AutoLISP
OPEN
Permite abrir un archivo de sólo texto, en las siguientes variantes:
• En un modo que nos permite escribir en un archivo sin eliminar su contenido actual y
sin sobrescribirlo por completo, es decir: agregándolo al final del mismo.
Aquí la limitante es usar archivos de solo texto creados con COPY CON desde DOS, ya que
AUTOLISP no reconocería las marcas CONTROL+Z al final de dichos archivos y tendría
algunos problemas.
Capacitación Página 31
Laboratorio de cómputo de ingeniería Curso de AutoLISP
LOAD (LOAD"PROGRAMA.LSP")
Esta instrucción ya la habíamos definido previamente, ya que es la que se usa para cargar en
memoria los programas hechos en AUTOLISP.
Aquí, se almacena en la variable TEXTO la primera línea del archivo cuyo nombre está
almacenado en la variable ARCH. Si se ejecutara por segunda vez dentro de nuestro
programa, nos devolvería la segunda línea y así sucesivamente hasta llegar al final del
archivo.
Escribir la palabra HOLA en el archivo de texto abierto previamente, cuyo nombre esta
almacenado en la variable ARCH.
Capacitación Página 32
Laboratorio de cómputo de ingeniería Curso de AutoLISP
FUNCIONES DE DEPURACIÓN
FUNCIONES VARIAS
TEXTSCR (TEXTSCR)
Cambia al modo de texto de AUTOCAD, equivale a presionar F1 para cambiar del modo
gráfico al modo de texto.
GRAPHSCR (GRAPHSCR)
Cambia al modo gráfico de AUTOCAD, equivale a presionar F1 para cambiar del modo
de texto al modo gráfico.
VER (VER)
Nos muestra la versión actual de AUTOLISP que se está empleando, si se está empleando
el AUTOCAD 13, AUTOLISP nos devuelve el sig.
QUIT, EXIT
Son dos funciones que se usan para detener nuestro programa en un determinado punto y
regresar a la línea de comandos de AUTOCAD. Ambas hacen exactamente lo mismo:
Provocan un error que da por terminado un programa de AUTOLISP.
Capacitación Página 33
Laboratorio de cómputo de ingeniería Curso de AutoLISP
Créditos
Directorio
Ing. Edmundo Barrera Monsivais
Director de la Esc. de Ingeniería
Ing. Raúl Morales Farfán
Secretario de Talleres y Laboratorios
Ing. Luis M. Aguillón Banda
Jefe del Laboratorio de Cómputo de Ingeniería
Ing. Luis A. Torres López
Jefe del Área Académica y
Coordinación del Área de Prácticas
Realización:
Víctor Hugo Ortega Vega
Servicio Social (Ingeniería Electrónica )
Revisión
Liliana Vicenteño Loya
Asesor de la Coordinación del Área de Prácticas
Lourdes Revilla Avendaño
Colaboradora del Área de Prácticas
Diseño y Edición:
Capacitación Página 34