Cómo usar ChatGPT para crear aplicaciones LISP en NanoCAD sin saber programar

interfaz ChatGPT

Si eres un usuario de CAD y te gustaría mejorar tus habilidades en NanoCAD pero no sabes cómo programar en LISP, ¡no te preocupes! En este artículo, te mostraremos cómo utilizar ChatGPT, un modelo de lenguaje de inteligencia artificial desarrollado por OpenAI, para crear aplicaciones LISP en NanoCAD sin tener conocimientos previos de programación.

LISP es un lenguaje de programación utilizado en aplicaciones CAD como AutoCAD y NanoCAD para automatizar procesos rutinarios, realizar cálculos y mucho más. Aunque puede parecer complicado al principio, en realidad es bastante accesible. Con la ayuda de ChatGPT, aprenderemos cómo utilizar LISP en NanoCAD para llevar a cabo diversas tareas como dibujar figuras geométricas, manipular capas, insertar y modificar bloques, entre otras.

Sigue leyendo para descubrir cómo ChatGPT puede convertirse en tu asistente personal de programación LISP, guiándote a través del proceso de creación de aplicaciones útiles que te ayudarán a sacar el máximo provecho de tus proyectos de diseño en NanoCAD.

Cómo cargar tu LISP en NanoCAD y ponerlo en marcha

Bienvenido a la primera sección de nuestra guía para usar aplicaciones LISP en NanoCAD con la ayuda de ChatGPT. En esta parte, aprenderemos cómo cargar y ejecutar una aplicación LISP en NanoCAD sin complicaciones.

Para empezar, necesitarás preparar un archivo con el código LISP que deseas usar en NanoCAD. Copia el código generado por ChatGPT y pégalo en tu editor de texto favorito. Asegúrate de guardar el archivo con la extensión ".lsp", como por ejemplo "mi-aplicacion.lsp".

Una vez que tengas el archivo listo, es hora de cargarlo en NanoCAD. Abre el programa y ve al menú "Manage" en la parte superior de la ventana. Desde allí, selecciona "Applications" y luego "Load Application". Aparecerá un cuadro de diálogo donde deberás buscar y seleccionar el archivo LISP que acabas de guardar. Haz clic en "Load" y tu aplicación LISP estará lista para usarse en NanoCAD.

Fig. 1. Load/Unload Applications
Fig. 1. Load/Unload Applications

Para ejecutar la función LISP, simplemente haz clic en la barra de comandos y escribe las primeras letras del nombre de la función que deseas ejecutar. La barra de comandos sugerirá el nombre de la función LISP que has definido y podrás seleccionarla con las teclas de flecha o simplemente escribir el nombre completo. Una vez que hayas seleccionado la función, presiona "Enter" y la aplicación LISP se ejecutará en NanoCAD.

Cómo usar ChatGPT para generar código LISP

Para generar código LISP, simplemente abre ChatGPT y escribe tu tarea de manera clara y específica. Por ejemplo, vamos a crear un LISP que dibuja una estrella de 5 puntas en el espacio modelo de NanoCAD.

Escribe en el chat el siguiente texto: "Quiero crear una función LISP llamada 'Estrella' que inserte una estrella de 5 picos en NanoCAD. Al ejecutar el código, debe preguntar 'Por favor, señale el diámetro de la estrella' para definir sus dimensiones."

Obtendrás una respuesta con el código y los pasos a seguir para ejecutarlo.

Fig. 2 Código creado por ChatGPT
Fig. 2 Código creado por ChatGPT

Copia el código y guárdalo en un archivo de texto con un nombre aleatorio y con la extensión .lsp; en mi caso, utilicé testlisp.lsp. Ve a NanoCAD y carga tu LISP siguiendo los pasos del capítulo anterior.

Para ejecutar nuestra función, escribe el comando ESTRELLA en la barra de comandos.

Fig. 3. Ejecución de la función ESTRELLA
Fig. 3. Ejecución de la función ESTRELLA

Yo señalé los siguientes parámetros: diámetro 100, centro 0,0. En la figura a continuación, podemos ver el resultado de la ejecución de nuestro código.

Fig. 4. Resultado de la primera ejecución
Fig. 4. Resultado de la primera ejecución

Como podemos ver, el resultado es completamente decepcionante. Al parecer, nuestra inteligencia artificial no sabe qué es una estrella, o su interpretación es demasiado surrealista. Por eso, tendremos que darle a ChatGPT un poco más de detalles.

Una de las principales ventajas de ChatGPT es la posibilidad de recordar los pasos anteriores e interpretar las nuevas interacciones en el contexto de los pasos realizados anteriormente.

Para corregir el código, simplemente escribe en el chat: "El código se ejecutó sin problemas, pero lo que dibujó no fue una estrella, sino una figura con 5 picos, pero que no tiene simetría circular".

