AutoLISP es una eficaz herramienta de productividad que permite automatizar flujos de trabajo y ampliar la funcionalidad de AutoCAD LT.
Aunque AutoLISP no es una función nueva, a partir de la versión 2024, está disponible en AutoCAD LT.
La implementación de AutoLISP en AutoCAD LT permite ejecutar la mayoría de los programas de AutoLISP desarrollados durante los últimos casi 40 años con algunas limitaciones. Aunque no es necesario ser un experto en AutoLISP para aprovechar muchos de los programas existentes, aprender a programar en AutoLISP es una habilidad que le permitirá descubrir una productividad inexplorada.
Por lo general, los programas de AutoLISP se almacenan en un archivo de texto con la extensión .lsp. En los siguientes ejercicios, una de las primeras tareas que aprenderá es a cargar archivos de AutoLISP antes de descubrir algunos aspectos básicos de la programación en AutoLISP. Y no, no necesita experiencia previa en programación para aprovechar las ventajas de AutoLISP. En muchos casos, algunos conceptos nuevos y su conocimiento actual de los comandos y las variables de sistema de AutoCAD es todo lo que realmente necesita.
Al empezar a utilizar AutoLISP, en lugar de escribir sus propios programas, es probable que cargue un archivo de AutoLISP que haya encontrado en línea o que haya creado su empresa. Los archivos de AutoLISP se pueden cargar de las siguientes formas:
Se pueden utilizar los siguientes métodos para cargar archivos de AutoLISP al inicio, al abrir un dibujo o manualmente.
Cargar al inicio | Cargar manualmente |
---|---|
|
|
Como puede ver, AutoCAD LT es capaz de cargar archivos de AutoLISP de diversas formas. Los métodos que utilice dependerán de la configuración del entorno de dibujo. Por ahora, veremos cómo cargar un archivo de AutoLISP con el cuadro de diálogo Cargar/Descargar aplicaciones.
También se puede introducir APPLOAD en la solicitud de comando.
Si tiene una instalación con un idioma distinto al inglés, como es-es, seleccione esa carpeta en lugar de en-us.
El archivo acadlt2024doc.lsp es uno de los archivos de AutoLISP con nombre especial que AutoCAD LT busca y carga si se encuentra en cada dibujo que se abre o se crea. Este archivo de AutoLISP contiene algunos comandos y funciones personalizadas de AutoLISP utilizadas por el producto. En este caso, lo vamos a utilizar como un archivo de ejemplo.
En el cuadro de mensaje, "acadlt2024doc.lsp correctamente cargado(s)". se muestra en la esquina inferior izquierda del cuadro de diálogo y en la ventana de la línea de comando.
De este modo, se inicia el comando DDGRIPS definido por AutoLISP en el archivo acadlt2024doc.lsp. El comando DDGRIPS abre el cuadro de diálogo Opciones y establece la ficha Selección como actual.
En el ejercicio anterior, ha utilizado el comando DDGRIPS. Es muy probable que se esté preguntando cómo habría sabido que es un comando en el archivo AutoLISP cargado. En algunos casos, los programas pueden utilizar código que incluye un mensaje directamente en la ventana de la línea de comando para que sepa los comandos que se han definido y se pueden utilizar. Sin embargo, no siempre es así, y es posible que deba abrir un archivo de AutoLISP para saber los comandos que se han definido. Un archivo de AutoLISP se puede abrir mediante el Bloc de notas.
En la imagen siguiente, se muestra parte del archivo acadlt2024doc.lsp abierto en el Bloc de notas. Los comandos definidos por AutoLISP que se pueden introducir en la solicitud de comando presentan el prefijo c:. El texto que aparece justo después de c: es el nombre del comando.
Aunque no existe un lugar específico en el que deba almacenar los archivos AutoLISP que descargue o cree antes de utilizarlos, es recomendable almacenarlos en una ubicación compartida. Al igual que ocurre con las plantillas de dibujo y las bibliotecas de bloques, conviene asegurarse de que todos los delineantes de un equipo o de la empresa tengan acceso a los mismos archivos de AutoLISP. Debe tener en cuenta lo siguiente:
Una vez que haya identificado una carpeta para almacenar los archivos de AutoLISP, deberá informar a AutoCAD LT de la ubicación de la carpeta mediante los parámetros Ruta de búsqueda de archivo de soporte y Ubicaciones de confianza de la ficha Archivos del cuadro de diálogo Opciones. AutoCAD LT debe saber dónde se encuentran los archivos LSP por los siguientes motivos:
En los pasos siguientes, se muestra cómo añadir la carpeta C:\AutoLISP Files a los parámetros Ruta de búsqueda de archivo de soporte y Ubicaciones de confianza. Utilizará esta ubicación más adelante para crear un archivo LSP con algunos programas de AutoLISP cortos.
Las carpetas enumeradas son aquellas en las que AutoCAD LT busca los archivos de AutoLISP entre otros tipos de archivos personalizados utilizados para almacenar patrones de sombreado, tipos de línea y alias de comando, y definir nuevos elementos de la interfaz de usuario.
La carpeta se ha añadido al final de la lista.
La carpeta se ha añadido al final de la lista.
Además de marcar las carpetas con los archivos de AutoLISP como de solo lectura e identificar esas carpetas como de confianza, AutoCAD LT también ofrece algunos parámetros adicionales que ayudan a proteger AutoCAD LT frente a malware y código malintencionado. Puede acceder a la configuración de seguridad de AutoCAD LT mediante las siguientes acciones:
La capacidad de cargar y gestionar archivos AutoLISP que encuentre en línea, o que su empresa ya tenga, es solo el principio para ser más productivo con AutoLISP en AutoCAD LT. Después de empezar a utilizar los programas de AutoLISP desde los archivos de AutoLISP que ya tiene en sus flujos de trabajo diarios, es posible que llegue el día en que desee realizar cambios en ellos o incluso escribir sus propios programas básicos de AutoLISP.
Puede que piense que AutoLISP es un lenguaje de programación, pero que usted no es un programador. Si bien es cierto que AutoLISP es un lenguaje de programación, no es necesario ser programador para aprender y escribir programas de AutoLISP. El programa de AutoLISP más sencillo es una única instrucción que permite ejecutar un comando o cambiar el valor de una variable del sistema.
Una instrucción de AutoLISP comienza con un paréntesis de apertura y termina con uno de cierre. A continuación, se muestra un ejemplo de una instrucción de AutoLISP que activa el modo Ortogonal con la variable de sistema ORTHOMODE.
(setvar "orthomode" 1)
Al igual que los nombres de comandos y las variables de sistema, las instrucciones de AutoLISP se pueden introducir en la solicitud de comando de AutoCAD LT. Vamos a probarlo:
El botón de la barra de estado aparece en gris cuando está desactivado.
El botón Modo Orto de la barra de estado debería estar activado y mostrarse en color azul.
Enhorabuena por escribir su primera instrucción de AutoLISP. ¡Ya es un programador!
La instrucción de AutoLISP anterior utiliza la función setvar para establecer el valor de una variable de sistema. También hay una función que devuelve el valor actual de una variable de sistema denominada getvar. Las funciones setvar y getvar son solo dos de los cientos de funciones que se pueden utilizar para automatizar flujos de trabajo con AutoLISP. Aunque existen cientos de funciones que componen el lenguaje de programación de AutoLISP, solo es necesario conocer cinco funciones clave para empezar. Ya conoce dos de ellas. Las cinco funciones son las siguientes:
Ahora que conoce las cinco funciones clave y ha utilizado la función setvar para definir una variable de sistema, veamos cómo se utiliza la función command. Antes de continuar, debe saber que los nombres de comando pueden ir precedidos de los caracteres . (punto) y _ (subrayado), mientras que los nombres de opciones de comando pueden ir precedidos del carácter _ (subrayado). Estos caracteres se utilizan para garantizar que el comando proporcionado se ejecuta de la forma esperada.
A continuación, se explica el significado de estos caracteres:
En los pasos siguientes, dibuje un círculo y aplique zoom a la extensión del dibujo mediante la función command.
Se dibuja un círculo en la capa actual con un radio de 5 unidades a 5,5.
El dibujo se amplía hasta la extensión del círculo si es el único objeto incluido en él; de lo contrario, se amplía hasta la extensión de todos los objetos del dibujo.
Ahora que ha visto algunas instrucciones de AutoLISP, vamos a examinar más detenidamente las distintas partes y la sintaxis de las instrucciones de AutoLISP de ejemplo:
Aunque introducir instrucciones de AutoLISP directamente en la solicitud de comando es una forma excelente de empezar a aprender a usar AutoLISP, ya que se obtiene información en tiempo real, no es muy eficaz volver a escribir las instrucciones repetidamente en la solicitud de comando. Un método que le permite reutilizar instrucciones de AutoLISP es agruparlas como un comando personalizado con la función defun.
Vamos a probar la función defun y definir un comando personalizado denominado ZP que aplique zoom a la vista anterior del dibujo:
C:ZP se envía al comando.
Se restablece la vista anterior.
Se restablece ahora la vista anterior.
Aunque se pueden definir comandos personalizados con la función defun para facilitar la reutilización de las instrucciones de AutoLISP, los comandos que se definen solo están disponibles en los dibujos en los que se han definido y mientras el dibujo permanezca abierto. En la siguiente sección, aprenderá a crear un archivo de AutoLISP para almacenar los comandos personalizados de AutoLISP, junto con otras instrucciones de AutoLISP que puede que desee ejecutar al cargar el archivo de AutoLISP.
Puede obtener más información sobre las cinco funciones principales, junto con las cientos de otras funciones disponibles en el manual de referencia de AutoLISP.
Ahora que sabe cómo introducir expresiones de AutoLISP en la solicitud de comando, veamos cómo podemos crear un archivo de AutoLISP y almacenar los comandos personalizados y las expresiones de AutoLISP para que estén disponibles cuando los necesite. Los archivos de AutoLISP son archivos de texto ASCII normales que se pueden crear con un editor de texto sencillo, como el Bloc de notas, y presentan la extensión de archivo .lsp. No es recomendable utilizar una aplicación de procesador de texto como Write o Word, ya que puede introducir formato y caracteres especializados que causarán problemas cuando llegue el momento de cargar el archivo LSP.
En los ejercicios siguientes, aprenderá a crear un archivo LSP, añadir algunas instrucciones de AutoLISP al archivo LSP, cargar el archivo LSP y, a continuación, probar los comandos definidos en el archivo LSP. Además de las cinco funciones clave mencionadas anteriormente, también se presentará lo siguiente:
Ahora vamos a crear nuestro propio archivo y cargarlo en AutoCAD LT, como se indica a continuación:
; Zoom commands (defun c:ze () (command "._zoom" "_e")) (defun c:zp () (command "._zoom" "_p")) ; Creates the layer A-ANNO-REV, draws a rectangle and ; converts the rectangle to a revision cloud with arc lengths ; based on half the current value of the LTSCALE system variable (defun c:rv () (setq old-layer (getvar "clayer")) (command "._-layer" "_m" "A-ANNO-REVCLD" "_c" "1" "" "") (command "._rectang" PAUSE PAUSE) (command "._revcloud" "_a" (/ (getvar "ltscale") 2) "" "_o" "_l" "_n") (setvar "clayer" old-layer) ) ; Display a general message in the command line upon load (prompt "\nLoaded MyFirst.lsp") (princ)
Si los programas necesitan utilizar caracteres Unicode, seleccione UTF-8.
Ahora que ha creado el archivo, en lugar de utilizar el cuadro de diálogo Cargar/Descargar aplicaciones que se muestra con el comando APPLOAD, cargará el archivo LSP mediante el Explorador de archivos.
Una vez cargado, debería ver el mensaje "Loaded MyFirst.lsp" en el historial de la ventana de la línea de comandos que se muestra mediante la función de solicitud.
Observe que la nube de revisión es roja y se coloca en la capa A-ANNO-REVCLD. Esto se puede ver en la lista desplegable Capa del grupo Capas de la cinta de opciones o en las paletas Propiedades/Propiedades rápidas.
El dibujo se amplía hasta su extensión.
Se restablece la vista anterior del dibujo.
El cuadro de diálogo Cargar/Descargar aplicaciones se puede utilizar no solo para cargar manualmente archivos de AutoLISP según sea necesario, sino también para cargar automáticamente archivos de AutoLISP al abrir o crear un nuevo archivo de dibujo. El área Cargar al inicio del cuadro de diálogo Cargar/Descargar aplicaciones permite especificar los archivos de AutoLISP que se cargarán automáticamente.
A continuación, se indican los pasos para añadir un archivo de AutoLISP a Cargar al inicio:
También se puede introducir APPLOAD en la solicitud de comando.
Si ha creado el archivo myfirst.lsp en la sección anterior, puede seleccionarlo.
El archivo de AutoLISP que ha añadido a Cargar al inicio se carga automáticamente en el dibujo actual.
Cuando se inicia AutoCAD LT, o se crea o se abre un dibujo, AutoCAD LT busca cuatro archivos de AutoLISP con nombres específicos. Si se encuentran los archivos, estos se cargan automáticamente. Estos archivos ayudan a asegurarse de que el entorno de AutoCAD LT se haya configurado de la forma esperada y de que los comandos definidos por AutoLISP estén disponibles al crear o abrir un dibujo.
AutoCAD LT busca y carga automáticamente estos cuatro archivos cuando se encuentran en sus rutas de soporte:
Los archivos acadlt.lsp y acadltdoc.lsp debe crearlos usted; no forman parte de la instalación estándar de AutoCAD LT. Los archivos acadlt2024.lsp y acadltdoc2024.lsp se incluyen con el programa y no se deben modificar.
Puede utilizar los archivos acadlt.lsp y acadltdoc.lsp como cualquier otro archivo LSP con la adición de estos archivos que se cargan automáticamente en los contextos mencionados anteriormente. Estos dos archivos se pueden utilizar para cargar otros archivos de AutoLISP mediante la función de carga de AutoLISP, ejecutar instrucciones de AutoLISP mientras se cargan estos archivos y establecer definiciones de comandos de AutoLISP para que estén listas para su uso una vez que se haya creado o abierto un dibujo. La función de carga de AutoLISP acepta los siguientes dos parámetros: el archivo de AutoLISP que se va a cargar, que es necesario, y un segundo parámetro opcional que es un mensaje que se mostrará si el archivo de AutoLISP que se está cargando no se encuentra en una de las rutas de búsqueda de archivo de soporte de AutoCAD LT. Consulte la sección Administrar y proteger archivos de AutoLISP para obtener información sobre la configuración de rutas de búsqueda de archivos de soporte.
En los pasos siguientes, se explica cómo crear el archivo acadltdoc.lsp en la carpeta C:\AutoLISP Files, añadirle algunas instrucciones de AutoLISP, cargarlo en AutoCAD LT y, a continuación, comprobar que se haya cargado el archivo.
; AutoLISP to be executed in each drawing created or opened ; Set Object Snap and Ortho modes (setvar "osmode" 4133) (setvar "orthomode" 1) ; Load the LSP file created earlier under the ; "Store AutoLISP Statements in AutoLISP (LSP) Files" section (load "myfirst.lsp" "\nMyFirst.lsp file couldn't be found") ; Display a general message in the command line upon load (prompt "\nLoading my custom programs") (princ)
En la ventana de la línea de comando, debería aparecer el mensaje "Loading my custom programs" (Cargando mis programas personalizados), que procede de una de las dos últimas líneas introducidas anteriormente en el paso 2.
Los botones de la barra de estado deben activarse de nuevo.
Un paquete de módulos de extensión es una estructura de carpetas con un archivo manifest denominado PackageContents.xml que informa a AutoCAD LT de los archivos y los parámetros que componen el módulo de extensión. Aunque no se necesitan paquetes de módulos de extensión para cargar programas de AutoLISP en AutoCAD LT como ya ha aprendido en este artículo, pueden facilitar la administración de archivos de AutoLISP y son una forma más segura de implantar programas personalizados que con el uso de los archivos acadlt.lsp o acadltdoc.lsp. En la mayoría de los casos, los paquetes de módulos de extensión también pueden ayudar a configurar AutoCAD LT sin necesidad de utilizar el cuadro de diálogo Opciones.
Para obtener información sobre los paquetes de módulos de extensión, consulte el Ejemplo: estructura de carpetas .bundle básica de un módulo de extensión.
La automatización de los flujos de trabajo puede ayudar a mejorar la productividad y reducir las tareas repetitivas. Aunque la programación en AutoLISP tiene una curva de aprendizaje, con solo aprender las cinco funciones clave, podrá crear pequeños programas que le ayudarán a darse cuenta de lo valioso que puede ser AutoLISP en sus flujos de trabajo diarios.
A continuación, se indican algunos comandos y variables de sistema de uso frecuente en relación con AutoLISP.
Comando | Descripción |
---|---|
CARGAAUTOAPL | Muestra o vuelve a cargar todos los módulos de extensión de la carpeta de módulos de extensión de la aplicación. |
APPLOAD | Carga y descarga aplicaciones y define las aplicaciones que se van a cargar al iniciar. |
OPCIONES | Personaliza los parámetros del programa. |
OPCIONESSEGURIDAD | Controla las restricciones de seguridad para ejecutar archivos ejecutables en el producto. |
ANULADEF | Permite que un comando definido en la aplicación modifique un comando interno. |
Variable de sistema | Descripción | Valor por defecto | Se ha guardado en |
---|---|---|---|
ACADLSPASDOC | Controla si el archivo acad.lsp o acadlt.lsp de AutoCAD LT se cargará en todos los dibujos o solo en el primer dibujo abierto en una sesión. | 0 | Registro |
APPAUTOLOAD | Controla cuándo se cargan las aplicaciones de módulos de extensión. | 14 | Registro |
CLAYER | Establece la capa actual. | 0 | Dibujo |
CLIPROMPTUPDATE | Controla si la línea de comando muestra los mensajes y las solicitudes generados mientras un archivo de secuencia de comandos o de AutoLISP se ejecuta. | 1 | Registro |
CMDDIA | Controla la visualización del editor de texto in situ para los comandos ACOEDIC y DIRECTRIZR y la visualización de determinados cuadros de diálogo en los productos basados en AutoCAD. | 1 | Registro |
CMDECHO | Determina si las solicitudes y entradas se reproducen durante el funcionamiento del comando de AutoLISP. | 1 | Sin guardar |
FILEDIA | Suprime la visualización de los cuadros de diálogo de navegación de archivos. | 1 | Registro |
LEGACYCODESEARCH | Determina si la búsqueda de archivos ejecutables incluye la carpeta desde la que se ha iniciado el programa. | 0; puede estar bloqueado por un administrador de CAD. | Registro |
NOMUTT | Suprime la visualización de mensajes (silenciamiento) que no se suprimiría normalmente. | 0 | Sin guardar |
ORTHOMODE | Limita el movimiento del cursor a la dirección perpendicular. | 0 | Dibujo |
OSMODE | Establece la referencia a objetos en ejecución. | 4133 | Registro |
SECURELOAD | Determina si los archivos ejecutables se cargarán únicamente desde carpetas de confianza. | 1; puede estar bloqueado por el administrador de CAD. | Registro |
TEXTEVAL | Determina cómo se evalúan las cadenas de texto introducidas mediante TEXTO (utilizando AutoLISP) o -TEXTO. | 0 | Sin guardar |
TRUSTEDPATHS | Permite especificar las carpetas que tienen permiso para cargar y ejecutar los archivos que contienen código. | Varía; puede estar bloqueado por un administrador de CAD. | Registro |