¿Cuál sería el motivo de elegir programar en el lenguaje de programación Visual Basic con .NET, en lugar de usar sólo AutoLisp o Visual Lisp para crear un nuevo comando de AutoCAD?

Programar en AutoLisp o Visual Lisp tiene una pequeña desventaja en comparación con programar con .NET (Visual Basic, Visual C#, etc) y es la creación de la interfaz gráfica, es decir la creación de cuadros de diálogo.

Si tu objetivo es desarrollar una aplicación compleja que interactúe con AutoCAD, Civil 3D u otra aplicación vertical, programar en Visual Studio es lo más recomendable debido a la facilidad para crear formularios de Windows (cuádros de diálogo).

En este post, agregaremos el código necesario para crear un nuevo comando, este comando tendrá el objetivo de mostrar un cuadro de diálogo con el cual tendremos las siguientes 2 opciones:

  1. Exportar las coordenadas de los vértices de una polilínea seleccionada, así como la capa en la que se encuentra y posteriormente escribir cada uno de esos datos en celdas de filas y columnas de Microsoft Excel.
  2. Crear una nueva polilínea tomando como datos la información de coordenadas de los vértices desde una hoja de cálculo de un archivo de Microsoft Excel.

Crear un nuevo comando de AutoCAD con Visual Basic .NET

Al crear un nuevo proyecto de DLL en Visual Studio, automáticamente el IDE agrega un archivo de clase llamado Class1.vb, con la estructura necesaria para empezar a programar.

Renombra ese archivo con el siguiente nombre: “Comandos.vb”. Este archivo será el que contenga los comandos que crearemos, los cuales podrán ser invocados desde el editor de AutoCAD, puedes agregar uno o más comandos en este archivo, para nuestro ejemplo, crearemos un sólo comando.

El IDE quedará como la siguiente imagen:

Reemplazaremos el código por defecto por el siguiente para crear un nuevo comando denominado “AcadExcelNet”:

Imports Autodesk.AutoCAD.ApplicationServices
 
Namespace ACADExcelNE
 
    Public Class Commands
 
        'Proyecto de creación de una app DLL para conectar Microsoft Excel con AutoCAD.
        'Desarrollado por Mario Torres Pejerrey para el portal DevCADLisp.com.
        'DevCADLisp 2020: https://www.devcadlisp.com/
        'https://mariotorres.pe/
 
       <Autodesk.AutoCAD.Runtime.CommandMethod ("AcadExcelNet")>
        Public Sub LoadUIDlg()
 
            Try
                'Mostrar la UI
                Application.ShowAlertDialog ("Aquí se mostrará un cuadro de diálogo: ")
 
            Catch ex As System.Exception
                Application.ShowAlertDialog ("Algo ocurrió al cargar la rutina: " & ex.Message)
                Exit Sub
            End Try
 
        End Sub
 
    End Class
 
End Namespace

En el IDE, el archivo “Comandos.vb” deberá de quedar con el siguiente aspecto:

A continuación, vamos a compilar el código y crear así el ensamblado de clases (biblioteca de clases). El compilador inmediatamente después de revisar la correcta escritura del código genera un archivo con extensión DLL el cual tendrá el mismo nombre que se indicó para el proyecto.

Verifica que el IDE de Visual Studio te informe que la compilación realizada fue correcta, esta información la podrás observar en la parte inferior de la ventana de Salida y en la barra de estado.

Para finalizar esta parte del proyecto, la ventana de Salida del IDE te muestra la ruta en donde se ha generado el archivo DLL, en este ejemplo es:
C:\Users\mario\source\repos\DevCADNet\bin\Debug\

Aquí encontrarás los archivos que necesita la aplicación para poderse ejecutar, el archivo principal es el ensamblado que hemos generado, en este caso el archivo “DevCADNet.dll“, pero adicionalmente se han agregado a esta carpeta los archivos de referencia de AutoCAD:

Estos archivos de referencia generalmente ya vienen incluidos en las carpetas de instalación de AutoCAD, por lo que no es necesario distribuirlos, pero si deseas tener una mayor seguridad, distribuye el DLL con los archivos de referencia incluidos automáticamente en la carpeta de salida.

Cargar el ensamblado en AutoCAD y ejecutar el nuevo comando

Para cargar un nuevo ensamblado (archivo DLL) en AutoCAD, se deberá de usar el comando “Netload”, al invocar este comando, AutoCAD te mostrará un cuadro de diálogo que te permitira ubicar el archivo y cargarlo, en este caso debes ubicar el dll desde la carpeta indicada lineas arriba:

Si es la primera vez que cargas ese archivo, AutoCAD te mostrará un cuadro de mensaje en el que informa que el archivo DLL se está cargando desde una ruta ajena a los archivos de la aplicación y te pide que confirmes si estás seguro de cargarlo:

Finalmente, escribe en la línea de comando de AutoCAD el nombre del nuevo comando de AutoCAD que hemos creado gracias a Visual Basic .NET:

Resultado

A continuación AutoCAD te mostrará un cuadro de mensaje:

Este mensaje se programó dentro del procedimiento (sub) público “LoadUIDlg()“:

Mas adelante, reemplazaremos esta línea de código por el código necesario para la carga del cuadro de diálogo proyectado inicialmente.

Ir al siguiente tema: Agregar un formulario de Windows con controles