Obtén un nuevo código y repite otra vez todos los pasos anteriores. Observa el resultado en la figura 5.

Fig. 5 Resultado de la segunda ejecución
Fig. 5 Resultado de la segunda ejecución

Todavía estamos muy lejos de dibujar una estrella, pero vamos en el camino correcto. Le damos más detalles a ChatGPT para que cambie el LISP otra vez.

Escribí las siguientes recomendaciones: "Ya está mejor, pero lo que dibujaste todavía no es una estrella. Te salió un pentágono. Una estrella es una figura muy parecida a un pentágono, pero en vez de tener 5 picos externos, tiene otros 5 picos internos con un diámetro menor al externo. Cambia el código para que pregunte el diámetro de los picos externos e internos".

Fig. 6 Resultado de la tercera ejecución
Fig. 6 Resultado de la tercera ejecución

En el nuevo código aparece un nuevo parámetro "diámetro interno"; lo indicamos como 50.

Como vemos en la figura 6, el resultado ya es casi correcto, pero tiene un pequeño error en el orden de unir los puntos. Informamos a ChatGPT del error: "Tienes un error con el ángulo de los puntos interiores; el punto p2 debería estar en el lugar donde se encuentra el punto p10".

Fig. 6 Resultado de la cuarta ejecución
Fig. 6 Resultado de la cuarta ejecución

Ya casi lo logramos; falta pedirle a ChatGPT que gire la estrella 180 grados para que la figura quede con la apariencia deseada. Escribe en el chat: "El resultado es mucho mejor, pero la estrella necesita girarse 180 grados. Modifica el código para que la estrella quede orientada correctamente."

Una vez que ChatGPT te entregue el código modificado, copia y pega el nuevo código LISP en tu archivo .lsp y vuelve a cargarlo en NanoCAD siguiendo los pasos mencionados anteriormente. Ejecuta la función "Estrella" nuevamente e ingresa los diámetros interno y externo que desees.

Fig. 7 Resultado final
Fig. 7 Resultado final

Como pueden ver, hemos logrado en cinco pasos obtener el código de una aplicación LISP que dibuja una estrella, indicando el diámetro exterior, interior y un punto de inserción. Todo esto lo hicimos sin tener conocimientos previos de programación, simplemente interactuando con ChatGPT como si estuviéramos conversando con un programador.

A continuación, les presento el código final de nuestra función ESTRELLA:

(defun c:Estrella (/ diámetroExterno diámetroInterno centro p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 ángulo ánguloIncr plineId)  
(setq diámetroExterno (getreal "\nPor favor, señale el diámetro de los picos externos: "))  
(setq diámetroInterno (getreal "\nPor favor, señale el diámetro de los picos internos: "))  
(setq centro (getpoint "\nPor favor, seleccione el centro de la estrella: "))
   
(setq ánguloIncr (/ pi 5)) ; ángulo entre dos picos consecutivos en radianes  
(setq ángulo (- (/ pi 2) ánguloIncr)) ; ángulo inicial  

; Puntos externos  
(setq p1 (polar centro ángulo (/ diámetroExterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p3 (polar centro ángulo (/ diámetroExterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p5 (polar centro ángulo (/ diámetroExterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p7 (polar centro ángulo (/ diámetroExterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p9 (polar centro ángulo (/ diámetroExterno 2)))  

; Puntos internos  
(setq ángulo (+ ángulo ánguloIncr))  
(setq p10 (polar centro ángulo (/ diámetroInterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p2 (polar centro ángulo (/ diámetroInterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p4 (polar centro ángulo (/ diámetroInterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p6 (polar centro ángulo (/ diámetroInterno 2)))  
(setq ángulo (+ ángulo (* 2 ánguloIncr)))  
(setq p8 (polar centro ángulo (/ diámetroInterno 2)))  

(setq plineId (entlast))  
(command "pline" p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p1 "")  
(setq plineId (entlast))    

; Rotar la estrella 180 grados  
(command "rotate" plineId "" centro 180)  
(princ)
)

Conclucion

Hemos logrado llevar a cabo una tarea que, aunque pueda no parecer muy práctica, permite entender el modo de interactuar para crear aplicaciones LISP en NanoCAD con la ayuda de ChatGPT.

Además de la tarea de dibujo, LISP permite automatizar y mejorar procesos en diseño asistido por computadora. Esto incluye la creación y modificación de capas y bloques, automatización en la generación de planos, cálculos de áreas y volúmenes, rutinas de etiquetado y generación de tablas.

La colaboración con ChatGPT simplifica y agiliza flujos de trabajo en el diseño y producción de proyectos. Al ser una herramienta versátil, también puede aplicarse en otros lenguajes de programación, expandiendo sus posibilidades en el ámbito del diseño asistido por computadora.