Está en la página 1de 4

Ahorre tiempo y automatizar sus tareas!

Lessonno. 1
Lessonno. 2
Lessonno. 3

Leccin no. 4
o Algunas funciones se utilizan para poner interaccin enla
rutina. Las llamamos las funciones GET, porque todas empiezan
withthese tres letras. Cuando una rutina cumplen una funcin
GET, que se detenga la executionto que el usuario responde a la
pregunta.

(Setq RESPUESTA (getXXX "\ nQue es la respuesta?"))
o Cada funcin que un uso preciso:
FUNCI N UTI LI DAD Ejemplo
GetInt un nmero entero 4
GetReal un verdadero 4.0
GetPoint un punto un clic en el dibujo
GETDIST un verdadero 4'-0 "(o dos puntos)
GETANGLE un ngulo (en radianes) 3.1416 (o dos puntos)
GETCORNER un punto un clic en el dibujo
GETKWORD una palabra clave S
GetString una cadena Michel

Ejemplos:
(Edad setq (getInt "\ Nhow aos tienes:?"))
(Peso setq (GetReal "\ Nhow Cunto Peso:?"))
(Inicio setq (GetPoint "\ punto nStart:"))
(Altura setq (GETDIST "\ nQue es la heightof la valla:?"))
(Nombre setq (GetString "\ nQue es su nombre:"))
Variable Respuesta del usuario Valor mantiene en la memoria
edad 41 41
peso 71 71.0
comienzo clic 12,14,0
altura 5'-8 " 68.0
nombre Michel "Michel"

o En lugar de siempre escribir en el rea de lnea de comandos, lo
haremos ahora typeour cdigos en un editor de texto (Bloc de
notas). Para que usted construye
un pequeo programa, permite analizar la funcin DEFUN con dos
pequeos ejemplos.
En el editor de texto, se guarda el archivo con una nueva
extensin. LSP y, a continuacin, en AutoCAD, usted tendr que
poner en la memoria. Vamos a explorelots de maneras de hacer
esto, pero por ahora, vamos a escribirla en el promptarea
comando.
COMANDO: (LOAD "d :/ myfolder / AutoLISP / star.lsp")
La funcin de carga que le permiten poner el archivo de
AutoLISP en la memoria. Ponemos, en la cita doble, el nombre
del archivo (star.lsp) con la ruta completa (d: \ \ myfolder \ \
AutoLISP \ \)
Como puede ver, he usado el \ \ en lugar de \ .... porque el \ isa
reservados caracter.

Ejemplo 1 - Nuevo comando de AutoCAD
(DEFUN C: STAR ()

(SETVAR "CMDECHO" 0)

(Setq OSN (GETVAR "OSMODE"))

(SETVAR "OSMODE" 0)

(Setq PT (GetPoint "\ nGivethe centro de la estrella"))

(Setq RD (GETDIST "\ nRadius:?"))

(Setq PT1 (POLAR PT 1.5707RD))

(Setq PT2 (POLAR PT 2.8274RD))

(Setq PT3 (POLAR PT 4.0841RD))

(Setq PT4 (POLAR PT 5.3407RD))

(Setq PT5 (POLAR PT 0.3142RD))

(Setq PT1A (INTERS PT1 PT3PT2 PT5))

(Setq PT2A (INTERS PT2 PT4PT1 PT3))

(Setq PT3A (INTERS PT3 PT5PT2 PT4))

(Setq pT4a (INTERS PT4 PT1PT3 PT5))

(Setq PT5A (INTERS PT4 PT1PT2 PT5))

(COMANDO "_PLINE" PT1 PT1APT2 PT2A PT3 PT3A
PT4 pT4a PT5 PT5A "C")

(SETVAR "OSMODE" OSN)

(PRINC)

)

En ese ejemplo, que acabamos de definir un nuevo comando de
AutoCAD "estrella". As que, como "lnea" o "crculo", se
puede ejecutar el comando "estrella". En thefirst lnea del
programa, se define el nuevo comando de AutoCAD. Escribimos
C: antes del nombre ....... C: STAR. Pero tenga cuidado! C:
dont dicen que yourfile se encuentra en la unidad C:.
Ejemplo 2 - Nueva funcin de AutoLISP
(DEFUN DTR (X)
(/ (* X PI) 180.0)
)
(DEFUN C: STAR ()
(SETVAR "CMDECHO" 0)
(Setq OSN (GETVAR "OSMODE"))
(SETVAR "OSMODE" 0)
(Setq PT (GetPoint "\ Ngive thecenter de la estrella"))
(Setq RD (GETDIST "\ nRadius:?"))
(Setq PT1 (POLAR PT (DTR 90) RD))
(Setq PT2 (POLAR PT (DTR 162) RD))
(Setq PT3 (POLAR PT (DTR 234) RD))
(Setq PT4 (POLAR PT (DTR 306) RD))
(Setq PT5 (POLAR PT (DTR 18) RD))
(Setq PT1A (INTERS PT1 PT3 PT2PT5))
(Setq PT2A (INTERS PT2 PT4 PT1PT3))
(Setq PT3A (INTERS PT3 PT5 PT2PT4))
(Setq pT4a (INTERS PT4 PT1 PT3PT5))
(Setq PT5A (INTERS PT4 PT1 PT2PT5))
(COMANDO "_PLINE" PT1 PT1A PT2PT2A PT3 PT3A PT4 pT4a PT5
PT5A "C")
(SETVAR "OSMODE" OSN)
(PRINC)
)
En este nuevo ejemplo, que acabamos de definir un nuevo
functionthat AutoLISP nos ayudar en otro programa. La
funcin DTR convertir DegresTo radianes. Como se puede ver,
no hemos puesto C:, por lo que, AutoLISP understandthat
queremos definir una funcin LISP. La X en el parntesis es
theargument. Eso es decirle AutoLISP que esta funcin requiere
un argumento.
Si me gustara crear una funcin que sumar dos
nmeros, i wouldwrite:
(DEFUN ADD (xy)
(+ Xy)
)
Luego, en un programa, que podra hacer esto: (ADD 4
5)
o Como hemos dicho en lecciones anteriores, toda nuestra
resultsare mantiene en la memoria de variables. Estos
resultados son importants para un goodexecution, pero cuando
se acaba la rutina, debemos despejar esas variables. Esto va a
liberar algo de memoria, y asegurar que ellos no van a perturbar
el resultsof otro programa. Para ello, definimos lugareos
variables. Enla dos ejemplos, todas las variables eran globales.
Definimos localsvariables en la funcin DEFUN entre parntesis,
as:

(DEFUN C: STAR (/ OSN PT RD PT1PT2 PT3 PT4 PT5 PT1A PT2A PT3A
pT4a PT5A)
......
)
Usted tiene preguntas, sugerencias ... no dude en enviar por correo
electrnico!





Leprofca 2002 '

También podría gustarte