发布企业信息

AutoCAD 2000全面兼容ADS应用程序AutoCAD 开发系统

作者:  信息来源:无忧机械电子  2006-10-17

字体大小:  网友评论  进入论坛  

com/machine/softedu/CADAutoCAD 开发系统(ADS)也已经被集成在AutoCAD 2000 中的ObjectARX 中了。这就意味着并不是只有用面向对象语言编写的应用程序才能充分利用AutoCAD 2000 中 ObjectARX 的先进功能,而且现有的ADS 的应用程序也不用被重新编制了。AutoCAD 2000 的ObjectARX 继续支持所有ADS C 的库函数。为了使AutoCA...
 

介绍

就象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 部分有下面的变化:

  • 源程序是用ObjectARX 的函数库进行编译的,生成的是以 “.ARX”为扩展名的动态连接库文件(DLL)。
  • 加载ADS 的应用程序和加载ObjectARX 应用程序的方法是一样的。
  • ADS 的函数库不是和AutoCAD 2000 一起被提供的,但可以在Web 上下载。
  • 函数名已经被修改了,但提供了对旧的“ads_xx”函数名的定义。
  • 不再提供AutoLISP 中的 (xload) 和 (xunload) 函数。
  • 不再支持低效率的 ADS EXE 程序。
  • 应用程序的向上兼容性

    为了保护用户在ADS 上的投资及努力,Autodesk 在新产品中仍保持了对应用程序最高级别的向上兼容。对于AutoCAD 的应用程序有两种兼容类型:

  • AutoLISP 中的解释应用程序,或者没有编译的 Visual LISP 程序几乎可以100%地在新版本的AutoCAD 中兼容。对于AutoCAD 2000,要有一些针对多文档设计环境(MDE)的改变。要想得到更多的信息,请参考在SDK 中的移植手册,或在AutoCAD 2000 中的移植帮助。
  • 已编译的ADS、ObjectARX、Visual LISP 或者 VBA程序,是在源代码级进行兼容的。必须把源程序和AutoCAD 2000 的函数库一起重新编译,在改动很小的情况下就可以集成进ObjectARX的新特征及应用新的API。
  • 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:

  • 把main() 入口点和控制循环改成acrxEntryPoint()
  • 把源程序的文件的扩展名由“.c”改成“.cpp”
  • 应用支持C++ 的编译器
  • 下表是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 有了几个重大的改进,包括:

  • 不再提供慢速的、非DLL或IPC类型的ADS,通过集成进ObjectARX,所有的ADS 应用程序都已是动态连接库(DLL)类型了。
  • ADSRX 函数库不再被单独提供。在R14的ADSRX 中的以“ads_”为前缀的函数限制了ObjectARX API 的性能,通过AutoCAD 2000 中的ObjectARX 开发ADS 应用程序,这种限制将不复存在。
  • 用ObjectARX 开发的应用程序可以共享AutoCAD 的内存地址空间,因此,应用ObjectARX 函数库可以确保应用程序具有更高的效率及更好的性能。
  • AutoCAD 2000 不再支持老式的DOS 风格的加载ADS 应用程序(非DLL,IPC类型)的方法。R14 中的(xload)和(xunload)函数已经不存在了。
  • “ads_”函数已被改名为acdbFuncName(),acedFuncName() 或acutFuncName(),这些函数的名字显示了它们在ObjectARX 系统里的功能。函数名的4个字母前缀分别代表了图形数据库、编辑器和工具函数。
  • ADS 已成为ObjectARX 的一部分,不再被描述为一个分离的,独立的开发系统。
  • 为了保持兼容性,AutoCAD 2000 里的ObjectARX 已经定义(#define)了“ads_”类函数,指向新的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 功能的多寡。

    分页:
    Google


    推荐图文

    广告

    机械热点图文

    • 数控车床加工编程典型实例分析2
    • 内螺纹车削加工——数控车床编程实例42
    • 子程序编程方法-数控车床编程实例36
    • 塑料模具动画演示

    机械风云人物

    Copyright © 2004 51base.com Inc. All rights reserved.

    无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

    客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

    感谢中国网络提供带宽支持

    《网络营销技巧》