¿Qué es la herramienta de desarrollo secundario de AutoCAD?
AutoCAD es el paquete de software de diseño y dibujo asistido por computadora interactivo de uso general más utilizado en microcomputadoras. La gran vitalidad de AutoCAD radica en su versatilidad, múltiples estándares industriales y arquitectura abierta. Su versatilidad lo hace ampliamente utilizado en maquinaria, electrónica, aviación, construcción naval, construcción, confección y otros campos. Sin embargo, los diferentes estándares de la industria requieren que cada campo personalice o desarrolle AutoCAD de acuerdo con sus propias características. Para satisfacer las necesidades de los usuarios, Autodesk ha lanzado tres generaciones de herramientas de desarrollo secundarias desde AutoCAD v2.18 hasta AutoCAD 2000, como se muestra en la Figura 1. Se puede decir que la versatilidad de AutoCAD proporciona las condiciones necesarias para su desarrollo secundario, y la arquitectura abierta de AutoCAD hace posible su desarrollo secundario.
El siguiente es un análisis de las tres generaciones de herramientas de desarrollo de AutoCAD.
1. La herramienta de desarrollo de primera generación: AutoLISP
AutoLISP es una herramienta de desarrollo secundaria proporcionada por AutoCAD V2.1986. Es un lenguaje de inteligencia artificial que es un subconjunto de COMMON LISP integrado en AutoCAD. Entre las herramientas de desarrollo secundarias de AutoCAD, es el único lenguaje interpretativo. Con AutoLISP, puede llamar directamente a casi todos los comandos de AutoCAD.
Una de las aplicaciones más típicas del lenguaje AutoLISP es implementar el diseño de programas de dibujo paramétrico, incluidos controladores de tamaño y programas de arrastre del mouse. Otra aplicación típica es hacer que AutoCAD proporcione módulos PDB para formar archivos DCL (Lenguaje de control de diálogo) para crear sus propios cuadros de diálogo.
AutoLISP tiene las siguientes ventajas: (1) Las reglas del lenguaje son muy simples, fáciles de aprender y usar; (2) Directamente dirigido a AutoCAD, fácil de interactuar (3) Explicación e implementación, resultados inmediatos; .
Las desventajas de AutoLISP son: (1) función única y capacidad de procesamiento integral deficiente; (2) interpretación y ejecución, el programa se ejecuta lentamente; (3) falta de un buen mecanismo de protección, confidencialidad deficiente del programa fuente; (4) LISP utiliza tablas para describir todo, lo que no puede reflejar bien el mundo real y los procesos, y es inconsistente con el pensamiento humano; (5) No puede acceder directamente a dispositivos de hardware ni leer y escribir archivos binarios.
Estas características de AutoLISP lo hacen adecuado sólo para que los usuarios finales capacitados completen sus propias tareas de desarrollo.
2. La herramienta de desarrollo de segunda generación: ADS
ADS (AutoCAD Development System) es un entorno de desarrollo flexible basado en el lenguaje C que AutoCAD R11 comenzó a soportar. ADS puede utilizar directamente el conocido compilador de C para compilar la aplicación en un archivo ejecutable y ejecutarla en el entorno de AutoCAD. No solo aprovecha las potentes funciones del entorno de AutoCAD, sino que también aprovecha la programación estructurada y la alta eficiencia operativa. del lenguaje C.
En comparación con AutoLISP, ADS tiene las siguientes ventajas: (1) Tiene capacidades de procesamiento complejas a gran escala; (2) Se ejecuta rápidamente después de compilarse en código de máquina (3) Puede detectar lenguajes de programación; durante la compilación Errores lógicos en (4) La legibilidad del código fuente del programa es mejor que AutoLISP. Pero sus inconvenientes son: (1) el lenguaje C es más difícil de dominar y usar con fluidez que el lenguaje LISP (2) 2) Los errores ocultos en los programas ADS a menudo hacen que AutoCAD e incluso el sistema operativo colapsen; compilado y ejecutado, lo cual no es fácil de ver en cuanto al efecto del código (4) El código fuente del programa ADS con la misma función es mucho más largo que el código de AutoLISP.
En tercer lugar, las herramientas de desarrollo de tercera generación: Visual LISP, ARX y VBA basadas en tecnología de automatización ActiveX, etc.
1.Visual LISP (VLISP)
VLISP es un reemplazo de AutoLISP. Es totalmente compatible con AutoLISP y proporciona todas sus funciones. Es una nueva generación del lenguaje AutoCAD LISP. VLISP amplía el lenguaje para interactuar con objetos a través de la interfaz de Microsoft ActiveX Automation.
Al mismo tiempo, al implementar la función de reactor, también se ha ampliado la capacidad de AutoLISP para responder a eventos. Como herramienta de desarrollo, VLISP proporciona un entorno de desarrollo integrado (IDE) completo, que incluye compiladores, depuradores y otras herramientas, que pueden mejorar la eficiencia del desarrollo secundario. Además, VLISP también proporciona herramientas para publicar aplicaciones independientes.
2.ARX
ARX (AutoCAD Runtime eXtension) es un entorno de desarrollo orientado a objetos y una interfaz de programa de aplicación basado en el lenguaje C++ posterior a AutoCAD R13. El programa ARX es esencialmente un programa de biblioteca de enlaces dinámicos (DLL) de Windows. Comparte el espacio de direcciones con AutoCAD ***, llama directamente a las funciones principales de AutoCAD y puede acceder directamente a la estructura de datos central y al código de la base de datos de AutoCAD. ampliando las clases y funciones inherentes de AutoCAD para crear nuevos comandos que puedan disfrutar plenamente de los privilegios de comando inherentes de AutoCAD. Los programas ARX se comunican directamente con AutoCAD y Windows a través del mecanismo de mensajería de Windows.
AutoLISP, ADS y ARX son todos lenguajes de programación integrados proporcionados por AutoCAD. AutoLISP y ADS se comunican con AutoCAD a través de comunicación de proceso interno (IPC), que son independientes de AutoCAD, mientras que ARX comparte el espacio de direcciones con AutoCAD en forma de DLL, como se muestra en la Figura 2. Entonces, en comparación con los dos primeros, es más rápido, más estable y más simple. Debido a que se ejecuta en entornos de programación Windows y VC++, requiere que los desarrolladores tengan mayores habilidades de programación.
La aplicación ObjectARX está basada en C++ y tiene las características de encapsulación de datos, herencia y polimorfismo en programación orientada a objetos. El software CAD desarrollado con ObjectARX tiene las características de buena modularidad, gran independencia, conexión simple, fácil uso, implementación eficiente de funciones internas y sólida reutilización de código. Admite la biblioteca de clases básica MFC y puede realizar muchas funciones complejas de manera concisa y eficiente.
Por cierto, aquí se menciona ADSRX. El entorno de desarrollo ADSRX de AutoCAD R14 es un subconjunto de ARX y es equivalente a ADS. Con ADSRX, los programas basados en AutoCAD se pueden escribir en lenguaje C y los programas ADS se pueden migrar fácilmente a programas ARX.
La Figura 3 compara las diferencias en las interfaces de programación de AutoLISP, ADS, ADSRX y ARX en términos de velocidad, exposición, funcionalidad y experiencia de programación requerida para usar cada API. Los parámetros de exposición muestran la posible gravedad de los errores de programación del usuario. Aunque la interfaz ARX es la más potente de las cuatro API, también es la que tiene más probabilidades de producir errores de programación graves, como la corrupción de estructuras de datos de AutoCAD. Otros entornos de programación requieren menos experiencia en programación pero ofrecen menor funcionalidad y alcance.
Se puede decir que AutoLISP se centra en la interactividad de las aplicaciones, ADS C/C++ se centra en la amplitud de las aplicaciones y ARX se centra en la inteligencia de las aplicaciones.
3. VBA y otras herramientas de desarrollo basadas en tecnología de automatización ActiveX.
ActiveX Automation es un conjunto de estándares de Microsoft, anteriormente conocido como tecnología OLE Automation. Este estándar permite que una aplicación de Windows controle otra aplicación de Windows a través de objetos explícitos, que es la esencia de la tecnología de programación orientada a objetos. A partir de R14, AutoCAD ha agregado la función de ser una aplicación de servidor de automatización ActiveX, lo que permite que muchos lenguajes y aplicaciones compilados orientados a objetos se comuniquen con AutoCAD a través de ActiveX y manipulen muchas funciones de AutoCAD, como se muestra en la Figura 4.
Las aplicaciones del servidor ActiveX Automation muestran su funcionalidad a través de sus propias propiedades de objeto, métodos y eventos. Los objetos son representaciones abstractas simples de aplicaciones de servidor. Ya sea para utilizar VB, VC, OFFICE VBA, etc. El desarrollo secundario de AutoCAD desde el exterior o el desarrollo secundario de AutoCAD VBA desde el interior se lleva a cabo llamando a la arquitectura de objetos de AutoCAD.
La tecnología de automatización ActiveX de AutoCAD 2000 encapsula varias funciones de AutoCAD 2000 en objetos ActiveX de AutoCAD para programación. Todos los objetos proporcionados en AutoCAD 2000 forman una estructura de árbol, como se muestra en la Figura 5. El nivel superior es el objeto de la aplicación y los demás objetos son sus descendientes. Para obtener un objeto específico, hay que comenzar desde el objeto de la aplicación y recorrer sus descendientes hasta encontrar el objeto específico.
Las características de programación completamente orientada a objetos de la tecnología ActiveX Automation hacen que el entorno de desarrollo tenga sólidas capacidades de desarrollo y características simples y fáciles de usar, y la selección de herramientas de desarrollo también es muy flexible. Por lo tanto, el uso de la tecnología de automatización ActiveX es una herramienta de desarrollo potencial.
Cuatro. Conclusión
Una breve introducción a las tres generaciones anteriores de herramientas de desarrollo de AutoCAD. Se puede ver que las herramientas de desarrollo secundario de AutoCAD son en realidad como "las olas detrás del río Yangtze empujan las olas hacia adelante, y cada generación es más fuerte que la anterior". El AutoLISP actual de primera generación puede ser reemplazado completamente por el VLISP de tercera generación; AutoCAD 2000 ya no es compatible con el ADS de segunda generación. Por lo tanto, las herramientas de desarrollo de tercera generación se convertirán en la elección inevitable para el desarrollo secundario de AutoCAD en el futuro. En cuanto a la elección específica de herramientas de tercera generación, el autor cree que debe decidirse principalmente en función de las necesidades de la aplicación del usuario y la experiencia de programación del desarrollador.
Según el punto de vista del autor, a juzgar por la situación actual en AutoCAD:
1) Visual LISP
Es adecuado para describir el proceso de desarrollo humano. -Interacción con la computadora y es bueno escribiendo simulaciones. Programa de diseño profesional para ideas de diseñadores. Tiene excelentes funciones para recibir diversas entradas de usuario, reconocimiento de errores y recuperación. Es especialmente bueno para desempeñar un papel importante en la función CAGD y aprovechar al máximo las habilidades de operación interactiva. Por el contrario, el modo de ejecución del programa tiene la mayor cantidad de estilos. Por el contrario, las diferentes versiones del programa son las más compatibles e incluso pueden ejecutarse directamente.
Existen excelentes recursos para este tipo de programación, incluidos libros, ejemplos de programas, recursos en Internet e intercambios técnicos.
La mayor desventaja de AutoLISP en el pasado era que no podía compilar. No existe el concepto de "proyecto" en paquetes más grandes, lo que sin duda trae dificultades al diseño de programas grandes. Ahora, VLISP ha resuelto satisfactoriamente estos problemas. La eficiencia de compilar programas antiguos de AutoLISP en VLX será de 5 a 8 veces mayor que al interpretar operaciones.
2) Publicidad
Solía ser un modelo de programación posterior a AutoLISP. Aunque la explicación es que ejecuta el programa AutoLISP anterior a R14, sigue siendo más rápido que el programa ADS porque ADS en realidad usa AutoLISP para interactuar con AutoCAD. A partir de AutoCAD R14, Autodesk ya no admite ni desarrolla el modo de programación ADS. En cambio, agrega Visual LISP para mejorar aún más el rendimiento general de AutoLISP y reemplaza ADS con ObjectARX.
3)VBA
A partir de R14, se ha integrado en AutoCAD. Según las reglas de Microsoft, VBA es una función imprescindible para cualquier software de aplicación en Windows.
Su ventaja es que puede utilizar fácilmente los recursos del sistema de Windows, por lo que AutoCAD puede interactuar fácilmente con otras aplicaciones en Windows. Las capacidades de diseño de cuadros de diálogo de VBA son mucho más sólidas que las de DCL, y las aplicaciones en entornos de múltiples archivos también brindan más soporte que VLISP. Sin embargo, debido a que utiliza ActiveX para interactuar con AutoCAD, el diseño del programa es más complicado. Se convertirá en otro lenguaje de programación de usuario profesional junto con el VLISP, menos fácil de aprender. Debido a que VBA no es VB, las personas que están familiarizadas con VB necesitan aprender mucho cuando usan VBA para la programación de AutoCAD, pero las reglas de VBA son completamente similares a las de VB.
En términos de programación de simulación de procesos de diseño, VBA obviamente no es tan fluido como AutoLISP. Después de todo, AutoLISP nace del lenguaje de inteligencia artificial. Además, si el autor de VBA no proporciona los métodos y propiedades correspondientes debido a "negligencia", el antiguo AutoLISP puede acceder a los datos del objeto y activar algunos cuadros de diálogo de AutoCAD, pero VBA no.
Aunque VBA no se compila ni ejecuta, la estructura de datos y la escritura del programa son tan estrictos como ARX, lo que requiere un proceso de adaptación por parte de los ingenieros. Sólo puedes organizar tus datos según las posibilidades de VBA, pero no crear estructuras de datos según los requisitos de diseño profesional como VLISP.
Las desventajas obvias son:
En VBA, no puedes usar los comandos de AutoCAD como te gusta en VLISP. Solo puede enviar una cadena de respuestas a la línea de comando de AutoCAD en forma de cadena como un archivo de script. El contenido de esta cadena debe generarse y convertirse en su propio programa. De esta manera, muchas técnicas interactivas no pueden tomarse prestadas directamente de VBA.
VBA utiliza objetos como unidad básica de procesamiento de datos. Esta es una tecnología de programación CAGD exclusiva de VLISP, pero no se puede implementar en VBA. Por lo tanto, comandos como Recortar, Extender y Atenuar diámetro no se pueden implementar realmente. Para completar dichas operaciones, los datos relevantes solo se pueden calcular en el programa. De esta manera, el diseño del programa no puede aprovechar al máximo las habilidades operativas de AutoCAD y seguramente será complicado y engorroso. Existe una excelente base de datos de AutoCAD, pero no puede desempeñar su función; las acciones que puede realizar AutoCAD deben realizarse mediante programación. Ésta es la mayor deficiencia de VBA.
Otro problema de VBA es que no se puede compilar. El programa fuente siempre está expuesto al usuario final de una manera bastante comprensible. El mal funcionamiento del usuario puede fácilmente causar que una aplicación que alguna vez fue normal falle o incluso falle. Este es el defecto fatal del antiguo AutoLISP. Al utilizar la función de compilación de paquetes de VLISP, VBA no puede resolver el problema del cifrado del código fuente después del empaquetado. Actualmente, el cifrado del código fuente de VBA sólo utiliza contraseñas.
Solo existen canales de datos internos relativamente simples entre VBA y Visual LISP, como el procesamiento de tablas de puntos simples. En este sentido, el autor de VBA no parece saber mucho sobre las características especiales de AutoCAD o cómo los usuarios utilizarán AutoCAD para sus propios diseños profesionales.
Las funciones de VBA se pueden ampliar con programas VC++/ARX, pero es bastante complejo y difícil de dominar para los ingenieros comunes. La mejora y expansión de VBA sólo puede esperar a los resultados del trabajo de Autodesk.
4) ObjectARX
Utilizado internamente en Autodesk o entre desarrolladores de software de valor añadido. Dado que ARX utiliza Visual C++ como lenguaje de programación básico, su eficiencia, procesamiento de datos y capacidades de control de software y hardware son las mejores, y es el único método de programación para entornos de múltiples dibujos. Este es un método de programación que fundamentalmente extiende VLISP/VBA.
No existe una diferencia sustancial entre ARX y VBA en términos de interacción de comandos de AutoCAD y acceso a la base de datos de objetos, lo que significa que también es difícil tomar prestada la poderosa función CAGD y las habilidades de operación interactiva de AutoCAD. Además, para desempeñar verdaderamente el papel de este modelo de desarrollo, los requisitos para los programadores (experiencias en informática, experiencia en software, etc.) también son altos y el riesgo de operación del programa es mayor. Se requiere que el programa pruebe varios datos y diseñe su propio manejo y recuperación de errores en diversas circunstancias, de lo contrario, la falla del programa ARX a menudo fallará junto con AutoCAD e incluso el sistema operativo. Debido a que la tecnología ARX es una herramienta para la mayoría de los desarrolladores, no es fácil adquirir habilidades de programación realmente útiles a través de la comunicación general. Se puede ver que este modelo de desarrollo no es adecuado para la promoción entre ingenieros de diseño profesionales.
En términos generales:
La característica de ARX/VBA es que utiliza objetos, métodos y propiedades de AutoCAD como datos operativos básicos y es adecuado para "construir" funciones de AutoCAD. De hecho, una persona que no domina el funcionamiento de AutoCAD puede escribir un programa para controlar AutoCAD siempre que comprenda completamente la estructura del modelo de objetos de AutoCAD. En otras palabras, este modo de programación no depende demasiado de la familiaridad del programador con las operaciones de AutoCAD. En otras palabras, el dominio de las operaciones de AutoCAD obviamente no ayuda a la programación ARX/VBA.
VLISP utiliza de manera flexible y completa las funciones existentes de AutoCAD y es adecuado para el "uso combinado" de las funciones existentes de AutoCAD. De esta forma, la cantidad de operaciones de AutoCAD se ve afectada por la programación, lo que afecta significativamente los resultados de la programación.
Es decir, este modo de programación aprovechará al máximo la experiencia y las habilidades de utilizar AutoCAD en programación. Por supuesto, VLISP también se puede utilizar para escribir programas que se ajusten al modo ARX/VBA ActiveX. Hay muchos ejemplos de este tipo en este libro. Pero ésta no es la especialidad de VLISP.
Como sistema CAD, normalmente consta de tres niveles de software:
1) La plataforma subyacente del software de diseño: proporciona interfaces, entornos, algoritmos centrales, bases de datos y otra infraestructura. . Ahora trabajamos en la plataforma AutoCAD.
2) Software de soporte al diseño, proporcionando software de soporte profesional relacionado con las necesidades de diseño: biblioteca de estándares nacionales, herramientas de diseño generales, manuales de diseño, etc. La mayoría de este software lo completan desarrolladores de software de valor agregado.
3) El software de diseño profesional proporciona sistemas auxiliares o de automatización de diseño profesional con un alcance estrecho y una gran profundidad, como el diseño de herramientas de ensamblaje de motores, el diseño de levas de control de máquinas de impresión offset, el diseño de cajas de husillos de máquinas herramienta combinadas, etc.
De hecho, si el sistema CAD realmente puede reflejar su valor de existencia es el signo más obvio del software de diseño profesional mencionado anteriormente. Este software realmente juega un papel de "diseño". ¡La práctica ha demostrado que realmente puede reemplazar a los ingenieros en diseños altamente especializados!
Para 1) y 2), no necesitas saber mucho sobre diseño, pero cualquiera que sepa más sobre software puede escribir. Por supuesto, debe ser evaluado por ingenieros de campo para evitar que se escriba como software de soporte de diseño "académico". Para 3), solo los diseñadores pueden escribirlo directamente. Este es un tema pequeño y casi siempre es un "punto ciego" para los desarrolladores. Debido a que el profesionalismo es demasiado fuerte y la estructura del conocimiento está demasiado sesgada, es demasiado para una persona que se graduó de una universidad de ingeniería y no ha realizado algunos diseños reales en esta industria entender la narrativa de un diseñador profesional y pedirle que completar este programa.
Se puede ver que debe haber un método de desarrollo que los diseñadores profesionales puedan dominar y que puedan aprovechar sus puntos fuertes (familiarizados con el diseño y las operaciones interactivas) y evitar sus deficiencias (menos conocimientos de software). Esto es AutoLISP.
Se puede hacer referencia a casi todas las funciones de AutoCAD en el programa AutoLISP para realizar la automatización del procesamiento de gráficos, especialmente para aplicaciones más profundas: operaciones de bases de datos de objetos.
Con la ayuda de Visual LISP, se analizan las funciones de funcionamiento de AutoCAD, que solo tienen unas pocas funciones menos que ARX: personalización de objetos de AutoCAD, gestión en profundidad de múltiples archivos de dibujo, etc. Tal como está, AutoLISP es el "administrador maestro" para casi todas las aplicaciones en AutoCAD, y solo se pueden agregar expresiones de AutoLISP a archivos de script, programas de diálogo, menús e incluso a este dibujo. Un programa VBA que envía comandos y puede responder a casi cualquier comando directamente en la línea de comandos de AutoCAD.
(5) Otras propiedades
LISP es un lenguaje de programación estructurado típico, AutoLISP es para interpretación y operación, poca confidencialidad del programa fuente, baja eficiencia de operaciones complejas en datos masivos y archivos Funciones de gestión sencillas. Sin embargo, se puede compilar en un paquete VLX o programa FAS usando Visual LISP mientras la mayor parte del contenido del programa fuente permanece sin cambios. Después de dicho procesamiento, el programa AutoLISP tendrá la misma alta confidencialidad que el programa ARX y también tendrá una eficiencia operativa mucho mayor que el programa de interpretación y operación. Además, la complejidad de la programación de AutoLISP y los riesgos operativos son mucho menores que los de ARX, y AutoCAD rara vez falla después de que el programa falla. Fuente:/read-htm-tid-92949.html