Índice de contenidos
Lo admito me encanta AutoLISP y lo considero mi idioma “hogar”.
Pero también entiendo que mi amor por el idioma no es universal. Puede que no te consideres un programador, o puede que te resulte intimidante. Realmente no tiene que ser así, e incluso con un conocimiento mínimo, aún puede lograr mucho.
Esta serie de tres partes le ayudará a tomar conciencia del tipo de cosas que puede hacer con AutoLISP en tres niveles de experiencia: Principiante, Intermedioy Avanzado. En este momento, vamos a empezar desde el principio.
Lo que un principiante debe saber
Creo que es importante que cualquier usuario de AutoLISP sepa qué es. LISP significa LISt PAGSprocesando Esa es tu primera pista. Todo en el lenguaje es una lista de alguna forma. Necesitará saber sobre ellos, ya sea que estén definidos como LISTA, CONTRAS, PAR DE PUNTOS o S-EXPRESIÓN (o simplemente EXPRESIÓN para abreviar).
Por supuesto, hay varios tipos de datos con los que deberá familiarizarse. AutoLISP considera una LISTA o una CONS como un tipo de datos. Otros incluyen CADENAS, números REALES y ENTEROS.
Nota: Una de las razones por las que AutoLISP es tan fácil para los que no son programadores (gente como nosotros) es que no tiene que administrar los tipos de datos y la asignación de memoria como otros lenguajes. No hay necesidad de compilar su código tampoco. De hecho, el intérprete está integrado en AutoCAD, por lo que puede ejecutar expresiones directamente desde la línea de comandos.
En cuanto a la terminología y la sintaxis básicas, debe saber que los elementos dentro de una lista son ÁTOMOS. Las funciones que utiliza AutoLISP se llaman… FUNCIONES—¡así de fácil! Y las FUNCIONES a veces requieren ARGUMENTOS. Esos son los ÁTOMOS que siguen a la llamada de Función en la expresión.
La sintaxis se puede definir como las reglas que utiliza cualquier tipo de lenguaje. Las reglas básicas de AutoLISP son que todo está contenido dentro de un conjunto de paréntesis. Lo siguiente es que la función es siempre el primer elemento (o ÁTOMO) en una lista.
(nombrefunción argumento1 argumento2 …)
Nota: Es importante señalar aquí que cada Expresión devuelve un valor. Ese es un punto importante, ya que distingue a AutoLISP de otros lenguajes que se consideran lenguajes de “procedimiento”. En los términos más simples, esos lenguajes ejecutan una línea de código, pasan a la siguiente, y así sucesivamente hasta completarse. Sin entrar en una disertación sobre lenguajes “funcionales”, solo recuerde que, si bien podemos tender a usar AutoLISP de manera procesal dentro de un programa CAD, es mucho más poderoso que eso.
Debe tener en cuenta que las expresiones se pueden anidar y que las evalúa de adentro hacia afuera.
(nombrefunción argumento1 (nombrefunción argumento1 argumento2) argumento3 …)
Un principiante debe conocer las funciones internas de AutoLISP, especialmente DEFUN y SETQ. Otros pueden incluir:
- Funciones específicas de AutoLISP: COMMAND, GETVAR, SETVAR
- Funciones “GET…” específicas de AutoLISP: GETSTRING, GETREAL, etc.
- Funciones básicas de manipulación de listas: LIST, CONS, CAR, CDR, NTH
- Funciones condicionales básicas: IF, COND
- Funciones de igualdad: = /= < > EQ EQUAL
- Funciones matemáticas: + – / etc.
¿Qué más debe saber un principiante? Debe saber cómo cargar archivos externos de AutoLISP (LOAD, APPLOAD, Drag and Drop) y cómo identificar el nombre de la función necesaria para ejecutarlos en la línea de comandos.
Finalmente, debe saber cómo obtener ayuda. Ya sea a través del propio AutoCAD Ayuda sistema o varios sitios y foros en internet y Red de conocimientos de Autodesk, no dude en comunicarse. Hay unos 35 años de experiencia y programación, y siempre hay alguien dispuesto a ayudar.
Puede parecer que hay muchas cosas que saber, pero un poco ayuda mucho con AutoLISP. Lo que nos lleva a la siguiente sección…
Maneras en que un principiante puede usar AutoLISP para automatizar tareas
Con solo un nivel básico de conocimiento de AutoLISP, debería poder hacer lo siguiente.
Controle su entorno de AutoCAD. Asegúrese de que la configuración de su OSNAP siempre esté configurada de la manera que desee utilizando (setvar “OSMODE” 679). 679 equivale a la ejecutando instantáneas Me gusta. ¿No estás seguro de a qué se suman tus favoritos? Utilice (getvar “OSMODE”). Ya no necesita abrir el cuadro de diálogo Referencia a objetos y marcar y desmarcar casillas. ¡Lo acabas de automatizar! Casi cualquier variable de entorno que se te ocurra se puede configurar de esta manera.
Puede crear sus propios comandos cortos de teclado. Probablemente conozca las limitaciones de los alias de comando que se encuentran en el ACAD.pgp expediente. Puede crear un alias para el nombre del comando, pero no puede incluir ninguna opción.
Por ejemplo, Z es para Zoom. Pero aún debe ingresar E para obtener Extensiones. Con solo un poco de conocimiento de AutoLISP, un principiante debería poder escribir su propio comando ZE personalizado:
(desaparece c:ze ()
(comando “zoom” “e”)
(principe)
)
¿Te encuentras usando Move Previous a menudo? ¡Automatízalo!
(desaparece c:mp ()
(comando “mover” “p”)
(principe)
)
Siempre estamos hablando de mantener su dibujos limpios. Purga y Auditoría, te contamos. Deshazte de lo que no uses REGALOSy también ejecutar exagerar. ¿Por qué no utilizar su nuevo conocimiento de AutoLISP para automatizar esta secuencia? Debe tener todas las herramientas que necesita para escribir algo como lo siguiente:
(defun c:limpiador ()
(comando “auditoría” “Y”)
(comando “-purgar” “a” “” “n”) (comando “-purgar” “r” “” “n”)
(comando “-overkill” “todos” “” “”)
(principe)
)
Nota: Dos cosas del código anterior. La llamada a (princ) al final suprime el valor devuelto de funciones de nil en la línea de comando. Además, el guión delante de las llamadas de comando Purge and Overkill suprime el cuadro de diálogo del comando y usa la versión de línea de comando en su lugar. Muchos otros comandos hacen esto. Experimente… cree o configure sus capas con -Layer. Simplemente siga las indicaciones en la línea de comando y estará en camino.
Los últimos dos ejemplos crean nuevos comandos. SSA establece el SNAPANG variable basada en una línea seleccionada. Debajo, SS0 lo restablece a cero. A la derecha, TOGGLEDITOR cambia MTEXTADO del editor interno al Bloc de notas y viceversa.
Los presenté como una imagen para obligarlo a escribirlos, si lo desea. Copiar y pegar es útil, pero también debe poder escribirlos. Además, no use MS Word, ya que agrega un formato especial. Bloc de notas funciona bien.
Finalmente, un principiante de AutoLISP debe saber cómo agregar su comando personalizado a su menú. Haz lo tuyo Pestaña y panel de la cinta o agréguelo a un botón antiguo de la barra de herramientas para acceder fácilmente.
Pensamientos finales
En la segunda parte de nuestro seriehablaré sobre algunas de las funciones de AutoLISP que necesitará saber para convertirse en lo que yo llamaría un nivel intermedio y qué tipo de cosas puede hacer con esas habilidades.
Y finalmente, para citar mi AutoLISP original mentor desde hace mucho tiempo, “hasta la próxima, sigue programando”.
Source: Autodesk.com