miércoles, 13 de noviembre de 2002

Re: RE: [ACAD] texto enderredor-Autor: Eomer

Cargá rutina AutosLI e mu fásil:

Me parece que ya respondi hace algún tiempo a esta cuestión pero bueno, no
importa lo volvere a contestar. Yo conozco 3 formas de hacerlo:

Cargar directamente desde la linea de comandos: Por ejemplo si has copiado la
rutina en un subdirectorio llamado "c:\rutinas" y dicha rutina se llama
"dibujar.lsp" la forma de cargarlo en memoria seria escribir en la linea de
comandos de AutoCAD (load "c:/rutinas/dibujar.lsp").
Ahora bien hay que ejecutarla, eso lo explicare más adelante.

Cargar "arrastrando": desde AutoCAD se abre una ventana del explorador de
archivos y nos ponemos en el subdirectorio donde este la rutina, con el boton
izq. de raton se pulsa sobre el fichero en cuestión y sin soltarlo se arrastra
hasta el editor de dibujo de AutoCAD y ya está cargada.
Que no os lo creeis?, probadlo y luego me contais.

Tambien se puede usar el comando _APPLOAD, de este modo se presenta un cuadro de
dialogo donde debe aparecer un boton que diga FILE o FICHERO, para localizar la
rutina a cargar, una vez designada, se añade a la lista de la izquierda, entonces
se tendrá que seleccionar y pulsar en el botón que dice LOAD o CARGAR. La rutina
se habra cargado.

Ahora ya independientemente del metodo usado para cargar la rutina habra que
ejecutarla ¿y como lo hacemos?. Mirar el siguente fragmento de código:

(defun c:EXA (/ p1)
(setq p1 (getpoint "Centro del exagono:"))
(command "_polygon" 6 p1 "_i"))

Este es una rutina extremadamente simple pero me sirve para lo quiero explicar:
Mirar la primera linea que dice:

(defun c:EXA (/ p1) aqui se esta definiendo una función llamada EXA, como a EXA
le precede c: esto indica al interprete AutoLISP de AutoCAD que EXA será usado
como un comando más de AutoCAD, es decir se ejecutará lo que hallamos definido en
la función EXA, es deciiiiir habremos creado una nueva orden
llamada EXA que podremos ejecutar como cualquier otra orden.
Lo que sigue a continuación ya no tiene nada que ver con la carga y ejecucion de
rutinas AutoLISP pero lo explico por si a alguien le interesa. Lo que hace esto
es dibujar un exagono indicando su centro y definiendo el radio de circulo en el
que se encuentra inscrito.
Lo que hay a continuación de la barra es "p1" esto es un variable o
identificador local, y no sirve nada más que para guardar un valor, en este caso
el centro del exagono que queremos dibujar.
la siguiente linea: (setq p1 (getpoint "Centro del exagono:")) nos pide desde la
ventana de comando que indiquemos el punto que sera centro del exagono. Lo
podemos dar directamente en pantalla o bien introduciendo sus coordenadas. Este
centro se guardara en la variable p1 a traves de setq, y la última linea (command
"_polygon" 6 p1 "_i")) no hace más que invocar a la orden _POLYGON con una
serie de argumentos, 6 que indica el número de lados del poligono (por algo es un
exagono ;-) ) p1 para indicar donde dibujaremos dicho exagono y con "_i" decimos
que se trata de un poligono inscrito en un circulo del cual tendremos que definir
su radio.

Bueno el post a sio poko largo pero ejpero que sirva de pa aclara idea y ejpero
tambien ke tos los parroquianos y parroquianas no se me lien. Salu, Eomer.