介绍
就象C 语言已经被集成在C++ 语言中一样,CAD/" target="_blank">AutoCAD 开发系统(ADS)也已经被集成在AutoCAD 2000 中的ObjectARX 中了。
就意味着并不
只有用面向对象语言编写的应用程序才能充分利用AutoCAD 2000 中 ObjectARX 的先进功能,而且现有的ADS 的应用程序也不用被重新编制了。
AutoCAD 2000 的ObjectARX 继续支持所有ADS C 的库函数。为了使AutoCAD 成为一个完全的Windows 的应用程序,在AutoCAD 2000 的ObjectARX 中已不再提供对ADS 中对老式的、非 DLL 接口的支持。当移植ADS 应用程序到AutoCAD 2000 上时,只要用ObjectARX 函数库中的 ADS 接口重新编译源程序即可,而且还会把ObjectARX 中的先进功能自动加入到ADS 应用程序中。
概述:在AutoCAD 2000 中的ADS
在AutoCAD 2000 中,ADS 部分有下面的变化:
应用程序的向上兼容性
为了保护用户在ADS 上的投资及努力,Autodesk 在新产品中仍保持了对应用程序最高级别的向上兼容。对于AutoCAD 的应用程序有两种兼容类型:
考在SDK 中的移植手册,或在AutoCAD 2000 中的移植帮助。
AutoCAD 中ADS 技术介绍
最初的ADS
在 1989 年,AutoCAD R10 在OS/2? 平台上引入了ADS 作为一个新的开发应用程序的编程环境。在 1990 年,AutoCAD R11 也提供了在DOS 及其它操作系统上的对ADS 的支持。AutoCAD 和ADS 的应用程序是不同的可执行程序(.EXE), 它们通过内部进程通讯(IPC)进行数据交换。
基于ADS 的程序是用C 语言编写的,然而,这些程序的运行情况和AutoLISP 程序是一样的,因为作为外部编译过的ADS 程序是由AutoLISP 解释器加载的。而AutoLISP 解释器是由AutoCAD 加载并调用的。
ADS 程序是由C 语言编制的,因此相对于AutoLISP 具有一些编译程序的优点,例如这些优点可以表现在以下一些方面:源程序的安全性,内存操作的效率,文件尺寸及运行速度。
和标准的C 语言函数库一样,ADS 系统也是由一些库文件和头文件组成的。ADS 函数库提供了所有必要的工具及函数用来与AutoLISP 及AutoCAD 进行数据通讯。ADS的函数名都是以“ads_”为前缀的,这就很容易和标准的C 函数区别开。
ADS 在AutoCAD R13 中的变化
AutoCAD R13 向开发商提供了能够直接存取的、面向对象的内核,最初被命名为AutoCAD 运行扩展,或ARX。这个面向对象的内核最终被命名为ObjectARX,是AutoCAD 的第一个C++ 的编程接口。做为动态连接库(DLLs),ObjectARX 应用程序可以在AutoCAD 运行时存取其内核及内存地址空间,就象AutoCAD 自己的特征做的一样。
ObjectARX 的应用程序能够存取AutoCAD 中的符号表和系统变量、操作选择集、提示用户输入、进行坐标转换及查询(如捕捉和点取点)和控制图形显示。这些功能在ADS 中也能做到,因此很自然地也被包含到了ObjectARX 中。
把ADS 功能集成进ObjectARX 中,可以使C++ 的应用程序兼容已有的C的应用程序。通过由动态连接库共享AutoCAD 的内存地址空间,ADS 应用程序就不再需要通过IPC和AutoCAD 进行通讯了。
从AutoCAD R13 开始,需要做下面几步来转换非DLL 或IPC 类型的ADS 应用程序到ObjectARX:
下表是AutoCAD R13 提供的对ADS 的支持:
库:
包含在:
程序文件:
共享内存?
ObjectARX
ObjectARX SDK
.ARX (DLL)
是
ADSRX
ObjectARX SDK
.ARX (DLL)
是
ADS(IPC类型)
\ADS 目录
.EXE
否
ADS 在AutoCAD R14中的变化
在AutoCAD R14 中,ObjectARX 内核得到了进一步的改善,向开发商增加了扩展AutoCAD 的能力。和AutoCAD R14 一起提供了三套ADS 库,包括:非DLL 或IPC 类型的ADS,ADSRX(快速ADS)和在ObjectARX 中的ADS 库。由于ADSRX(包含在AutoCAD 产品的光盘上)和在ObjectARX 中包含的ADS 库在内容上是完全相同的,同样的源程序可以和任意一套ADS 库进行编译连接,并生成同样的ARX 或动态连接库文件。
R14 提供了一个新的用Windows 的系统注册表加载ObjectARX 应用程序的方法,可以按需加载ObjectARX 的应用程序。这种方法只适用于ObjectARX 的应用程序,而不适用于老式的非DLL或IPC 类型的ADS 应用程序。
下表是AutoCAD R14 提供的对ADS 的支持:
库:
包含在:
程序文件:
共享内存?
ObjectARX
ObjectARX SDK
.ARX (DLL)
是
ADSRX
\ADSRX 目录
.ARX (DLL)
是
ADS (IPC类型)
按需提供
.EXE
否
AutoCAD 2000 中的 ADS
AutoCAD 2000 提供了一个重大的改进就是把ADS 集成进了ObjectARX。
ADS 是ObjectARX 的一部分
通过ObjectARX使ADS 有了几个重大的改进,包括:
加载应用程序的方法:
为了满足客户们及开发商们的要求,AutoCAD 提供了各种各样的加载及卸载应用程序的方法。通过应用微软的系统注册表按需加载应用程序的方法,大部分的加载及卸载的方法正被简化及标准化。在开发具有“Built With ObjectARX”标志的应用程序的指导下,可以确保和AutoCAD 2000 的其他应用程序协调工作,以及在Windows 操作系统下和其它Windows 的应用程序协调工作。
下表概述了AutoCAD 的不同版本中加载应用程序的方法:
加载和卸载应用程序的一般方法: 应用程序类型: 文件类型:版本
由谁调用: 12 13 14 2000 (load “app_name”) AutoLISP 文件 .LSPÓ
Ó
Ó
Ó
AutoLISP 函数 (xload “app_name”) ADS (IPC类型) .EXEÓ
Ó
Ó
AutoLISP 函数 (xunload “app_name”) ADS (IPC类型) .EXEÓ
Ó
Ó
AutoLISP 函数 (arxload “app_name”) ADS (ARX类型) 及 ObjectARX .ARXÓ
Ó
Ó
AutoLISP 函数 (arxunload “app_name”) ADS (ARX类型) 及 ObjectARX .ARXÓ
Ó
Ó
AutoLISP 函数 Acad.lsp 初始化AutoCAD进程的AutoLISP 文件 .LSPÓ
Ó
Ó
Ó
AutoCAD Acaddoc.lsp 初始化图形文档的AutoLISP 文件Ó
AutoCAD Acad.ads 启动AutoCAD 时加载的ADS .ADSÓ
Ó
Ó
AutoCAD Acad.rx 启动AutoCAD 时加载的ADS (ARX类型) 及 ObjectARX .ARXÓ
Ó
AutoCAD APPLOAD AutoCAD 命令 通过对话框可以加载所有类型的应用程序 所有Ó
Ó
Ó
命令行 ARX AutoCAD 命令 ADS (ARX类型) 及 ObjectARX .ARXÓ
Ó
Ó
命令行 系统注册表按需加载 ADS (ARX类型) 及 ObjectARX .ARXÓ
Ó
Windows 系统注册表
ADS 功能改进概要
ADS 仍然是AutoCAD 2000 的重要部分。通过和新的ObjectARX 函数库重新编译连接原有的ADS 源程序,不论是开发商、系统集成商,还是广大客户都可以生成更高效的、具有更高兼容性的ADS 应用程序。
ADS 与ObjectARX 之间的关系和C 与C++ 之间的关系是很类似的。要把一个用C 编写的“HELLO WORLD”程序改成一个C++ 程序的最快捷、简单的方法是把文件名由hello_world.c 改成hello_world.cpp,然后在C++ 的编译器中编译连接即可。同样,最简单、快捷的把ADS 程序改成ObjectARX 程序的方法就是把mail() 入口点及控制循环改成 acrxEntryPoint() 入口并用ObjectARX 函数库重新进行编译连接。
已有的用ADS 开发的应用程序在AutoCAD 2000 上是完全兼容的,并且可以自动具有ObjectARX 的高效率及高性能。在将来的AutoCAD 的版本中会继续以增强ObjectARX 的方式对ADS 进行支持。更重要的是,在AutoCAD 2000 中,开发商在开始用ObjectARX 进行智能设计世界的开发时可以自由选择使用ADS 功能的多寡。

[摘要]针对级进模排样的特点以及人...

您知道全球最小的机器人到底有多小呢。这么小的机器人到底有什么样的法宝呢。中国台湾...

前言 线切割加工通过电极丝与导电工件之间放电腐蚀成型来完成工件加工,由于是非接触加...

据测算,“十一五”期间及2020年前中国机械工业年均增速仍将达12%~15%,但机械工业各...

就风电行业的整体形式来看,其正处于高速成长期,正在不断的学习技术和积累经验,相信...