|
AutoLISP是一种解释性的语言,它提供了一个简单的扩充AutoCAD命令的机制。ADS是用C语言开发的 编译执行的。然而,对于AutoCAD来说,ADS程序和AutoCAD程序没有什么区别。一个ADS程序实际上是由一组外部函数组成,它们由 AutoLISP解释器来加载调用,ADS程序本身并不能直接和AutoCAD进行通讯
ARX程序在很多方面都和ADS程序、AutoLISP程序不同。最重要的一点是,ARX程序实质上是一个动态链 接库(Dll),它和AutoCAD共享地址空间并且直接和AutoCAD进行通讯。对于经常需要和AutoCAD通讯的应用程序来说,ARX程序比 ARX运行更块。除了速度上的提高之外,ARX程序还可以创建新的类(klass),这些类可以为其它程序共享,从而充分利用面向对象编程的优点。ARX 程序创建的实体几乎和AutuCAD的内在试题是完全等同的。
ADS与ARX的区别:
1. ARX程序是一个动态链接库(DLL),它直接和AutoCAD进行通讯。ADS程序是一个可执行文件,它需要通过AutoLISP来和AutoCAD进行通讯。
2. AutoCAD是不可重入的,因此ADS程序也是不可重入的。而在ARX中,每一个命令都有独立的入口。
3. ARX程序速度快,但更“脆弱”,ARX程序和AutoCAD共享进程空间,ARX程序本身是AutoCAD的一部分,ARX程序的崩溃通常会导致 AutoCAD系统的崩溃。而AutoLISP和ADS都是通过函数来间接访问AutoCAD。ADS程序速度慢,但更“绝缘”,ADS程序崩溃并不一定 导致AutoCAD系统崩溃。
4. ADS程序类似如宏(macro),ADS中的函数(如ads_command)以及和AutoLISP的通讯使得ADS程序的工作类似于自动作用的宏。相比之下,ARX程序则是更基本,主程序(AutoCAD)调用每一个ARX程序注册的命令。
5. ARX程序具有ADS程序和AutoLISP程序所不具备的访问和控制AutoCAD的能力。
6. ARX提供了面向对象编程的技术。ARX充分支持C++,充分支持面向对象编程的技术,而ADS仍然只能使用传统的C语言编程。 |
|