Академический Документы
Профессиональный Документы
Культура Документы
PROGRAMACIN
AUTOLISP
a
Pa
T
T
cenp
(PERSONALIZACIN
DE AUTOCAD)
a/2
a/2
a/3
cen
a/2
a/12
a/2
ceng
a/12
a/3
a/12
Sistema de rectas
paralelas
Figura 2: Mosaico
P
Pa
Formas
homotticas
cen
a/3
a/3
rad
No basta el recuerdo
Cuando an queda tiempo
(Luis Cernuda)
INDICE:
2
2
2
3
3
3
4
4
4
3. EXPRESIONES DE AUTOLISP
5. FUNCIONES AUTOLISP
5.1. FUNCIONES ARITMTICAS
5.2. FUNCIONES DE ASIGNACIN
5.3. FUNCIONES PARA MANEJAR CADENAS DE TEXTO
5.4. FUNCIONES PARA GESTIN DE LISTAS
5.4.1. CREACIN DE LISTAS
5.4.2. EXTRACCIN DE ELEMENTOS DE UNA LISTA
5.4.3. MANIPULACIN DE LISTAS
5.5. FUNCIONES MONOLNEA
5.6. FUNCIONES DE CONVERSIN Y TRANSFORMACIN
5.7. FUNCIONES DE RELACIN
5.8. FUNCIONES DE CONDICIN
5.9. FUNCIONES PARA GESTIN DE CICLOS
5.10. FUNCIN PARA CREAR FUNCIONES DE USUARIO
5.11. FUNCIONES GRFICAS
5.12. FUNCIONES DE ENTRADA INTERACTIVA
5.13. FUNCIONES PARA GESTIN DE FICHEROS
5.14. FUNCIONES DE LECTURA Y ESCRITURA
5.14.1. ESCRITURA
5.14.2. LECTURA
5.15. FUNCIONES DE ORDENACIN
5.16. FUNCIONES DE CONTROL DE PANTALLA
5.17. OTRAS FUNCIONES DE UTILIDAD
7
8
12
13
15
15
16
18
20
21
24
27
28
30
31
32
39
41
41
42
44
45
46
48
48
48
49
50
59
8. NDICE DE FUNCIONES
63
9. BIBLIOGRAFA BSICA
63
ii
El cdigo de AutoLISP no se compila 1, se puede teclear el cdigo en la lnea de comandos y ver los
resultados inmediatamente hacindose ms sencilla la introduccin a este lenguaje para los no iniciados. En
un segundo nivel de aprendizaje resulta mucho ms fcil realizar pruebas y depurar cuando este cdigo se
carga desde un archivo, en lugar de volverlo a escribir cada vez que se realiza alguna modificacin.
El cdigo de AutoLISP se almacena en archivos de texto ASCII con la extensin *. lsp. La sintaxis de las
expresiones de AutoLISP escritas en los archivos es bsicamente la misma que se utiliza para escribirlas en
la solicitud de comando.
Se trabaja a este nivel docente sin compilar. Se recomienda consultar los manuales de VisualLISP de la versin 2000
de AutoCad o superior.
1
2.2. Cadenas
Las cadenas son grupos de caracteres delimitados por comillas.
Dentro de las cadenas que aparecen entre comillas: la contrabarra (\) permite incluir caracteres de
control (o cdigos de escape):
\\ para el carcter \
\e para el carcter ESC
\n para el salto de lnea
\r para RETURN
\t para tabulador
Las cadenas individuales tienen una limitacin de 132 caracteres.
Las cadenas entre comillas que se utilizan de forma explcita en expresiones de AutoLISP se conocen
como cadenas de texto o constantes de cadena.
Ejemplos de cadenas vlidas son "cadena 1" y "\nPrimer punto: ".
2.3. Listas
Las listas de AutoLISP son grupos de valores relacionados, separados por espacios en blanco (uno o
varios se interpretan como uno slo) e incluidos entre parntesis.
Las listas proporcionan un mtodo eficaz para almacenar numerosos valores relacionados.
AutoCAD expresa los puntos 3D como una lista de tres nmeros reales.
Ejemplos de listas son: (1.0 1.0 0.0), ("ste" "se" "aqul") y (1 "UNO").
2.8. Subrutinas
Es un smbolo con el nombre de una funcin predefinida por Autolisp. Pueden ser:
- Internas, cuando pertenecen al conjunto base de Autolisp, incluidas las definidas por el usuario.
- Externas, las que se han definido mediante otras aplicaciones ligadas a Autocad.
3. EXPRESIONES DE AUTOLISP
Las instrucciones contenidas en una rutina LISP se ejecutan secuencialmente; trabajan unas sobre lo
realizado por otras, los resultados de las instrucciones anteriores son usadas para llevar a cabo las
instrucciones subsiguientes.
Todas las expresiones de AutoLISP tienen, bsicamente, el siguiente formato:
(funcin argumentos)
Cada expresin comienza con un parntesis abierto y se compone de un nombre de funcin seguido de
una lista ordenada de argumentos para dicha funcin, cada uno de los cuales puede constituir una
expresin por s mismo. La expresin termina con un parntesis cerrado.
Cada expresin devuelve un valor que puede ser empleado por una expresin circundante (Anidacion
de expresiones); en caso de que no haya ninguna, AutoLISP devuelve el valor a la lnea de comando de
AutoCAD.
Por ejemplo, el siguiente cdigo incluye tres funciones.
(fun1 (fun2 argumentos)(fun3 argumentos))
La primera funcin, fun1, tiene dos argumentos, mientras que las otras dos, fun2 y fun3, tienen un
argumento cada una. Las funciones fun2 y fun3 estn delimitadas por la funcin fun1, por lo que sus valores
pasan a fun1 como argumentos. La funcin fun1 evala estos dos argumentos y devuelve el valor a la lnea
de comando.
Si se escribe una expresin de AutoLISP en la solicitud de comando de AutoCAD, AutoLISP la evala y
muestra el resultado, tras lo cual vuelve a aparecer la solicitud de comando.
El siguiente ejemplo ilustra el uso de la funcin *(multiplicacin), que acepta uno o ms nmeros reales
como argumentos.
Comando: (* 2 27)
54
Dado que este ejemplo no tiene expresin circundante, devuelve el resultado a la lnea de comando.
Las expresiones anidadas en otras expresiones devuelven sus resultados a la expresin circundante.
El siguiente ejemplo utiliza el resultado de la funcin + (suma) como uno de los argumentos de la
funcin * (multiplicacin).
Comando: (* 2 (+ 5 10) )
30
El formato completo que estudiaremos para cada funcin Autolisp es el siguiente:
5. FUNCIONES AUTOLISP
Las funciones proporcionadas por el lenguaje se pueden clasificar de la siguiente manera:
FUNCIONES BSICAS
FUNCIONES ARITMTICAS, ................................................................................................................... 8
FUNCIONES DE ASIGNACIN, ............................................................................................................. 12
FUNCIONES PARA MANEJAR CADENAS DE TEXTO, ....................................................................... 13
FUNCIONES PARA GESTIN DE LISTAS, ........................................................................................... 15
FUNCIONES MONOLNEA, .................................................................................................................... 20
FUNCIONES DE CONVERSIN Y TRANSFORMACIN, ..................................................................... 21
FUNCIONES DE RELACIN, ................................................................................................................. 24
FUNCIONES DE CONDICIN, ............................................................................................................... 27
FUNCIONES PARA GESTIN DE CICLOS, .......................................................................................... 28
FUNCIN PARA CREAR FUNCIONES DE USUARIO, ......................................................................... 30
FUNCIONES GRFICAS, ....................................................................................................................... 31
FUNCIONES DE ENTRADA INTERACTIVA, ......................................................................................... 32
FUNCIONES PARA GESTIN DE FICHEROS, ..................................................................................... 39
FUNCIONES DE LECTURA Y ESCRITURA, ......................................................................................... 41
FUNCIONES DE ORDENACIN, ........................................................................................................... 44
FUNCIONES DE CONTROL DE PANTALLA, ........................................................................................ 45
OTRAS FUNCIONES DE UTILIDAD, ..................................................................................................... 46
FUNCIONES AVANZADAS
devuelve 3
devuelve 10.5
devuelve 10.0
Sustrae n nmeros
Sintaxis: (- <n1> <n2> . . . )
Valor retornado: La diferencia entre el primer argumento y la suma de los restantes argumentos.
Ningn argumento devuelve Nil
(- 50 40)
(- 50 40.0)
(- 50 40.0 2.5)
(- 8)
devuelve
devuelve
devuelve
devuelve
10
10.0
7.5
-8
*
Multiplica nmeros
Sintaxis: (* <n1> <n2> . . . )
Valor retornado: Producto de todos los argumentos numricos. Ningn argumento devuelve Nil
(* 2 3)
(* 2 3.0)
(* 2 3 4.0)
(* 3 -4.5)
(* 3)
devuelve
devuelve
devuelve
devuelve
devuelve
6
6.0
24.0
-13.5
3
/
Divide nmeros
devuelve 50
devuelve 50.0
devuelve 2
devuelve 2.5
devuelve 4
devuelve 0
devuelve ERROR
devuelve 8.0
devuelve -4
devuelve -101
devuelve 3
1+
Incrementa un nmero en uno
Sintaxis: (1+ <n> )
Valor retornado = 1+n (entero o real segn n sea entero o real.)
(1+ 5)
(1+ -17.5)
devuelve 6
devuelve -16.5
devuelve 4
devuelve -18.5
ABS
Convierte un nmero a su valor absoluto
Sintaxis: (ABS <n> )
Valor retornado = el valor absoluto de n.
(abs 100)
(abs -100)
(abs -99.25)
devuelve 100
devuelve 100
devuelve 99.25
ATAN
Calcula el arcotangente
Sintaxis: (ATAN <n1> [n2]), donde los argumentos n1 y n2 se convierten en nmeros reales antes
de calcular el valor del arco tangente.
Valor retornado = Arco tangente de n1/n2. Valor en radianes entre -/2 y /2.
(atan 0.5)
(atan 1.0)
(atan -1.0)
(atan 2.0 3.0)
(atan 2.0 -3.0)
(atan 1.0 0.0)
(atan 1 2)
(atan (/ 1 2))
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
0.463648
0.785398
-0.785398
0.588003
2.55359
1.5708
0.463648
0.0
COS
Calcula el coseno de un ngulo expresado en radianes
Sintaxis: (COS <ang> )
Valor retornado = El coseno de ang
(cos 0.0)
(cos pi)
(cos (/ pi 3))
devuelve 1.0
devuelve -1.0
devuelve 0.5
SIN
Calcula el seno de un ngulo expresado en radianes
Sintaxis: (SIN <ang> )
Valor retornado = El seno de ang
(sin 1.0)
(sin 0.0)
(sin (/ pi 6))
devuelve 0.841471
devuelve 0.0
devuelve 0.5
EXP
Calcula el antilogaritmo neperiano de un numero
Sintaxis:(EXP <n> )
Valor retornado: nmero real igual a en
(exp 1.0)
(exp 2.2)
(exp -0.4)
devuelve 2.71828
devuelve 9.02501
devuelve 0.67032
EXPT
Calcula el resultado de elevar un nmero a una potencia
Sintaxis:(EXPT <base> <potencia>)
Valor retornado: nmero real o entero
(expt 2 4)
(expt 3.0 2.0)
devuelve 16
devuelve 9.0
GCD
Calcula el mximo comn denominador de dos enteros
Sintaxis: (GCD <n1> <n2>)
Valor retornado = El valor del mximo comn denominador.
(gcd 81 57)
(gcd 12 20)
devuelve 3
devuelve 4
LOG
Calcula el logaritmo neperiano de un nmero real
Sintaxis: (LOG <n> )
Valor retornado = Un nmero real.
(log 4.5)
(log 1.22)
(log 2.718281)
devuelve 1.50408
devuelve 0.198851
devuelve 1.0
MAX
Extrae el mayor valor de una serie de nmeros
Sintaxis: (MAX <n1> <n2> <n3>..)
Valor retornado = El mayor valor encontrado.
(max 4.07 -144)
(max -88 19 5 2)
(max 2.1 4 8)
devuelve 4.07
devuelve 19
devuelve 8.0
MIN
Extrae el menor valor de una serie de nmeros
Sintaxis: (MIN <n1> <n2> <n3>..)
Valor retornado = El menor valor encontrado.
(min 683 -10.0)
(min 73 2 48 5)
(min 2 4 6.7)
devuelve -10.0
devuelve 2
devuelve 2.0
MINUSP
Comprueba si un nmero es menor que 0
Sintaxis: (MINUSP <n> )
Valor retornado = T si el argumento n es un nmero y es negativo y nil en caso contrario.
(minusp -1)
(minusp -4.293)
(minusp 830.2)
devuelve T
devuelve T
devuelve nil
10
REM
Calcula el resto de la divisin entre dos nmeros
Sintaxis: (REM <n1> <n2>)
Valor retornado: El resto de dividir n1 entre n2.
(rem 42 12)
(rem 12.0 16)
(rem 26 7)
(rem 5 2)
(rem 26 7 2)
devuelve
devuelve
devuelve
devuelve
devuelve
6
12.0
5
1
1
SQRT
Calcula la raz cuadrada de un nmero
Sintaxis: (SQRT <n> )
Valor retornado = Un nmero real, raz cuadrada de n
(sqrt 4)
(sqrt 2.0)
devuelve 2.0
devuelve 1.41421
ZEROP
Comprueba si un nmero es 0
Sintaxis: (ZEROP <elemento>)
Valor retornado: T si el elemento es 0 y nil en caso contrario.
(zerop 0)
(zerop 0.0)
(zerop 0.0001)
devuelve T
devuelve T
devuelve nil.
NUMBERP
Comprueba si la evaluacin de una funcin es un nmero
Sintaxis: (NUMBERP <expresin>)
Valor retornado: T si la expresin evaluada es un numero y nil en caso contrario.
(setq a 123 b 'a)
(numberp 4)
(numberp 3.8348)
(numberp "Hola")
(numberp a)
(numberp b)
(numberp (eval b))
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
11
T
T
nil
T
nil
T
SETVAR
Cambia el valor de variables del sistema.
Sintaxis: (SETVAR <"nombre de la variable"> <nuevo valor> )
La variable del sistema no podr ser slo de lectura y el nuevo valor asignado ser de los que el
sistema pueda aceptar.
Valor retornado: El nuevo valor de la variable del sistema.
(setvar "blipmode" 0)
(setvar "pdmode" 34)
(setvar "pellipse" 3)
TYPE
Extrae el tipo de dato de un argumento.
Sintaxis: (TYPE <elemento>)
Valor retornado: El tipo de dato como una cadena en maysculas
REAL: numero entero
FILE: descriptor de fichero
STR: cadenas
INT: numero entero.
SYM: smbolos
LIST: listas y funciones de usuario
SUBR: funciones internas
PICKSET
ENAME
..........
Conjuntos de seleccin
Nombres de entidades
Los elementos que dan como resultado nil (como un smbolo no asignado) devuelven nil.
(setq a 123 r 3.45 s "Hola!" x '(a b c))
(setq f (open "nombre" "r"))
entonces:
(type 'a)
(type a)
(type f)
(type r)
(type s)
(type x)
(type +)
(type nil)
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
12
SYM
INT
FILE
REAL
STR
LIST
SUBR
nil
devuelve "EJEMPLO"
devuelve "ejemplo"
STRCAT
Empalma (concatena ) dos o ms cadenas
Sintaxis: (STRCAT <"cadena1"> ["cadena2"]...........)
Valor retornado: Una sola cadena empalmada.
(strcat "a" "cerca")
(strcat "a" "b" "c")
(strcat "a" "" "c")
devuelve "acerca"
devuelve "abc"
devuelve "ac"
STRLEN
Cuenta los caracteres de una cadena
Sintaxis: (STRLEN <"cadena">........)
Valor retornado: Un nmero entero.
Si se especifican varios argumentos cadena, la funcin devuelve la suma de las longitudes de todos
los argumentos. Si stos se omiten o se escribe una cadena vaca, el resultado es 0 (cero).
(strlen "abcd")
(strlen "ab")
(strlen "uno" "dos" "tres")
(strlen)
(strlen "")
devuelve
devuelve
devuelve
devuelve
devuelve
4
2
10
0
0
SUBSTR
Extrae una porcin de una cadena de caracteres.
Sintaxis: (SUBSTR <"cadena"> <inicio>[ long ])
inicio: nmero entero que indica la posicin del primer carcter a extraer.
long: longitud de la subcadena a extraer ( si no se da proporciona la subcadena desde la
posicin inicial hasta el final)
Valor retornado: La subcadena extrada.
(substr "abcde" 2)
(substr "abcde" 2 1)
(substr "abcde" 3 2)
(substr "abcde" 3 7)
(substr "hola" 5)
devuelve
devuelve
devuelve
devuelve
devuelve
13
"bcde"
"b"
"cd"
"cde"
"" (cadena vaca)
VL-PRINC-TO-STRING
Devuelve la representacin en cadena de caracteres de cualquier objeto Lisp como si fuera
presentada mediante la funcin princ.
Sintaxis: (VL-PRINC-TO-STRING <dato>)
Valor retornado: Una cadena de caracteres que contiene la representacin del dato tal y como la
mostrara la funcin princ.
(vl-princ-to-string 120)
(vl-princ-to-string 120.8)
(vl-princ-to-string abc)
(vl-princ-to-string (10 20))
devuelve
devuelve
devuelve
devuelve
120
120.8
abc
(10 20)
VL-LIST->STRING
Concatena los caracteres representados en una lista por sus cdigos numricos ASCII.
Sintaxis: (VL-LIST->STRING (entero ) )
Valor retornado: Una cadena formada por los caracteres cuyos cdigos ASCII se incluyen en la lista
pasada como argumento.
((vl-list->string (97 98 99 100) )
devuelve abcd
VL- STRING->LIST
Convierte una cadena de caracteres en una lista de los cdigos numricos ASCII correspondientes.
Sintaxis: (VL-STRING->LIST <cadena>)
Valor retornado: Una lista con los cdigos ASCII correspondientes a los caracteres que integran la
cadena.
((vl-string->list abcd ) devuelve (97 98 99 100)
14
devuelve (A B C D)
devuelve ((A)(B)(C)(D))
devuelve (3.9 6.7 10 20 30)
devuelve ((10) (20) (30) 10 20 30)
devuelve (10 20 30)
CONS
Aade al principio de una lista como primer elemento una expresin
Sintaxis: (CONS <expresin> <lista>)
Valor retornado: La nueva lista.
(cons 'a '(b c d))
(cons '(a) '(b c d))
devuelve (A B C D)
devuelve ((A) B C D)
La funcin CONS tambin acepta un tomo en lugar del argumento lista, en cuyo caso construye
una estructura denominada pares punteados. En los pares punteados, AutoLISP incluye un punto
entre el primer y el segundo elemento. Un par punteado es un tipo especial de lista, por lo que
algunas funciones que utilizan listas normales no los aceptan como argumento.
(cons 'a 2)
devuelve (A . 2)
LENGTH
Cuenta los elementos de una lista
Sintaxis: (LENGTH <lista>)
Valor retornado: El nmero entero correspondiente.
(length '(a b c d))
(length '(a b (c d)))
(length '())
devuelve 4
devuelve 3
devuelve 0
15
devuelve A
devuelve (A B)
devuelve nil
devuelve a
CDR
Extrae una nueva lista donde estn todos los elemento de la lista menos el primero.
Sintaxis: (CDR <lista>)
Valor retornado: la nueva lista. Si lista est vaca, CDR devuelve nil.
(cdr '(a b c))
(cdr '((a b) c))
(cdr '())
devuelve (B C)
devuelve (C)
devuelve nil
Para obtener el segundo tomo de un par punteado, se puede utilizar la funcin CDR.
(cdr '(a . b))
(cdr '(1 . "Texto"))
devuelve B
devuelve "Texto"
CADAAR
CADADR
CADAR
CADDAR
CADDDR
CADDR
CAAR
CDAAAR
CDAADR
CDAAR
CDADAR
CDADDR
CDADR
CADR
CDDAAR
CDDADR
CDDAR
CDDDAR
CDDDDR
CDDDR
CDAR
CDDR
Cada a representa una llamada a CAR y cada d representa una llamada a CDR. Por ejemplo:
(caar x)
(caar L4_2)
(cdar x)
(cadar x)
(cadr x)
(cadr L4_2)
(cddr x)
(caddr x)
es equivalente a
devuelve 10
es equivalente a
es equivalente a
es equivalente a
devuelve (20)
es equivalente a
es equivalente a
En AutoLISP, CADR suele utilizarse para obtener la coordenada Y de un punto 2D 3D (el segundo
elemento de una lista de dos o tres nmeros reales). De igual modo, CADDR puede utilizarse para
obtener la coordenada Z de un punto 3D. Por ejemplo, dadas las asignaciones:
(setq pt2 '(5.25 1.0))
(setq pt3 '(5.25 1.0 3.0))
(car pt2)
(cadr pt2)
(caddr pt2)
(car pt3)
(cadr pt3)
un punto 2D
un punto 3D
devuelve 5.25
devuelve 1.0
devuelve nil
devuelve 5.25
devuelve 1.0
16
(caddr pt3)
(car (cons 'a 2))
(cdr (cons 'a 2))
devuelve 3.0
devuelve A
devuelve 2
LAST
Extrae el ltimo elemento de una lista
Sintaxis: (LAST <lista>)
Valor retornado: el ltimo elemento de la lista.
(last '(a b c d e))
(last '(a b c (d e)))
(last pt3 )
(last L4_2)
devuelve E
devuelve (D E)
devuelve 3.0
devuelve (30)
NTH
Extrae un elemento de una lista a partir de especificar su posicin en ella (pos)
Sintaxis: (NTH <pos> <lista>)
Las posiciones dentro de la lista son numeradas de izquierda a derecha empezando por la posicin
0.
Valor retornado: El elemento encontrado, o un nulo si no se encontr.
(nth 3 '(a b c d e))
(nth 0 '(a b c d e))
(nth 5 '(a b c d e))
(nth 0 L4_2)
(nth 0 (car L4_2))
devuelve D
devuelve A
devuelve nil
devuelve (10)
devuelve 10
ASSOC
Localiza sublistas en una lista de asociaciones utilizando elemento como palabra clave, y donde
ste puede ser cualquier expresin vlida susceptible de aparecer como primer elemento de una de
las sublistas.
Lista de asociaciones: ( (clave1 inf1) (clave2 inf2...) (clave3 inf3..)........)
Sintaxis: (ASSOC <elemento> <lista de asociaciones>)
Valor retornado: La primera sublista encontrada. Si la clave no aparece devuelve nil
(setq pieza '((nombre CAJA) (ancho 3) (largo 4.7263) (alto 5)))
(assoc 'largo pieza)
devuelve (largo 4.7263)
(assoc 'peso pieza)
devuelve nil
Las listas de asociaciones se suelen utilizar para almacenar los datos a los que puede acceder
mediante una clave. La funcin SUBST proporciona un medio apropiado para sustituir el valor
asociado con una clave en una lista de asociaciones.
17
devuelve (C D E)
devuelve (20 30)
devuelve ((30))
devuelve nil
REVERSE
Invierte un lista
Sintaxis: (REVERSE <lista>)
Valor retornado: La lista con sus miembros en orden inverso.
(reverse '((a) b c))
devuelve (C B (A))
LISTP
Comprueba si un argumento es una lista
Sintaxis: (LISTP <expresin>)
Valor retornado: T si la expresin es una lista , nil en caso contrario.
(listp L8)
(listp "hola")
devuelve T
devuelve nil
SUBST
Busca en una lista un miembro especificado y sustituye cada aparicin de ste por otro especificado
Sintaxis: (SUBST <elemento nuevo> <elemento viejo> <lista>)
Valor retornado: La lista modificada.
(setq ejemplo '(a b (c d) b))
(subst 'qq 'b ejemplo)
(subst 'qq 'z ejemplo)
(subst 'qq '(c d) ejemplo)
(subst '(qq rr) '(c d) ejemplo)
(subst '(qq rr) 'z ejemplo)
devuelve
devuelve
devuelve
devuelve
devuelve
(A QQ (C D) QQ)
(A B (C D) B)
(A B QQ B)
(A B (QQ RR) B)
(A B (C D) B)
Cuando se utiliza conjuntamente con assoc, subst proporciona una forma til de sustituir el valor
asociado a una clave de una lista de asociaciones.
(setq lista '((a 10) (b 20)(c 30)))
18
FOREACH
Procesa uno a uno los elementos de una lista y evala cada expresin para cada uno de los
elemento de la lista
Sintaxis: (FOREACH <nombre-var> <lista> <expresin>.........)
Nombre-var: variable de memoria a la que FOREACH ligar secuencialmente los valores de la
lista suministrada y que normalmente ser usada en la expresin.
Valor retornado: El resultado de la ltima expresin evaluada.
Avanza por la lista, asignando un nombre-var a cada elemento y evala cada expresin para todos
los elementos de la lista. Se pueden especificar tantas expresiones como se desee. La funcin
FOREACH devuelve el resultado de la ltima expresin evaluada.
(setq
)
(foreach pto listap
(command _point pto)
)
equivale a dibujar una marca de punto en los puntos pt1 pt2 y pt3.
ATOM
Predicado que verifica si un elemento es un tomo, es decir, si no es una lista.
Sintaxis: (ATOM <item>)
Valor retornado: Nil si <item> es una lista; T en otro caso.
(setq a (x y z)
b 23)
(atom a)
(atom b)
devuelve nil
devuelve T
19
devuelve el resultado
1 + 2 + 3 = 6
MAPCAR
Devuelve el resultado de ejecutar la "funcin" tomando como argumentos de funcin los elementos
sucesivos de "lista 1" ............."lista n"
Sintaxis: ( MAPCAR <funcin> <lista 1> .................<lista n> )
Valor retornado: una lista con las sucesivas soluciones.
devuelve la lista (5 7 9)
(setq A 10 B 20 C 30)
(mapcar '1+ (LIST A B C)
Ejemplo anterior:
(setq L '( 1 2 3 4 5 6))
(mapcar '1+ L)
devuelve la lista (2 3 4 5 6 7)
LAMBDA
Define una funcin sin darle un nombre. El conjunto de expresiones se aplica sobre los argumentos
Sintaxis: ( LAMBDA < argumentos > < expresin >...............)
Valor retornado: el resultado de la ltima evaluacin.
Se suele utilizar combinada con APPLY y MAPCAR.
20
devuelve 3
devuelve 3
FLOAT
Convierte un nmero entero en real.
Sintaxis: (FLOAT <numero entero>)
Valor retornado: un numero real.
(float 3)
(float 3.75)
devuelve 3.0
devuelve 3.75
ATOI
Convierte una cadena de caracteres en un nmero entero
Sintaxis: (ATOI <cadena>)
Valor retornado: un nmero entero.
(atoi "97")
(atoi "3")
(atoi "3.9")
devuelve 97
devuelve 3
devuelve 3
Ejemplo de cdigo que introduce puntos en una lista solicitando el punto por su posicin en la lista.
(setq i 1 puntos nil)
(while (setq dato (getpoint (strcat "\npunto" (itoa i) ":")))
(setq puntos (cons dato puntos)
i (+ i 1)
)
)
(setq puntos (reverse puntos))
)
ATOF
Convierte una cadena de caracteres en un nmero real
Sintaxis: (ATOF <"cadena">)
Valor retornado: un nmero real.
(atof "97.1")
(atof "3")
(atof "3.9")
devuelve 97.1
devuelve 3.0
devuelve 3.9
ITOA
Convierte un entero en una cadena de caracteres
Sintaxis: (ITOA <entero>)
Valor retornado: una cadena de caracteres.
(itoa 33)
devuelve "33"
21
RTOS
Convierte un nmero real en una cadena de caracteres
Sintaxis: (RTOS <nmero> [modo [precisin]])
numero: nmero real (o entero que tomar como real)
modo (opcional): entero del 1 al 5 que determina el formato numrico de la cadena:
1. Unidades cientficas
2. Unidades decimales
3. Pies y pulgadas I (fraccin decimal)
4. Pies y pulgadas II (fraccin propia)
5. Unidades fraccionarias
precisin (opcional): entero que determina el nmero de decimales de precisin en la cadena
Si no se especifican los argumentos modo y precisin se asume el establecido por la variables de
Autocad LUNITS y LUPREC
Valor retornado: Una cadena de caracteres
Ejemplos: (RTOS 5.6 1 4) => 5.6000 E+00"
(RTOS 5.6 5 4) => 5 5/8"
DISTOF
Convierte un cadena en un nmero real, con un determinado formato de visualizacin.
Sintaxis: (DISTOF <"cadena"> [ modo])
Cadena: cadena de caracteres que expresa un valor numrico.
modo (opcional): entero del 1 al 5 que indica el formato numrico del nmero real expresado en
la cadena (El cdigo se corresponde con el dado en la funcin anterior), la funcin deber ser
capaz de interpretar el argumento cadena de acuerdo con el modo especificado:
Valor retornado: Un nmero real
ANGTOS
Convierte un nmero (que representa un ngulo en radianes) en una cadena de caracteres
Sintaxis: (ANGTOS <ngulo> [modo [precisin]])
angulo: valor del ngulo en radianes.
modo (opcional): entero del 0 al 4 que determina el formato numrico en la cadena:
0. Grados sexagesimales.
1. Grados, minutos y segundos
2. Grados centesimales.
3. Radianes
4. Unidades geodsicas.
precisin (opcional): entero que determina el nmero de decimales de precisin en la cadena.
Si no se especifican los argumentos modo y precisin se asume el establecido por la variables de
Autocad LUNITS y LUPREC
Valor retornado: Una cadena de caracteres.
Ejemplos: (ANGTOS 3.1416 0) => 180"
ANGTOF
Convierte una cadena de caracteres en un nmero real que representa un ngulo
Sintaxis: (ANGTOF <"cadena"> [ modo])
Cadena: cadena de caracteres que expresa un valor numrico de ngulo
modo (opcional): entero del 0 al 4 que indica el formato numrico del ngulo expresado en la
cadena (El cdigo se corresponde con el dado en la funcin anterior), la funcin deber ser
capaz de interpretar el argumento de la cadena de acuerdo con el modo especificado.
Si no se especifica el argumento modo se asume el establecido por la variable de Autocad
LUNITS
Valor retornado: Un valor correspondiente al numrico de un ngulo en radianes.
Ejemplos: (ANGTOF 180" 0) => 3.1416
ASCII
Convierte el primer carcter de una cadena de caracteres a su cdigo ASCII
Sintaxis: (ASCII <"cadena">)
Valor retornado: Un entero que representa el cdigo ASCII
(ascii "A")
(ascii "a")
(ascii "GRANDE")
devuelve 65
devuelve 97
devuelve 66
CHR
Convierte un nmero entero que representa un carcter ASCII en la cadena de un slo carcter
correspondiente
Sintaxis: (CHR <entero>)
Valor retornado: una cadena de un slo carcter.
(chr 65)
(chr 66)
(chr 97)
devuelve "A"
devuelve "B"
devuelve "a"
READ
Extrae datos de una cadena de caracteres
Sintaxis: (READ <"cadena">)
Valor retornado: El primer tem de una cadena de caracteres o la primera lista si la cadena contiene
listas.
(read hola a todos)
(read ( 20 30 40))
(read "\"Hola a todos\"")
(read "(a b c) (d)")
(read "1.2300")
(read "87 3.2")
hola
(20 30 40)
devuelve la cadena "Hola a todos"
devuelve la lista
(A B C)
devuelve el nmero real 1.23
devuelve el entero 87
TRANS
Transforma las coordenadas de un punto de un sistema de coordenadas a otro.
Sintaxis: (TRANS <lista de punto o desplazamiento> <codvie> < codnue> [desp] ).
codvie: cdigo que expresa el sistema de coordenadas en el cual se expresa el punto.
conue: cdigo que expresa el sistema de coordenadas en el cual se quiere expresar el punto
0. SCU
1. SCP
2. SCV (visualizacin)
3. SCV espacio papel
desp : si es distinto de nil entiende el primer argumento como un desplazamiento.
Valor retornado: Una lista de punto con sus coordenadas transformadas.
CVUNIT
Convierte un nmero o lista de nmeros de una unidad de medida a otra (Las cadenas que
representan unidades de medida vlidas en esta funcin estn almacenadas en el fichero
ACAD.UNT)
Sintaxis: (CVUNIT <n o lista> <cadvie> <cadnue>)
cadvie: cadena de unidad de medida vieja.
cadvie: cadena de unidad de medida nueva.
Valor retornado: Un nmero o lista de nmeros convertida a la unidad de medida nueva.
(cvunit 1 "minuto" "segundo")
(cvunit 1.0 "pulgada" "cm")
(cvunit 1.0 "acre" "yarda cuadrada ")
(cvunit '(1.0 2.5) "pie" "pulgada")
(cvunit '(1 2 3) "pie" "pulgada")
devuelve
devuelve
devuelve
devuelve
devuelve
23
60.0
2.54
4840.0
(12.0 30.0)
(12.0 24.0 36.0)
devuelve T
devuelve nil
devuelve T
devuelve nil
devuelve T
devuelve nil
/=
Comprueba la desigualdad numrica
Sintaxis: (/= <tomo> <tomo>)
Valor retornado: T si los dos argumentos (nmeros o cadenas de caracteres) no se evalan como
iguales numricamente, Nil en caso contrario
(/= 10 20)
(/= "t" "t")
(/= 5.43 5.44)
(/= 10 20)
devuelve
devuelve
devuelve
devuelve
T
nil
T
T
<
Comprueba la relacin menor que entre los argumentos
Sintaxis: (< <tomo> <tomo> <tomo>.)
Valor retornado: T si cada argumento es numricamente menor que el argumento de su derecha y
Nil en caso contrario.
(< 10 20)
(< "b" "c")
(< 357 33.2)
(< 2 3 88)
(< 2 3 4 4)
devuelve
devuelve
devuelve
devuelve
devuelve
T
T
nil
T
nil
>
Comprueba la relacin mayor que entre los argumentos
Sintaxis: (> <tomo> <tomo> <tomo>.)
Valor retornado: T si cada argumento es numricamente mayor que el argumento de su derecha y
Nil en caso contrario
(> 120 17)
(> "c" "b")
(> 3.5 1792)
(> 77 4 2)
(> 77 4 4)
(> Pablo pablo)
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
24
T
T
nil
T
nil
nil
<=
Comprueba la relacin menor o igual que entre los argumentos
Sintaxis: (<= <tomo> <tomo> <tomo>.)
Valor retornado: T si cada argumento es numricamente menor o igual que el argumento de su
derecha y Nil en caso contrario.
(<= 10 20)
(<= "b" "b")
(<= 357 33.2)
(<= 2 9 9)
(<= 2 9 4 5)
devuelve
devuelve
devuelve
devuelve
devuelve
T
T
nil
T
nil
>=
Comprueba la relacin mayor o igual que entre los argumentos
Sintaxis: (>= <tomo> <tomo> <tomo>.)
Valor retornado: T si cada argumento es numricamente mayor o igual que el argumento de su
derecha y Nil en caso contrario.
(>= 120 17)
(>= "c" "c")
(>= 3.5 1792)
(>= 77 4 4)
(>= 77 4 9)
devuelve
devuelve
devuelve
devuelve
devuelve
T
T
nil
T
nil
AND
Comprueba los valores de una serie de expresiones. (Y lgico)
Sintaxis: (AND <exp> <exp> <exp>.)
Valor retornado: T si todos los argumentos se evalan con un valor no nulo y Nil
contrario.
(and 1.4 2 "hola")
(and 1.4 ( = 3 4))
en caso
devuelve T
devuelve nil
OR
Comprueba de izquierda a derecha una serie de expresiones hasta hallar la primera que se evala
con un valor no nulo. (O lgico)
Sintaxis: (OR <exp> <exp> <exp>.)
Valor retornado: T si alguno de los argumentos se evala con un valor no nulo y Nil en caso
contrario.
(or 1.4 2 "hola")
(or 1.4 ( = 3 4))
(or nil 45 )
(or nil (= 3 4))
devuelve
devuelve
devuelve
devuelve
T
T
T
nil
NOT
Modifica el sentido de un predicado: lo que es cierto lo hace falso, y viceversa.
Sintaxis: (NOT <exp> )
Valor retornado: devuelve T si su argumento es falso y Nil si es cierto.
(not nil)
(not (= 3 4))
(not (= 4 4))
devuelve T
devuelve T
devuelve nil
25
EQ
Comprueba si los valores atribuidos a ambas expresiones son idnticas
Sintaxis: (EQ <exp> <exp> )
Valor retornado: T si las dos expresiones estn ligadas a los mismos datos y Nil en otro caso.
(setq f1 '(a b c))
(setq f2 '(a b c))
(setq f3 f2)
entonces:
(eq f1 f3)
(eq f3 f2)
EQUAL
Comprueba si dos expresiones se evalan con valores iguales
Sintaxis: (EQUAL <exp> <exp> [margen de error] )
Valor retornado: T si las dos expresiones se evalan igual y Nil en caso contrario.
Si las dos expresiones son nmeros reales se puede incluir un margen de error.
(setq f1 '(a b c))
(setq f2 '(a b c))
(setq f3 f2)
(setq a 1.123456)
(setq b 1.123457)
entonces:
(equal f1 f3)
(equal f3 f2)
(equal a b)
(equal a b 0.000001)
devuelve
devuelve
devuelve
devuelve
T
T
nil
T
=
Comprueba la igualdad numrica
Sintaxis: (= <tomo> <tomo> <tomo>.)
Valor retornado: T si todos los argumentos (nmeros o cadenas de caracteres) se evalan como
iguales numricamente Nil en caso contrario.
Las cadenas son comparadas en esta funcin y en las siguientes en base a su valor numrico
ASCII.
(= 4 4.0)
(= 20 388)
(= 2.4 2.4 2.4)
(= 499 499 500)
(= "yo" "yo")
(= "yo" "t")
devuelve T
devuelve nil
devuelve T
devuelve nil
devuelve T
devuelve nil
26
Como se muestra, COND se puede utilizar como una funcin de tipo case. Es habitual utilizar T
como ltima (por defecto) expresin de prueba.
Dada una cadena de respuesta de usuario en la variable s, esta funcin prueba la respuesta y
devuelve 1 si es Y o y, 0 si es N o n y nil en cualquier otro caso.
(cond
((= s "Y") 1)
((= s "N") 0)
(t nil)
((= s "y") 1)
((= s "n") 0)
)
IF
Evala una expresin Autolisp basndose en si una expresin de comprobacin inicial se evala
como no nula
Sintaxis: (IF <test> <expresin si test es /= nil > [expresin si test es = nil ] )
Valor retornado: El valor retornado por expresin evaluada; nil en otro caso.
(if (= 1 3) "S!!" "no.")
(if (= 2 (+ 1 1)) "S!!")
(if (= 2 (+ 3 4)) "S!!")
devuelve "no."
devuelve "S!!"
devuelve nil
PROGN
Evala secuencialmente una serie de expresiones.
Sintaxis: (PROGN <exp1> <exp2> )
Valor retornado: La ltima expresin evaluada.
Se puede utilizar PROGN para calcular varias expresiones cuando slo se espera una expresin.
(if (= a b)
(progn
(princ "\nA = B ")
(setq a (+ a 10) b (- b 10))
)
)
27
(setq L '( 1 2 3 4 5 6)
n (length L)
i 0
)
(repeat n
(setq elem (nth i L)
elem (1+ elem)
Ln (cons elem ln)
i (1+ i)
)
)
(setq L (reverse Ln))
(setq L '( 1 2 3 4 5 6)
n (length L)
Ln nil
)
(repeat n
(setq elem (car L)
L (cdr L)
elem (1+ elem)
Ln (cons elem ln)
)
)
(setq L (reverse Ln))
Ln nil
Devuelve la lista (2 3 4 5 6 7)
Devuelve la lista (2 3 4 5 6 7)
28
WHILE
Evala repetidamente una serie de una o ms expresiones Autolisp basndose en si una expresin
de comprobacin inicial se evala como un valor nulo o no nulo.
Sintaxis: (WHILE <test> <exp1> <exp2> )
Test: Expresin de comprobacin, que hace que las dems expresiones se evalen mientras
sta se mantenga distinta de Nil .
Valor retornado: El resultado de la ltima expresin evaluada
(setq a 10 )
(While (< a 100)
(setq a (+ a 10))
)
(setq L '( 1 2 3 4 5 6)
i0
(While (setq elem (nth i L))
(setq elem (1+ elem)
Ln (cons elem ln)
i (1+ i)
)
)
(setq L (reverse Ln))
Devuelve la lista (2 3 4 5 6 7)
Devuelve la lista (2 3 4 5 6 7)
Devuelve la lista (2 3 4 5 6 7)
(setq pt1 (getpoint "\npt1?:") pt2 (getpoint "\npt2?:") pt3 (getpoint "\npt3?:")
listap (list pt1 pt2 pt3)
)
(command "_pline")
(foreach punto listap (command punto))
(command "")
Equivale a dibujar una polilnea que pasa por los puntos
pt1 pt2 y pt3.
29
devuelve SUMA10
(SUMA_10 5)
devuelve 15
(SUMA_10 -7.4)
devuelve 2.6
devuelve PUNTOS
devuelve "a...b"
devuelve "de...a"
devuelve nil
Advertencia: No se debe utilizar nunca el nombre de una funcin interna o un smbolo como nombre
de funcin creada por el usuario, ya que quedara inaccesible.
30
devuelve 1.5708
devuelves 3.14159
DISTANCE
Calcula la distancia entre dos puntos
Sintaxis: ( DISTANCE <pt1> <pt2>)
Valor retornado: Un nmero real, que es la distancia en unidades de dibujo entre los dos puntos
suministrados como argumentos.
Si al menos uno de los puntos facilitados es un punto 2D, DISTANCE no toma en cuenta las
coordenadas Z de los puntos 3D especificados, y devuelve la distancia 2D entre los puntos,
proyectada sobre el plano de construccin actual.
(distance '(1.0 2.5 3.0) '(7.7 2.5 3.0)) devuelve 6.7
(distance '(1.0 2.0 0.5) '(3.0 4.0 0.5)) devuelve 2.82843
POLAR
Computa un punto en relacin a un punto dado.
Sintaxis: ( POLAR <pt> <ang> <dis>)
Valor retornado: Las coordenadas de un punto situado en el ngulo ang (radianes) y a una
distancia dis del punto pt todo ello con relacin al SCP actual. El ngulo siempre se refiere al
plano de construccin actual.
(polar '(1 1 3.5) 0.785398 1.414214)
(polar (1 1) (/ pi 2) 3)
INTERS
Calcula el punto de interseccin entre dos lneas
Sintaxis: ( INTERS <pt1> <pt2> <pt3> <pt4> [extend])
Valor retornado: Un punto que indica el punto de interseccin de la lnea definida por pt1 y pt2 y la
lnea definida por pt3 y pt4, si no se encuentra ningn punto de interseccin la funcin retorna un nil.
Extend: Si extend se evala como nil las lneas se prolongan hasta encontrar el punto de
interseccin, en caso contrario o si no se codifica, slo se busca la interseccin en la longitud
de los segmentos definidos por los puntos.
Todos los puntos se expresan respecto al SCP actual. Si los cuatro argumentos de puntos son 3D,
inters busca una interseccin 3D. Si hay algn punto 2D, inters proyecta las lneas sobre el plano de
construccin actual y slo busca una interseccin 2D.
devuelve nil
devuelve nil
devuelve (4.0 4.0)
31
GETDIST
Detiene la ejecucin del programa para que el usuario introduzca una distancia
Sintaxis: (GETDIST [pt] [mensaje])
pt: punto de base opcional
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud de la distancia
Valor retornado: Un nmero real.
El usuario no puede escribir otra expresin AutoLISP como respuesta a una peticin GETDIST.
(setq dist (getdist))
(setq dist (getdist '(1.0 3.5)))
(setq dist (getdist "A qu distancia? "))
(setq dist (getdist '(1.0 3.5) "A qu distancia? "))
GETANGLE
Detiene la ejecucin del programa para que el usuario introduzca un ngulo.
Sintaxis: (GETANGLE [pt] [mensaje])
pt: punto de base opcional
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud del ngulo
Valor retornado: El valor del ngulo en radianes.
La funcin GETANGLE mide los ngulos a partir de cero radianes (definidos mediante la variable de
sistema ANGBASE) aumentando en direccin opuesta a las agujas del reloj. El ngulo resultante se
expresa en radianes con respecto al plano de construccin actual (el plano XY del SCP actual, con
la elevacin actual).
El usuario no puede escribir otra expresin AutoLISP como respuesta a una peticin GETANGLE.
Para especificar un ngulo, el usuario debe escribir un nmero en el formato actual de unidades
angulares de AutoCAD. Aunque este formato puede utilizar grados, grados centesimales o cualquier
otra unidad, esta funcin siempre devuelve el ngulo en radianes. El usuario tambin puede
designar dos posiciones 2D en la pantalla grfica para indicar el ngulo a AutoLISP. AutoCAD dibuja
una lnea elstica desde el primer punto hasta la posicin del cursor en cruz con el fin de facilitar al
usuario la visualizacin del ngulo.
32
Es importante comprender la diferencia entre el ngulo indicado y el que devuelve GETANGLE. Los
ngulos que se transmiten a GETANGLE se basan en los valores actuales de ANGDIR y
ANGBASE. Sin embargo, una vez que se especifica el ngulo, ste se mide en direccin opuesta a
las agujas del reloj (sin tomar en cuenta el valor de ANGDIR), con cero radianes como valor actual
de ANGBASE. Los siguientes ejemplos de cdigo muestran cmo se pueden utilizar diferentes
argumentos.
(setq ang (getangle))
(setq ang (getangle '(1.0 3.5)))
(setq ang (getangle "Hacia dnde? "))
(setq ang (getangle '(1.0 3.5) "Hacia dnde? "))
GETORIENT
Detiene la ejecucin del programa para que el usuario introduzca un ngulo.
Sintaxis: (GETORIENT [pt] [mensaje])
pt: punto de base opcional
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud del ngulo
Valor retornado: El valor del ngulo en radianes .
Esta funcin se asemeja a GETANGLE, con la
diferencia de que el valor de ngulo devuelto por
GETORIENT no se ve afectado por las variables de
sistema ANGBASE y ANGDIR. Sin embargo, la
introduccin del ngulo por parte del usuario todava se
basa en los parmetros actuales de ANGDIR y ANGBASE.
.
La funcin GETORIENT mide los ngulos con una
direccin de cero radianes hacia la derecha (este) y los
ngulos que se incrementan en sentido contrario a las
agujas del reloj. Al igual que con GETANGLE,
GETORIENT expresa el ngulo resultante en radianes,
respecto al plano de construccin actual. Los ngulos que
se transmiten a GETORIENT se basan en los valores
actuales de ANGDIR Y ANGBASE. Sin embargo, una vez
proporcionado el ngulo, ste se mide en sentido contrario
a las agujas del reloj, con cero radianes a la derecha
(ANGDIR y ANGBASE se ignoran). Por ello, si selecciona
otra base de cero grados u otra direccin para los ngulos
que se incrementan, se debe utilizar el comando
UNIDADES o las variables de sistema ANGBASE y
ANGDIR para realizar la conversin necesaria.
Se recomienda el uso de GETANGLE para obtener un valor de rotacin (un ngulo relativo). Y de
GETORIENT para obtener una orientacin (un ngulo absoluto).
GETCORNER
Detiene la ejecucin del programa para que el usuario introduzca un punto, y traza un rectngulo de
banda elstica en la pantalla a medida que el usuario mueve el dispositivo sealador
Sintaxis: (GETCORNER <pt> [mensaje])
pt: Primera esquina del rectngulo.
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud de la otra esquina.
Valor retornado: El punto introducido por el usuario
33
GETVAR
Extrae un valor almacenado en una variable del sistema de AutoCAD
Sintaxis: (GETVAR <"nombre de variable">)
Valor retornado: valor de la variable del sistema especificada.
(getvar "pdmode")
(getvar "area")
(getvar "perimeter")
GETINT
Detiene la ejecucin del programa para que el usuario introduzca un nmero entero.
Sintaxis: (GETINT [mensaje])
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud del entero
Valor retornado: El entero introducido por el usuario.
El rango de valores pasados a GETINT puede ir de -32,768 a +32,767.
El usuario no puede escribir otra expresin de AutoLISP como respuesta a una peticin de GETINT.
(setq num (getint))
(setq num (getint "Escriba un nmero: "))
GETREAL
Detiene la ejecucin del programa para que el usuario introduzca un nmero real
Sintaxis: (GETREAL [mensaje])
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud del nmero real
Valor retornado: El real introducido por el usuario.
(setq val (getreal))
(setq val (getreal "Factor de escala: "))
GETSTRING
Detiene la ejecucin del programa para que el usuario introduzca una cadena de caracteres
Sintaxis: (GETSTRING [espacio] [mensaje])
Espacio: Si este argumento es distinto de nil la cadena introducida puede contener espacios en
blanco. (y debe finalizarse con RETURN ).
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud de la cadena
Valor retornado: La cadena introducida entrecomillada o una cadena vaca () si el usuario puls
Enter sin teclear caracteres.
Si tiene ms de 132 caracteres, la cadena slo devuelve estos caracteres. Si contiene el carcter de
contrabarra (\), ste se convierte en dos caracteres de contrabarra (\\). De esta manera, el valor
resultante puede incluir caminos de nombre de archivo a los que tienen acceso otras funciones.
(setq s (getstring "Escriba su nombre ")) Si se responde Juan se define s como "Juan"
(setq s (getstring T "Escriba su nombre completo: ")) Si responde Juan Daz Prez se define
como "Juan Daz Prez"
(setq s (getstring "Nombre de archivo: "))
"\\acad\\midibuj"
34
GETKWORD
Detiene la ejecucin del programa para que el usuario introduzca una cadena de caracteres. Esta
funcin comprueba la validez de lo introducido basndose en una lista de palabras vlidas
establecidas usando la funcin INIGET
Sintaxis: (GETKWORD [mensaje])
mensaje: cadena opcional que ser presentada en el rea de rdenes/peticiones de la pantalla,
en el momento de la solicitud de la cadena.
Valor retornado: La cadena introducida o Nil si el usuario puls Enter sin teclear caracteres
AutoCAD lo intenta de nuevo si la entrada no es una palabra clave. Si se trata de una entrada nula (
RETURN ), GETKWORD devuelve nil (siempre que se admitan entradas nulas). Esta funcin
tambin devuelve nil si antes no se ha realizado una llamada a INITGET que establezca una o
varias palabras clave.
El ejemplo siguiente muestra una llamada inicial a initget que define una lista de palabras clave (S y
No) y no admite entradas nulas (valor en bits igual a 1) en la siguiente llamada a getkword:
(initget 1 "S No")
(setq x (getkword "Seguro? (S o No) "))
Este mensaje solicita datos del usuario y define el smbolo x como S o No, segn la respuesta
proporcionada. Si sta no coincide con ninguna de las palabras clave o el usuario escribe un valor
nulo, AutoCAD vuelve a mostrar la cadena indicada en el argumento solicitud. Si no se especifica
este argumento, AutoCAD muestra lo siguiente:
Intntelo de nuevo:
INITGET
Establece las palabras clave que han de usarse con la siguiente llamada a una funcin introducida
por el usuario. Las funciones que toman en consideracin las palabras clave son getint, getreal,
getdist, getangle, getorient, getpoint, getcorner, getkword, entsel, nentsel y nentselp. La funcin
getstring es la nica funcin introducida por el usuario que no las admite.
Sintaxis: (INITGET [bits] [cadena])
Bits: El argumento bits es un nmero entero binario que admite o rechaza determinados tipos
de datos de usuario. Algunos de los valores que puede tomar junto a su significado asociado:
1: no permite nulos
2: no permite cero
4: no permite negativos
8: no chequea lmites del dibujo
64: devuelve una distancia 2D, en lugar de 3D.
Cadena: El argumento cadena define una lista de palabras clave.
Valor retornado: La funcin initget siempre devuelve nil.
Para ms informacin sobre la funcin se recomienda consultar el manual de personalizacin de
Autocad
35
GETFILED
Presenta un cuadro de dialogo de nombres de archivos y espera una entrada de usuario.
Sintaxis: (GETFILED <"dialogo"> <"nombre de Fichero por defecto" o ""> <"extensin" o "" (para. *)>
<parmetros>)
Parmetros:
dialogo determina el nombre del cuadro de dilogo,
nombre de Fichero por defecto especifica el nombre de archivo que se va a utilizar por defecto
extensin es la extensin por defecto del nombre del archivo. Si extensin se transmite como
una cadena nula [""], utiliza por defecto * (para todos los tipos).
parmetros es un valor entero (un campo codificado en bits) que controla el funcionamiento del
cuadro de dilogo. Para definir varias condiciones simultneamente, se aaden los valores en
conjunto y se crea un indicador con un nmero comprendido entre el 0 y el 15.
Valor del indicador = 1 (bit 0):Se define este bit para solicitar el nombre del archivo que se va a
crear. No debe utilizarse para solicitar el nombre de un archivo existente con el fin de abrirlo. En
este ltimo caso, si el usuario introduce el nombre de un archivo que no existe, el cuadro de dilogo
muestra un mensaje de error en la parte inferior. Si se define este bit y el usuario elige un archivo
existente, AutoCAD presenta una casilla de advertencia y ofrece la posibilidad de seguir o cancelar
la operacin.
Valor del indicador = 2 (bit 1):Desactiva el botn Teclearlo. Este bit se define si se llama a la funcin
GETFILED mientras otro cuadro de dilogo est activo (en caso contrario, obliga a cerrar el otro
cuadro de dilogo).Si no se define este bit, se activa el botn Teclearlo. Cuando el usuario
selecciona el botn, el cuadro de dilogo desaparece y GETFILED devuelve 1.
Valor del indicador = 4 (bit 2):Permite al usuario escribir una extensin de nombre de archivo
arbitraria o bien no escribir ninguna. Si no se define este bit, GETFILED slo acepta la extensin
especificada en el argumento ext, y si el usuario no la escribe en la casilla de texto File, la aade al
nombre del archivo.
Valor del indicador = 8 (bit 3): Si se define este bit y no se define el bit 0, GETFILED inicia en la
biblioteca una bsqueda del nombre de archivo escrito. Si encuentra el archivo y el directorio en el
orden de bsqueda en la estructura, descompone el camino y slo devuelve el nombre del archivo.
Esto no ocurre si los archivos que se buscan tienen el mismo nombre pero se encuentran en
distintos directorios.
Si no se define este bit, GETFILED devuelve el nombre completo del archivo, incluido el nombre del
camino. Se define este bit si se utiliza el cuadro de dilogo para abrir un archivo existente cuyo
nombre desea guardar en el dibujo (u otra base de datos).
Si el usuario especifica un nombre de archivo en el cuadro de dilogo, GETFILED devuelve una
cadena que corresponde al nombre del archivo, en caso contrario, devuelve nil.
La siguiente llamada a getfiled presenta el cuadro de dilogo Seleccionar un archivo Lisp:
(getfiled "Seleccionar un archivo Lisp" "/acadr14/support/" "lsp" 8)
La funcin GETFILED muestra un
cuadro de dilogo con una lista que
incluye todos los archivos con la
extensin especificada que estn
disponibles. Puede utilizar este cuadro
de dilogo para buscar por los distintos
directorios y unidades, seleccionar un
archivo existente o especificar el nombre
de uno nuevo.
36
COMMAND
Ejecuta rdenes Autocad
Sintaxis: (COMMAND <"nombre de la orden"> [argumentos vlidos].....)
Valor retornado: nil
Los argumentos de la funcin command pueden ser cadenas, nmeros reales, nmeros enteros o
puntos, segn solicite la secuencia de mensajes del comando ejecutado. Una cadena nula ("")
equivale a pulsar RETURN en el teclado.
La funcin command sin argumentos equivale a pulsar ESC y cancela la mayora de los comandos
de AutoCAD.
La funcin command devuelve nil.
La funcin command evala los distintos argumentos y los enva a AutoCAD cada vez que aparece
un mensaje que los solicita. Presenta como cadenas los nombres de los comandos y las opciones,
como listas de dos nmeros reales los puntos 2D y como listas de tres nmeros reales los puntos
3D.
(setq pt1 '(1 1) pt2 '(1 5))
(command "linea" pt1 pt2 "")
(setq p1 '(10 20) p2 '(45 60) d 40)
(command "linea" p1 p2 "" "circulo" p1 "d" d )
Se ejecuta:
Comando: linea
Desde el punto: p1
Al punto:p2
Al punto: ""
Comando: circulo 3P/2P/TTR/<centro>:p1
Dimetro/<Radio> <10>: d
Dimetro <20>: 40
Comando: nil
Si el programa lisp se va a utilizar con versiones de AutoCAD para idiomas extranjeros, los nombres
de los comandos deben ir precedidos de un subrayado ( _ ), para que puedan traducirse.
Los comandos que se ejecutan mediante la funcin command no se reproducen en la lnea de
comando si la variable de sistema CMDECHO est definida como cero. (setvar "CMDECHO" 0).
Las funciones indicadas por el usuario getxxx (getangle, getstring, getint, getpoint, etc.) no se
pueden utilizar dentro de la funcin command.
Los comandos TEXTODIN y BOCETO de AutoCAD leen desde el teclado y el digitalizador
directamente, por lo que no se pueden utilizar con la funcin command de AutoLISP.
Se crea un grupo DESHACER explcitamente alrededor de cada comando utilizado con la funcin
command. Si un usuario escribe H (o DESHACER) despus de ejecutar una rutina de AutoLISP,
slo se deshar el ltimo comando. Si se introduce DESHACER ms veces, se retroceder por los
comandos utilizados en dicha rutina. Si se desea que un grupo de comandos se considere un grupo
(o toda la rutina), se utilizan las opciones Inicio y Fin de DESHACER.
Si un comando de AutoCAD est activo y el smbolo PAUSE se encuentra predefinido como un
argumento de la funcin command, esta funcin se interrumpir para que el usuario pueda escribir
informacin.
Ejemplo ejecutado a nivel de lnea de comandos:
Comando: (setq centro '(10 20))
(10 20)
Comando: (command "circulo" centro PAUSE "linea" centro PAUSE "")
circulo 3P/2P/TTR/<centro>: Dimetro/<Radio>:
Comando: linea Desde el punto:
Al punto:
37
OSNAP
Aplica a un punto un modo de referencia Autocad
Sintaxis: (OSNAP <pt> <modo>)
Valor retornado: Una lista de punto resultante del modo de referenciar objetos que se est aplicando
al argumento pt.
El funcionamiento de esta orden depende del valor de la variable del sistema APERTURE y del
punto de vista 3D actual.
(osnap p5 "int")
(osnap p7 "fin")
devuelve nil
devuelve nil
(osnap p5 "int")
(osnap p7 "fin")
38
devuelve nil
devuelve p4
...cuerpo de la funcin...)
...cuerpo de la funcin. )
devuelve MI-FUNC2
devuelve MI-FUNC2
devuelve MI-FUNC2
devuelve "mal"
produce un error de AutoLISP
Cuando un programa define varias funciones deben estar todas codificadas en un nico fichero que
se cargar con la funcin LOAD.
OPEN
Abre un archivo de disco para leer o almacenar datos
Sintaxis: (OPEN <"nombre de fichero"> <"clave de acceso">)
El argumento nombre de fichero es una cadena que especifica el nombre y la extensin del
archivo que debe abrirse.
clave de acceso: cadena de una letra minscula, es la etiqueta de lectura/escritura y debe
contener una cadena de una sola letra en minsculas. En la tabla siguiente se describen las
letras de modo vlidas.
"r": Abre un fichero para lectura
"w": Abre un fichero para escritura
"a": Abre un fichero para escribir aadiendo nuevos datos al final del mismo. Sita el
puntero al final del fichero abierto.2
Valor retornado: El descriptor de fichero utilizado por las funciones de Entrada/Salida a fichero, por
tanto se deber atribuir a un smbolo que permita referirse a ese descriptor.
(setq a (open "archivo.ext" "r"))
Si se tiene en cuenta que los archivos de los ejemplos siguientes no existen,
(setq f (open "nueva.tst" "w"))
devuelve <Archivo #nnn>
(setq f (open "noesta.ahi" "r"))
devuelve nil
(setq f (open "registro" "a"))
devuelve <Archivo #nnn>
2
Nota En sistemas DOS, algunos programas y editores de texto escriben los archivos de texto con una marca de fin de
archivo (CTRL Z, cdigo ASCII decimal 26) al final del texto. Cuando lee un archivo de texto, el DOS devuelve un
estado de fin de archivo si encuentra una marca CTRL Z, aunque a sta le sigan ms datos. Si va a utilizar el modo "a"
de OPEN para aadir datos a archivos creados en otros programas, cercirese de que stos no insertan marcas CTRL
Z al final de sus archivos de texto.
39
El argumento nombre de fichero puede incluir un prefijo de directorio. En los sistemas DOS es
posible usar una letra de unidad y una contrabarra (\) en lugar de una barra oblicua (/), aunque no
debe olvidarse que en una cadena es necesario especificar dos contrabarras (\\) para obtener una.
(setq f (open "/x/nueva.tst" "w"))
(setq f (open "\\x\\nueva.tst" "w"))
CLOSE
Cierra un archivo abierto
Sintaxis: (CLOSE <smbolo correspondiente al descriptor de fichero>)
El argumento smbolo correspondiente al descriptor de fichero es un descriptor de archivo que
se obtiene mediante la funcin OPEN. Tras utilizar la funcin CLOSE, aunque el descriptor de
fichero no cambia, deja de ser vlido. Los datos aadidos a un archivo abierto no se escriben
realmente hasta que se cierra el archivo.
Valor retornado: nil si descriptor_archivo es vlido, en caso contrario devuelve un mensaje de error.
Por ejemplo, el siguiente cdigo calcula el nmero de lneas del archivo unarchivo.txt y define la
variable ct en ese nmero.
(setq fil "UNARCHIVO.TXT")
(setq x (open fil "r") ct 0)
(while (read-line x)
(setq ct (1+ ct))
)
(close x)
FINDFILE
Localiza un archivo en la ruta de bsqueda de archivos de Autocad
Sintaxis: (FINDFILE <"nombre_archivo">)
Valor retornado: una cadena de caracteres con el nombre completo del archivo indicando la ruta de
localizacin.
La funcin FINDFILE no asigna el tipo o extensin del archivo especificado en nombre_archivo. Si
nombre_archivo no especifica un prefijo de unidad/directorio en este argumento, FINDFILE busca
en el camino de la biblioteca de AutoCAD. Si se escribe un prefijo de unidad/directorio, FINDFILE
busca en dicho directorio. La funcin FINDFILE siempre devuelve un nombre completo de
unidad/directorio/archivo o nil si el archivo especificado no se ha encontrado.
El nombre completo que devuelve FINDFILE puede utilizarse con la funcin OPEN.
40
imprime
imprime
imprime
imprime
A
123
(A)
"Hola"
y devuelve
y devuelve
y devuelve
y devuelve
A
123
(A)
"Hola"
PRINC
Imprime una expresin AutoLISP en el rea de rdenes o la escribe en un archivo. (La diferencia
con PRIN1 es que PRINC evala los caracteres de control que aparezcan en la expresin.).
Sintaxis: (PRINC [expresin] [descriptor de fichero])
Valor retornado: el argumento de la expresin.
PRINT
Imprime un salto de lnea, una expresin AutoLISP y un espacio en el rea de rdenes o lo escribe
en un archivo.
Sintaxis: (PRINT [expresin] [descriptor de fichero])
Valor retornado: el argumento de la expresin
PROMPT
Presenta una cadena de caracteres en el rea de rdenes. (Evala caracteres de control)
Sintaxis: (PROMPT <cadena>)
Valor retornado: nil
En las configuraciones de pantalla dual de AutoCAD, PROMPT muestra la cadena en ambas
pantallas, por lo que resulta ms til princ.
(prompt "Nuevo valor: "
WRITE-CHAR
Escribe un solo carcter en el rea de rdenes o bien en un fichero abierto.
Sintaxis: (WRITE-CHAR <num> [descriptor de fichero])
El argumento nm es el cdigo ASCII decimal del carcter que debe escribirse.
Valor retornado: El cdigo ASCII para los caracteres escritos.
(write-char 67)
41
WRITE-LINE
Escribe una cadena de caracteres en al rea de rdenes o bien en un archivo (evala caracteres de
control.
Sintaxis: (WRITE-LINE <cadena> [descriptor de fichero])
Valor retornado: La cadena de caracteres.
(write-line "Prueba" f)
TERPRI
Imprime un salto de lnea en el rea de rdenes.
Sintaxis: (TERPRI)
Valor retornado: nil
5.14.2. LECTURA
READ-CHAR
Lee caracteres procedentes del bufer del teclado o de un archivo abierto en modo de lectura.
Sintaxis: (READ-CHAR [descriptor de fichero])
Valor retornado: El cdigo ASCII para el carcter ledo.
Por ejemplo, si se tiene en cuenta que el bfer de entradas por teclado est vaco,
(read-char)
espera a que se escriban datos. Si introduce los caracteres ABC seguidos de RETURN, read-char
devuelve 65 (el cdigo ASCII decimal correspondiente a la letra A). Las tres llamadas siguientes a
read-char devuelven 66, 67 y 10 (lnea nueva), respectivamente. Si se efecta otra llamada, readchar vuelve a esperar a que se escriban datos.
READ- LINE
Lee una cadena de caracteres procedentes del bufer del teclado o de un archivo abierto en modo de
lectura.
Sintaxis: (READ-LINE [descriptor de fichero])
Valor retornado: la cadena leda. (Cuando se alcanza el final de un archivo de lectura el valor
retornado es nil )
Por ejemplo, si tiene en cuenta que f es un puntero de archivo abierto vlido,
(read-line f)
devuelve la siguiente lnea de entrada del archivo, o nil si ha llegado al final del archivo.
42
43
ACAD_STRLSORT
Ordena alfabticamente listas de cadenas de caracteres
Sintaxis: (ACAD_STRLSORT lista)
Valor retornado: La lista con las cadenas ordenadas alfabticamente. Si la lista no contiene cadenas
o no hay memoria suficiente para realizar la ordenacin, la funcin devuelve NIL.
(setq mes '("ene" "feb" "mar" "abr" "may" "jun" "jul" "ago" "sep" "oct" "nov" "dic"))
(acad_strlsort mes)
devuelve:
("abr" "ago" "dic" "ene" "feb" "jul" "jun" "mar" "may" "nov" "oct" "sep")
VL-SORT
Ordena todos los elementos de una lista de acuerdo con una funcin de comparacin dada. En
determinados casos puede eliminar los objetos duplicados.
Sintaxis: (VL-SORT lista funcin)
Puede emplearse como funcin de comparacin cualquiera que acepte dos argumentos y devuelva
T (u otro valor distinto de Nil) cuando el primer argumento precede al segundo conforme al criterio
de ordenacin.
Valor retornado: La lista con los elementos de la lista original ordenados, aunque no se garantiza la
conservacin de todos los elementos originales (elimina las cadena y los enteros duplicados).
VL-SORT-I
Ordena todos los elementos de una lista de acuerdo con una funcin de comparacin dada, y
devuelve sus ndices. No elimina duplicados.
Sintaxis: (VL-SORT-I lista funcin)
Puede emplearse como funcin de comparacin cualquiera que acepte dos argumentos y devuelva
T (u otro valor distinto de Nil) cuando el primer argumento precede al segundo conforme al criterio
de ordenacin.
Valor retornado: Una lista que contiene los ndices de los elementos de la lista, ordenados conforme
al criterio establecido por la funcin de comparacin.
devuelve: (2 1 3 0)
El orden en la lista ordenada sera: "f" "d" "c" "a"; donde "f" es el tercer elemento (ndice 2) en la lista
original, "d" es el segundo elemento (ndice 1) en la lista, y as sucesivamente.
(vl-sort-i '(9.0 9.0 1 7 3 7 88) '<) )
devuelve: (2 4 5 3 1 0 6)
Los ndices se pueden emplear para recuperar mediante la funcin NTH los valores originales.
(defun ordena-lista (lista funcion)
(mapcar (lambda (x) (nth x lista)) (vl-sort-i lista funcion))
)
(ordena-lista '(9.0 9.0 1 7 3 7 88) '<)
44
REDRAW
Redibuja la pantalla de presentacin (o las entidades especificadas)
Sintaxis: (REDRAW ) (sintaxis simplificada para el redibujado de la pantalla)
Valor retornado: Nil
GRAPHSCR
Fuerza la presentacin de pantalla grfica en sistema de pantalla nica.
Sintaxis: (GRAPHSCR)
Valor retornado: nulo
TEXTSCR
Presenta la pantalla texto en sistemas de pantalla nica
Sintaxis: (TEXTSCR)
Valor retornado: nulo
TEXTPAGE
Presenta la pantalla texto en sistemas de pantalla nica y la limpia
Sintaxis: (TEXTPAGE)
Valor retornado: nulo
VPORTS
Extrae los nmeros de identificacin de las ventanas grficas
Sintaxis: (VPORTS)
Valor retornado: Una lista de sublistas donde los elementos de cada sublista son:
1. El nmero de identificacin de cada ventana grfica.
2. Coordenadas de la esquina inferior izquierda (coordenadas normalizadas).
3. Coordenadas de las esquina superior derecha..
45
devuelve
devuelve
devuelve
devuelve
4.0
10
123
123
QUOTE
Procesa una instruccin sin evaluarla
Sintaxis:(QUOTE <expresin>)
Valor retornado: La expresin sin evaluarla
La sintaxis alternativa es el apstrofo. No puede usarse en el indicador COMMAND.
(quote a)
(quote cat)
(quote (a b))
'a
'cat
'(a b)
devuelve
devuelve
devuelve
devuelve
devuelve
devuelve
A
CAT
(A B)
A
CAT
(A B)
Los tres ltimos ejemplos no tienen efecto si se introducen directamente desde el teclado como
respuesta a un mensaje de AutoCAD.
NULL
Comprueba si una expresin se evala como nulo
Sintaxis: (NULL <expresin>)
Valor retornado: T si la expresin evaluada es nulo y nil en caso contrario.
(setq a 123 b "cadena" c nil)
(null a)
(null b)
(null c)
(null ' )
devuelve
devuelve
devuelve
devuelve
nil
nil
T
T
QUIT
Fuerza a la rutina actual a abandonar el procesamiento.
Sintaxis: (QUIT)
Valor retornado: El mensaje quit/exit abort (abandonar/salir abortar)
46
TEXTBOX
Mide un objeto de texto designado y devuelve las coordenadas diagonales del cuadro donde est
contenido el texto
Sintaxis: (TEXTBOX <lista_e>)
lista_e: es una lista de definicin de entidad en la forma devuelta por ENTGET y debe definir un
objeto de texto. Debe definir un objeto de texto. Si en lista_e se omiten los campos que definen
parmetros de texto distintos del texto en s, se utilizan los valores actuales (por defecto).
Valor retornado: Si textbox se ejecuta satisfactoriamente, devuelve una lista de dos puntos, en caso
contrario devuelve nil.
Lo mnimo que TEXTBOX acepta como lista es el texto en s.
(textbox '((1 . "Hola mundo.")))
47
interactivamente,
bien,
Nombre de entidad: clave alfanumrica asociada a cada entidad del dibujo en el formato interno.
(puntero capaz de producir una lectura en la base de datos del dibujo)
<Nombre de objeto: 3c50500>
Registro de entidad: Informacin relativa a la entidad estructurada como una lista de asociaciones
que utilizan como claves los cdigos estudiados para la estructura interna en el formato DXF.
Definicin de una lnea en formato DXF
0
LINE
5
20
100
AcDbEntity
8
0
100
AcDbLine
10
112.186506
20
131.211019
30
0.0
11
233.335573
21
229.387734
31
0.0
48
49
50
Los siguientes ejemplos de ssget requieren que se suministre una lista de puntos a la funcin. La
variable lista_pt no puede contener puntos que definan segmentos con longitud cero.
(setq lista_pt '((1 1)(3 1)(5 2)(2 4)) )
(ssget "_WP" lista_pt):
Crea un conjunto de seleccin con todos los objetos incluidos en el polgono definido por
lista_pt
(ssget "_CP" lista_pt):
Crea un conjunto de seleccin con todos los objetos que pasan por el polgono y los que estn
dentro definidos por lista_pt
(ssget "_F" lista_pt):
Crea un conjunto de seleccin con todos los objetos que intersecan el borde definido por
lista_pt
(ssget "_WP" lista_pt lista_filtros):
Crea un conjunto de seleccin con todos los objetos dentro del polgono definido por lista_pt
que coinciden con la lista_filtros
AutoLISP no permite manejar ms de 128 conjuntos abiertos a la vez. Si se alcanza este lmite,
AutoCAD se niega a crear ms conjuntos de seleccin y devuelve nil a todas las llamadas SSGET.
SSLENGTH
Devuelve el nmero entero correspondiente al nmero de entidades del conjunto designado
indicado.
Sintaxis: ( SSLENGTH < conjunto designado> )
Valor retornado: Un nmero entero.
(setq cs (ssget "U"))
(sslength cs)
SSNAME
Devuelve el nombre de entidad de la entidad perteneciente al conjunto designado indicado y que
ocupa la posicin que especifica el ndice.
Sintaxis: ( SSNAME < conjunto designado> < ndice> )
El argumento ndice debe ser un nmero entero. Si es negativo o mayor que la entidad con el
nmero ms alto del conjunto de seleccin, el resultado es nil.
El primer elemento del conjunto tiene un ndice definido como cero.
Valor retornado: El nombre de la entidad (Un puntero a la informacin de la entidad)
(setq cs (ssget))
(setq ent1 (ssname cs 0))
(setq ent1 (ssname cs 3))
SSMEMB
Comprueba si un objeto (entidad) forma parte de un conjunto de seleccin
Sintaxis: (SSMEMB <nombre_ent> < cs>)
Valor retornado: Si la entidad forma parte del conjunto, SSMEMB devuelve su nombre
(nombre_ent). En caso contrario, devuelve nil.
Por ejemplo, si la entidad e1 pertenece al conjunto de seleccin cs1 pero e2 no, entonces
(ssmemb e1 cs1)
(ssmemb e2 cs1)
51
SSADD
Aade un objeto (entidad) a un conjunto de seleccin o crea un conjunto de seleccin nuevo
Sintaxis: (SSADD [nombre_ent [cs]])
Si se llama a SSADD sin argumentos, la funcin construye un nuevo conjunto de seleccin sin
miembros.
Si se le llama con el argumento de nombre de entidad nico nombre_ent, SSADD construye un
conjunto de seleccin nuevo slo con esa entidad.
Si se le llama con un nombre de entidad y el conjunto de seleccin cs, SSADD aade la
entidad con nombre al conjunto de seleccin.
Valor retornado: el conjunto de seleccin nuevo o modificado.
Al aadir una entidad a un conjunto, la entidad nueva se aade al conjunto existente, y se
devuelve como resultado el conjunto transmitido como cs. De este modo, si el conjunto se
asigna a otras variables, stas tambin reflejan lo aadido. Si la entidad con nombre ya se
encuentra en el conjunto, la operacin con SSADD se ignora y no se indica ningn error.
(setq e1 (entnext))
(setq ss (ssadd))
(ssadd e1 cs)
(setq e2 (entnext e1))
(ssadd e2 cs)
SSDEL
Suprime un objeto (entidad) de un conjunto de seleccin
Sintaxis: (SSDEL <nombre_ent> <cs>)
La funcin SSDEL borra la entidad nombre_ent del conjunto de seleccin cs.
Valor retornado: el nombre de conjunto de seleccin cs.
La entidad se suprime del conjunto de seleccin, pero no se crea un conjunto nuevo con dicha
entidad. Si sta no se encuentra en el conjunto, se devuelve nil.
Por ejemplo, si la entidad e1 pertenece al conjunto de seleccin cs1 pero e2 no, entonces
(ssdel e1 cs1)
(ssdel e2 cs1)
52
ENTGET
Busca en la base de datos la entidad cuyo nombre se proporciona y devuelve una lista con los datos
de su definicin (registro de entidad)
Sintaxis: ( ENTGET < nombre de entidad> )
Valor retornado: lista de asociaciones (pares punteados o listas normales) que componen el
registro de entidad
Los datos que ENTGET devuelve son codificados como una lista de asociaciones, desde la
que se pueden extraer elementos mediante la funcin ASSOC. Los objetos de esta lista tienen
asignados cdigos de grupo DXF de AutoCAD para cada parte de la informacin de la entidad.
Supongamos que el ltimo objeto creado en el dibujo es una lnea cuyos puntos iniciales y finales
son (1,2) y (6,5), respectivamente. Mediante la funcin entlast, puede recuperar el nombre de la
entidad del ltimo objeto y transmitirlo a entget.
(entget (entlast))
El resultado podra ser el siguiente:
((-1 . <<Nombre de entidad: 60000014>>)
(0 . "LNEA")
(8 . "0")
(10 1.0 2.0 0.0)
(11 6.0 6.0 0.0)
)
Nombre de entidad
Tipo de objeto
Capa
Punto inicial
Punto final
Los cdigos de grupo DXF que utiliza AutoLISP no son exactamente iguales que los de los archivos
DXF. Al igual que ocurre con DXF, los elementos de encabezamientos de entidades (color, tipo de
lnea, grosor, indicador de atributo e identificador de entidad) se exportan slo en el caso de que no
contengan valores por defecto. A diferencia de DXF, los campos optativos de definicin de
entidades se exportan tanto si mantienen los valores por defecto como si no, lo cual simplifica el
proceso. Los programas siempre pueden asumir que estos campos estn presentes en los
algoritmos generales que les afectan. Adems, a diferencia de DXF, las coordenadas X, Y y Z se
agrupan en una lista de puntos, como (10 1.0 2.0 3.0), en lugar de aparecer como grupos 10, 20 y
30 separados.
El primer elemento de la lista (-1) contiene el nombre de esta entidad. Los pares de puntos
independientes, que representan los valores, se pueden extraer mediante ASSOC, utilizando CDR
para obtener sus valores.
Las sublistas para puntos no son pares punteados como el resto. El CDR de la sublista es el valor
del grupo por convencin. Como un punto es una lista de dos (o tres) nmeros reales, el grupo
completo es una lista de tres (o cuatro) elementos. El CDR del grupo es una lista que representa un
punto, de modo que se mantiene la convencin de que CDR siempre devuelve el valor.
53
VALOR
Nombre de entidad
Tipo de entidad
Valor del texto (la propia cadena)
Nombre: bloques, etc
Otros valores de nombre o de texto
Nombre de tipo de lnea
Nombre de estilo de texto
Nombre de capa
PUNTO PRIMARIO: Punto inicial (lnea), punto de colocacin(texto), centro (crculo),
punto de insercin de un bloque
Punto final
Elevacin
Altura de objeto
radios de circulo, Altura de texto, factores de escala. .....
ngulos
Nmero de color
Orientacin de la altura de objeto
ENTLAST
Devuelve el nombre del ltimo objeto principal (entidad) no suprimido del dibujo
Sintaxis: (ENTLAST)
Valor retornado: El nombre de entidad
La funcin ENTLAST se suele utilizar para obtener el nombre de la entidad que se ha aadido con
la funcin COMMAND.
(setq e1 (entlast))
ENTNEXT
Devuelve el nombre del siguiente objeto (entidad) del dibujo. La funcin ENTNEXT devuelve tanto
las entidades principales como las subentidades. Las entidades seleccionadas mediante SSGET
son entidades principales, no atributos de bloques ni vrtices de polilneas. Para acceder a la
estructura interna de estas entidades complejas, se utiliza ENTNEXT que permite llegar a todas las
subentidades
Sintaxis: (ENTNEXT [nombre_ent]).
Valos retornado:
Si se llama a ENTNEXT sin argumentos, devuelve el nombre de la primera entidad no
suprimida de la base de datos.
Si ENTNEXT se llama con un argumento de nombre de entidad nombre_ent, devuelve el
nombre de la primera entidad no suprimida que sigue a nombre_ent en la base de datos.
Si nombre_ent es la ltima entidad de la base de datos, devuelve nil.
Forma de uso: Una vez que se haya obtenido el nombre de la subentidad adecuada, se puede
trabajar con ella como con cualquier otra entidad. Si para ello se utiliza ENTNEXT, se puede buscar
la entidad original aproximndose con ENTNEXT hasta que se encuentre una entidad SEQEND y, a
continuacin, extrayendo el grupo -2 de la entidad, que es el nombre principal de entidad.
54
(setq e1 (entnext))
(setq e2 (entnext e1))
(defun lastent (/ a b)
(if (setq a (entlast))
(while (setq b (entnext a))
(setq a b) )
)
ENTSEL
Solicita al usuario la designacin de un nico objeto (entidad) mediante la especificacin de un
punto.
Sintaxis: (ENTSEL [solicitud])
La cadena especificada en solicitud se utiliza para solicitar al usuario el objeto. Si no se escribe
ninguna cadena, la solicitud tomar Designar objeto como valor por defecto.
Valor retornado: una lista cuyo primer elemento es el nombre de la entidad del objeto designado y
cuyo segundo elemento lo forman las coordenadas del punto utilizado para designar el objeto.
Nota: El punto de designacin que devuelve ENTSEL no representa un punto que est en el
objeto seleccionado. El punto que se devuelve es la ubicacin del cursor en cruz cuando se
realiza la designacin. La relacin entre el punto de designacin y el objeto variar
dependiendo del tamao de la caja de seleccin y de la escala de ampliacin actual.
La siguiente secuencia de comandos de AutoCAD ilustra el uso de la funcin entsel y la lista que
devuelve:
Comando: linea
Desde el punto: 1,1
al punto: 6,6
al punto: ENTER
Comando: (setq e (entsel "Designe un objeto: "))
Designe un objeto: 3,3
(<<Nombre de entidad: 60000014> (3.0 3.0 0.0))
ENTDEL
Suprime objetos (entidades) o recupera los objetos eliminados anteriormente
Sintaxis: (ENTDEL nombre_ent)
La entidad especificada mediante nombre_ent se suprime si ya forma parte del dibujo. La
funcin entdel recupera la entidad (la devuelve al dibujo) si se ha suprimido anteriormente en
esta sesin de edicin. Las entidades suprimidas se purgan del dibujo cuando se sale del
mismo. La funcin entdel puede suprimir las entidades grficas y no grficas.
Valor retornado: El nombre de entidad suprimida o dada de alta.
(setq e1 (entnext))
(entdel e1)
(entdel e1)
La funcin ENTDEL slo acta con entidades principales. Los atributos y vrtices de polilneas no
pueden eliminarse sin tener en cuenta la entidad original. Puede utilizar la funcin COMMAND para
ejecutar los comandos ATREDIT o EDITPOL con el fin de modificar subentidades.
En las definiciones de bloque no se pueden borrar entidades. Sin embargo, con ENTMAKE, se
puede cambiar la definicin completamente, con excepcin de la entidad que desea suprimir.
55
ENTMAKE
Crea una nueva entidad (objeto grfico) en el dibujo. La funcin ENTMAKE puede definir entidades
tanto grficas como no grficas.
Sintaxis: (ENTMAKE [lista_ent])
El argumento lista_ent debe ser una lista con datos de definicin de entidad en un formato
similar al devuelto por la funcin ENTGET. El argumento lista_ent debe contener toda la
informacin necesaria para definir la entidad Si se omite dicha informacin, ENTMAKE
devuelve nil y no se admite la entidad. Si omite informacin de la definicin optativa (como la
capa), ENTMAKE utiliza el valor por defecto.
Valor retornado: Si ENTMAKE crea correctamente la nueva entidad, devuelve la lista de informacin
de la definicin de la entidad. Si ENTMAKE no puede crear la entidad, devuelve nil.
Forma de uso: Un mtodo para crear una entidad consiste en obtener la informacin de definicin
de una entidad con la funcin ENTGET, modificarla y transmitir los datos revisados a la funcin
ENTMAKE. Antes de crear una entidad ENTMAKE, se debe verificar si los nombres de capa, tipo de
lnea y color indicados son correctos. Al indicar un nombre de capa nuevo, ENTMAKE crea la capa
de forma automtica.
El cdigo siguiente crea un crculo rojo, con centro en el punto (4,4) y radio 1. Los campos optativos
de capa y tipo de lnea se han omitido, por lo que se mantienen los valores por defecto.
(entmake
'((0 . "CIRCLE") (62 . 1)
(10 4.0 4.0 0.0) (40 . 1.0) )
ENTMOD
Modifica los datos de la definicin de un objeto (entidad) Al actualizar la entidad principal, ENTMOD
la modifica y actualiza su imagen en la pantalla.
Sintaxis: (ENTMOD <lista_ent>)
La funcin ENTMOD se transmite a una lista (lista_ent) en el formato que devuelve ENTGET y
actualiza la informacin de base de datos correspondiente al nombre de entidad especificado por el
grupo -1 en lista_ent.
Valor retornado: El registro de entidad
Forma de uso: El mecanismo principal por el que AutoLISP actualiza la base de datos consiste en
recuperar las entidades con ENTGET, modificar la lista que las define y actualizarlas en la base de
datos con ENTMOD. La funcin ENTMOD puede definir objetos tanto grficos como no grficos.
(setq en (entnext))
Asigna en al nombre de la primera entidad del dibujo
(setq ed (entget en))
Define ed como los datos de la entidad en
(setq ed (subst (cons 8 "0") (assoc 8 ed) ed ) )
Cambia el grupo de capas de ed a la capa 0
(entmod ed)
Modifica la capa de la entidad en el dibujo
ENTUPD
Actualiza la imagen de un objeto (entidad) en pantalla
Sintaxis: (ENTUPD <nombre_ent>)
Cuando se modifica un vrtice de polilnea o un atributo de bloque con ENTMOD, no se
actualiza en la pantalla la entidad compleja completa. La funcin ENTUPD puede utilizarse
para actualizar en pantalla una polilnea o bloque modificados. Esta funcin puede llamarse con
el nombre de la entidad como parte de la polilnea o bloque; no es necesario que sea una
entidad principal. Aunque ENTUPD va destinada al uso con bloques y polilneas con atributos,
se puede llamar para cualquier entidad y siempre regenera la entidad en la pantalla, incluidas
las subentidades.
Si la primera entidad del dibujo fuera una polilnea con varios vrtices, entonces:
(setq e1 (entnext))
Define e1 como el nombre de entidad de la polilnea
(setq e2 (entnext e1))
Define e2 como el primer vrtice
(setq ed (entget e2))
Define ed como los datos del vrtice
(setq ed (subst '(10 1.0 2.0) (assoc 10 ed) ed ) )
Cambia la posicin del vrtice en ed al punto (1,2)
(entmod ed)
Traslada el vrtice en el dibujo
(entupd e1)
Regenera la entidad e1 de la polilnea.
56
Ejemplo completo
(DEFUN C:TTT ()
(PRIN1 "SEALAR ENTIDADES PARA EL CONJUNTO DESIGNADO")
(SETQ CD1 (SSGET)
N1 (SSLENGTH CD1)
I1 0
I2 0
I3 0
F1 (OPEN "d:\\docencia\\DATOS" "w")
)
(PRINT (STRCAT "CD1=" (ITOA N1) ))
(REPEAT N1
(SETQ NENT (READ (STRCAT "ENT" (ITOA I1)))
ENT(SSNAME CD1 I1)
RENT (ENTGET ENT)
I1 (+ 1 I1)
)
(PRINT "CD1" F1)
(PRINT NENT F1)
(PRINT RENT F1)
)
(CLOSE F1)
)
(DEFUN C:TTT ()
(PRIN1 "SEALAR ENTIDADES PARA EL CONJUNTO DESIGNADO")
(SETQ CD1 (SSGET)
CD2 (SSGET "X" '( (8 . "1")))
CD3 (SSGET "X" '((0 . "TEXT")))
N1 (SSLENGTH CD1)
N2 (SSLENGTH CD2)
N3 (SSLENGTH CD3)
I1 0
I2 0
I3 0
F1 (OPEN "D:\\docencia\\DATOS" "w")
)
(PRINT (STRCAT "CD1=" (ITOA N1)))
(PRINT (STRCAT "CD2=" (ITOA N2)))
(PRINT (STRCAT "CD3=" (ITOA N3)))
(REPEAT N1
(SETQ NENT (READ (STRCAT "ENT" (ITOA I1)))
ENT (SSNAME CD1 I1)
RENT (ENTGET ENT)
I1 (+ I1 1)
)
(PRINT "CD1" F1)
(PRINT NENT F1)
(PRINT RENT F1)
(SETQ CAPA (ASSOC 8 RENT)
CAPAN (CONS 8 "1")
RENT (SUBST CAPAN CAPA RENT)
)
(ENTMOD RENT)
)
57
(REPEAT N2
(SETQ NENT (READ (STRCAT "ENT" (ITOA I2)))
ENT (SSNAME CD2 I2)
RENT (ENTGET ENT)
I2 (+ I2 1)
)
(PRINT "CD2" F1)
(PRINT NENT F1)
(PRINT RENT F1)
(SETQ CAPA (ASSOC 8 RENT)
CAPAN (CONS 8 "2")
RENT (SUBST CAPAN CAPA RENT)
)
(ENTMOD RENT)
)
(REPEAT N3
(SETQ NENT (READ (STRCAT "ENT" (ITOA I3)))
ENT (SSNAME CD3 I3)
RENT (ENTGET ENT)
I3 (+ I3 1)
)
(PRINT "CD3" F1)
(PRINT NENT F1)
(PRINT RENT F1)
(SETQ ALTEXTO (ASSOC 40 RENT)
NALTEXTO (CONS 40 (* 2 CDR ALTEXTO))
RENT (SUBST NALTEXTO ALTEXTO RENT)
)
(ENTMOD RENT)
)
(CLOSE F1)
)
58
Los mensajes que Autolisp presenta por defecto son los siguientes:
- Los argumentos de defun no pueden tener el mismo nombre: Una funcin definida con varios
argumentos que tengan el mismo nombre fallar y generar este mensaje.
- AutoCAD rechaz la funcin: Los argumentos suministrados a una funcin de AutoCAD no son
vlidos (como en setvar con una variable de sistema de slo lectura o tblnext con un nombre de tabla
no vlido) o la propia funcin no es vlida en el contexto actual. Por ejemplo, no puede utilizar una
funcin getxxx de introduccin de datos del usuario dentro de la funcin command.
- Desbordamiento de pila de AutoLISP : Se ha superado el espacio de almacenamiento de pila de
AutoLISP. El motivo puede ser una repeticin excesiva de funciones o listas de argumentos muy
largas.
- Tipo de argumento errneo: Se ha pasado un tipo de argumento incorrecto a una funcin. (Por
ejemplo, no se puede obtener la strlen de un nmero entero.)
- Bad association list: La lista suministrada a la funcin assoc no est formada por listas de valor clave.
- Cdigo de conversin errneo: El identificador space suministrado a la funcin trans no es vlido.
- Bad ENTMOD list: El argumento suministrado a entmod no es una lista de datos de entidades
adecuada (tal y como lo devuelve entget).
- Bad ENTMOD list value: Una de las sublistas de la lista de asociacin suministrada a entmod
contiene un valor errneo.
- Lista de argumento formal inadecuada: Al evaluar esta funcin, AutoLISP ha detectado una lista de
argumento formal no vlida. Quizs no se trate de una funcin, sino ms bien de una lista de datos.
- Funcin incorrecta: El primer elemento de la lista no es un nombre de funcin vlido; quizs se trate
de un nombre de variable o de un nmero. Este mensaje tambin puede indicar que la funcin
especificada no est bien definida
- Lista incorrecta: Se ha suministrado una lista con errores de forma a una funcin. Esto puede suceder
si un nmero real empieza con un separador decimal. Ha de incluir un cero inicial en este caso.
- Lista de puntos incorrecta: La solicitud F, CP o WP lleva adjunta una lista nula o con elementos que
no son puntos. Se utilizan con ssget y grvecs.
- Bad node: La funcin type ha encontrado un tipo de elemento no vlido.
- Tipo de nodo errneo en la lista: La funcin foreach ha encontrado un tipo de elemento no vlido.
59
- Argumento de puntos incorrecto valor de punto incorrecto: Se ha pasado un punto mal definido (una
lista de dos nmeros reales) a una funcin que esperaba un punto. Un nmero real no puede
empezar por un separador decimal; en dicho caso, hay que incluir el cero inicial.
- Detectado nmero real incorrecto: Se ha intentado transmitir un nmero real no vlido de AutoLISP a
AutoCAD.
- Bad ssget list: El argumento suministrado a ssget "X") no es una lista de datos de entidad adecuada
(tal y como devuelve entget)
- Bad ssget list value: Una de las sublistas de la lista de asociaciones suministrada a (ssget "X")
contiene un valor errneo.
- Cadena modo ssget incorrecta: Este error se produce cuando ssget recibe una cadena no vlida en el
argumento modo.
- Lista de xdata incorrecta: Este error se genera cuando xdsize, ssget, entmod, entmake o txtbox recibe
una lista de datos de entidad extendida con errores de forma.
- Se requiere punto de base: Se ha llamado a la funcin getcorner sin el argumento de punto base
obligatorio.
- Boole arg1 0 or 15: El primer argumento de la funcin booleana ha de ser un nmero entero entre 0 y
15.
- Imposible evaluar la expresin: Separador decimal mal colocado o alguna otra expresin incorrecta.
- No es posible abrir (archivo) para entrada; fallo de LOAD: No se ha encontrado el archivo designado
en la funcin load, o el usuario no tiene permisos de lectura sobre ese archivo.
- Imposible volver a entrar en AutoLISP: Una funcin activa est utilizando el bfer de comunicacin
AutoCAD/AutoLISP; no se podr llamar a otra nueva funcin hasta que la actual haya finalizado.
- Interrupcin desde el teclado: El usuario ha tecleado CTRL+C durante el proceso de una funcin.
- Divide by zero: No se puede dividir por cero.
- Desbordamiento en divisin: La divisin por un nmero muy pequeo ha dado como resultado un
cociente no vlido.
- Exceeded maximum string length. Se ha pasado a una funcin una cadena con ms de 132
caracteres.
- Extra right paren: Se ha encontrado uno o ms parntesis cerrados de los necesarios.
- File not open: El descriptor de archivo para la operacin de E/S no es el de un archivo abierto.
- Lectura de archivo, memoria de cadenas insuficiente: Memoria de cadenas agotada mientras
AutoLISP lea un archivo. Consulte el captulo 15, "Gestin de memoria".
- File size limit exceeded: Un archivo ha superado el lmite de tamao permitido por el sistema
operativo.
- Floating-point exception: (Slo sistemas UNIX.) El sistema operativo ha detectado un error aritmtico
de coma flotante.
- Funcin cancelada: El usuario ha tecleado CTRL+C o ESC (cancelar) en respuesta a una solicitud de
datos.
60
- Function undefined for argument: El argumento pasado a log o sqrt sobrepasa los lmites permitidos.
- Function undefined for real: Se ha suministrado un nmero real como argumento de una funcin que
exige un nmero entero; por ejemplo, (lsh val 1.2).
- Illegal type in left: El archivo .lsp no es ASCII puro, sino que se ha guardado con un programa de
tratamiento de textos e incluye cdigos de formato.
- Improper argument: El argumento para gcd es negativo o cero.
- Nmero incorrecto de argumentos. La funcin quote slo espera un argumento concreto, pero se le
han proporcionado otros.
- Nmero incorrecto de argumentos para una funcin: El nmero de argumentos para la funcin creada
por el usuario no coincide con el nmero de argumentos formales especificado en defun.
- Solicitud inadecuada de datos sobre lista de comandos: Se ha encontrado una funcin de comando
pero no se puede ejecutar porque hay otra funcin activa o porque el intrprete de comandos no est
completamente inicializado. Este error puede producirse desde una llamada a la funcin command en
acad.lsp, acadr13.lsp o en un archivo .mnl.
- Entrada interrumpida: Se ha detectado un error o condicin de fin de archivo prematuro, lo que ha
provocado la finalizacin de la introduccin de datos en el archivo.
- Insufficient node space: No hay espacio suficiente en la pila de almacenamiento para la accin
solicitada. Consulte el captulo 15, "Gestin de memoria".
- Insufficient string space. No hay espacio en la pila de almacenamiento para la cadena de texto
especificada. Consulte el captulo 15, "Gestin de memoria".
- Invalid argument: Tipo de argumento errneo o argumento sobrepasa los lmites permitidos.
- Lista de argumentos no vlida: Se ha pasado a una funcin una lista de argumentos que contiene
errores.
- Invalid character: Una expresin contiene un carcter errneo.
- Invalid dotted pair: Los pares punteados son listas que contienen dos elementos separados por la
construccin espacio-punto-espacio. Este mensaje de error puede deberse a un nmero real que
empieza por el separador decimal, en cuyo caso ha de incluir el cero inicial.
- Valor de nmero entero no vlido: Se ha encontrado un nmero menor que el entero ms pequeo o
mayor que el nmero entero ms grande.
- Desbordamiento LISPSTACK: Se ha superado el espacio de almacenamiento de pila de AutoLISP. El
motivo puede ser una repeticin excesiva de funciones o listas de argumentos muy largas.
- Malformed list: Se ha terminado prematuramente una lista que se estaba leyendo en un archivo. La
causa ms comn es una incoherencia en el emparejamiento de las aperturas y cierres de parntesis
o comillas.
- Malformed string: Se ha terminado prematuramente una cadena que se estaba leyendo en un
archivo.
- Misplaced dot: Un nmero real comienza con el separador decimal. Ha de incluir un cero inicial en
este caso.
- Funcin nula: Se ha intentado evaluar una funcin que tiene una definicin vaca.
61
62
8. NDICE DE FUNCIONES
IF ........................................................................... 27
INITGET ................................................................. 35
INTERS .................................................................. 31
ITOA....................................................................... 21
LAMBDA................................................................ 20
LAST ...................................................................... 17
LENGTH................................................................. 15
LIST........................................................................ 15
LISTP ..................................................................... 18
LOAD ..................................................................... 39
LOG........................................................................ 10
MAPCAR................................................................ 20
MAX ....................................................................... 10
MEMBER ............................................................... 18
MIN......................................................................... 10
MINUSP ................................................................. 10
NTH ........................................................................ 17
NULL...................................................................... 46
NUMBERP ............................................................. 11
OPEN ..................................................................... 39
OR .......................................................................... 25
OSNAP................................................................... 38
POLAR................................................................... 31
PRIN1..................................................................... 41
PRINC .................................................................... 41
PRINT..................................................................... 41
PROGN .................................................................. 27
PROMPT ................................................................ 41
QUIT....................................................................... 46
QUOTE................................................................... 46
READ ............................................................... 13, 23
READ- LINE........................................................... 42
READ-CHAR.......................................................... 42
REDRAW ............................................................... 45
REM ....................................................................... 11
REPEAT................................................................. 28
REVERSE .............................................................. 18
RTOS ..................................................................... 22
SETQ...................................................................... 12
SETVAR................................................................. 12
SIN ........................................................................... 9
SQRT ..................................................................... 11
SSADD................................................................... 52
SSDEL ................................................................... 52
SSGET ................................................................... 50
SSLENGTH............................................................ 51
SSMEMB................................................................ 51
SSNAME ................................................................ 51
STRCASE .............................................................. 13
STRCAT................................................................. 13
STRLEN ................................................................. 13
SUBST ................................................................... 18
SUBSTR................................................................. 13
TERPRI .................................................................. 42
TEXBOX................................................................. 47
TEXTPAGE ............................................................ 45
TEXTSCR............................................................... 45
TRANS ................................................................... 23
TYPE ...................................................................... 12
VL-LIST->STRING ................................................. 14
VL-PRINC-TO-STRING.......................................... 14
VL-SORT................................................................ 44
VL-SORT-I ............................................................. 44
VL-STRING->LIST ................................................. 14
VPORTS................................................................. 45
WHILE.................................................................... 29
WRITE-CHAR ........................................................ 41
WRITE-LINE .......................................................... 42
ZEROP ................................................................... 11
- ............................................................................. 8
............................................................................. 8
* ............................................................................. 8
/ ............................................................................. 8
/= ........................................................................... 24
+ ............................................................................. 8
< ........................................................................... 24
<=........................................................................... 25
= ..................................................................... 24, 26
> ........................................................................... 24
>=........................................................................... 25
1- ............................................................................. 9
1+ ............................................................................. 9
ABS ......................................................................... 9
ACAD_STRLSORT ............................................... 44
AND ....................................................................... 25
ANGLE................................................................... 31
ANGTOF ................................................................ 22
ANGTOS................................................................ 22
APPEND ................................................................ 15
APPLY ................................................................... 20
ASCII ..................................................................... 23
ASSOC .................................................................. 17
ATAN ....................................................................... 9
ATOF ..................................................................... 21
ATOI ...................................................................... 21
ATOM .................................................................... 19
CAR ....................................................................... 16
CDR ....................................................................... 16
CHR ....................................................................... 23
CLOSE................................................................... 40
COMMAND ............................................................ 37
COND .................................................................... 27
CONS..................................................................... 15
COS ......................................................................... 9
CVUNIT.................................................................. 23
DEFUN................................................................... 30
DISTANCE............................................................. 31
DISTOF .................................................................. 22
ENTDEL................................................................. 55
ENTGET................................................................. 53
ENTLAST............................................................... 54
ENTMAKE ............................................................. 56
ENTMOD................................................................ 56
ENTNEXT .............................................................. 54
ENTSEL ................................................................. 55
ENTUPD ................................................................ 56
EQ.......................................................................... 26
EQUAL................................................................... 26
EVAL ..................................................................... 46
EXP........................................................................ 10
EXPT...................................................................... 10
FINDFILE ............................................................... 40
FIX ......................................................................... 21
FLOAT ................................................................... 21
FOREACH ............................................................. 19
GCD ....................................................................... 10
GETANGLE ........................................................... 32
GETCORNER ........................................................ 33
GETDIST................................................................ 32
GETFILED ............................................................. 36
GETINT .................................................................. 34
GETKWORD.......................................................... 35
GETORIENT .......................................................... 33
GETPOINT............................................................. 32
GETREAL .............................................................. 34
GETSTRING .......................................................... 34
GETVAR ................................................................ 34
GRAPHSCR........................................................... 45
63
9. BIBLIOGRAFA BSICA
AUTODESK: Autolisp: Manual de personalizacin. (Varias versiones)
OTERO GONZLEZ, Csar: Guiones para las clases de C.A.D. Tercera y Cuarta parte: Lisp avanzado.
E.T.S. de Ingenieros de Caminos, Santander. 1992.
TOGORES FERNNDEZ, Reinaldo y OTERO GONZLEZ, Csar: Programacin en Autocad con Visual
Lisp. Ed. Mc Graw Hill. 2003.
63