AutoCAD provides the following APIs (Application Programming Interface) so far.
• Visual LISP
• Menu Macros and DIESEL (Direct Interpretively Evaluated String Expression Language)
• ADS (AutoCAD Development System)
• ADSRX (AutoCAD Development System Runtime eXtension)
• ARX (AutoCAD Runtime eXtension)
• ObjectARX (Objectified AutoCAD Runtime eXtension)
• COM (Component Object Model)
• ActiveX Interfaces
o VBA (Visual Basic for Application)
o VB 6
o COM Interop
o CLI (Common Language Infrastructure)/Managed C++
We presented the skill matrix of AutoLISP, Visual LISP, and Menu Macros and talked a little bit about the ADS/ADSRX/ARX in early posts. In this article, let’s present a similar skill matrix using the same criteria for the most powerful AutoCAD API, ObjectARX.
ObjectARX is the upgraded version of ARX. It is based on C++ thus is object oriented and very powerful. Its running performance is the best among all AutoCAD APIs but on the other hand its learning curve scares most people away and development cycle is the longest.
Skill Matrix of ObjectARX
Affordability 4 (SDK is free but IDE and compiler are not)
Availability 5 (separate SDK is available on web)
Language Itself 10 (the most powerful)
User Interface 10 (MFC, WinForms, and WPF)
AutoCAD Friendliness 4 (lots of stuffs have to be reinvented)
Running Performance 10 (the best)
Development Effectiveness 3 (needing much more expertise/smartness/effort)
Compatibility/Portability 5 (declared binary compatible in three releases)
Learnability 1 (the most difficult API so far)
Code Reusability 6 (non-AutoCAD functions/classes can be reused by other C/C++ libs, different products, and even different OSes such as Linix and Mac)
Operability 10 (the Visual Studio provides everything)
Manageability 10 (solutions/projects/headers/resources/localization/etc.)
Code Safety 10 (compiled as native/machine code)
Maintainability 10 (object oriented; inheritance provided; …)
Interoperability 8 (can use COM interfaces; call commands via the acedCommand; can call .NET functions through mixed-mode)
Readability 8 (good for C/C++/C#/Java programmers)
Scalability 10 (can develop huge applications)
Applicability 2 (apply to AutoCAD/flavors; in-process only)
We give higher scales to ObjectARX as far as Language Capability, UI, Performance, Operability, Manageability, Code Safety, and Scalability are concerned.
The leading edge AutoCAD .NET Addin Wizard (AcadNetAddinWizard), as its name indicates, focuses on .NET compliant languages (currently C#, VB.NET and CLI/Managed C++).