martes, 3 de diciembre de 2002

[ACAD] Re: NUEVA CONSULTA-Autor: Eomer

Una forma en la que a mi gusta hacerlo es con la función (autoload), esta
definida en el archivo acadr14.lsp si se trata de AutoCAD 14.0 o en el fichero
acad2000doc.lsp si se trata de AutoCAD 2000 o superior. En el caso de AutoCAD
14.0 dicha función se carga automaticamente pero en el caso de AutoCAD 2000 o
superior esto no ocurre y habrá que establecer algún mecanismo para que
acad2000doc.lsp se cargue automaticamente. Lo que haria seria crear un archivo
llamado acad.lsp en uno de los directorios de soporte de AutoCAD e ir incluyendo
llamadas a cada una de las rutinas que quiera usar cuando inicie una sesion de
dibujo con AutoCAD, por ejemplo el formato de cada llamada dentro de este fichero
"acad.lsp" podria ser algo como esto:

(autoload "c:/supp/lisp/rutina1.lsp" '("cmd1" "cmd2" "cmd3"))

donde "c:/supp/lisp" seria la ubicacion de la rutina AutoLISP llamada
"rutina1.lsp" y "cmd1" "cmd2" "cmd3" serian las ordenes definidas dentro de
"rutina1.lsp" del modo

(defun c:cmd1()
...
)

(defun c:cmd2()
...
)

(defun c:cmd3()
...
)

La ventaja más inmediata de este método de carga de rutinas es que sólo se
cargaran las rutinas cuyos comandos invoques desde la linea de ordenes de
AutoCAD, pero las tendras TODAS disponibles en todo momento. Esto supone un gran
ahorro de memoria, ya que sólo usas las rutinas que necesitas.
Una forma rápida de conseguir tener la función autoload disponible en AutoCAD
2000 y superiores es poner como primera sentencia en "acad.lsp" lo siguiente:

(load "acad2000doc.lsp")

que es donde se halla definida dicha función, así una vez cargada en memoria ya
la puedes usar lo modo que he explicado más arriba.
Creo que no me dejo nada, espero que sirva, Salud, Eomer.