来源: 最后更新:22-04-03 02:39:09
由于AutoCAD软件提供了友好的人机交互模式、良好的二次开发平台、实惠的价格而深受广大企业的青睐。目前所选用的CAD软件首推AutoCAD各版本软件或是在其基础上二次开发的软件,如高华CAD、华中理工大学IntelCAD等。许多用户正是看中AutoCAD提供的二次开发功能,有利于开发出适合厂情的功能模块,但是,AutoCAD的版本升级较快,在近几年推出了AutoCAD R13、AutoCAD R14、AutoCAD、R2000,使得用户在使用特别是在二次开发上变得无所适从。本文正是从这一情况出发,探讨在AutoCAD平台上使用的开发工具。
一、引言
AutoCAD技术的应用已涉及到航空航天、汽车、机械、建筑、电子电器等各行各业,它从根本上改变了传统手工绘图、依靠图纸组织整个生产过程的技术管理模式。采用CAD技术能快速地进行新产品设计、提高设计质量和缩短新产品设计周期以加强企业的竞争力,对传统产业的改造、新兴技术和产业的兴起与发展、我国产业国际化的增强等方面,均能产生巨大的推动作用。
AutoCAD的二次开发途径主要有两个,即文件开发和程序开发。文件开发是指根据用户的具体开发需要,按照AutoCAD提供的方法和文件格式,通过编辑AutoCAD系统所支持的文本文件(如菜单文件和线型文件等)或建立同种类型新的文本文件,来开发AutoCAD,使其满足用户特定需要的方法。程序开发是指利用AutoCAD提供的编程环境和开发工具(称为AutoCAD应用程序接口,缩写为API),通过编写程序来实现对AutoCAD开发的方法。借助于程序开发,可为AutoCAD扩充新的命令或定义,以满足用户具体需要。
从目前各行各业对AutoCAD的应用情况来看,主要表现在直接应用和间接应用两个方面。其中,前者为直接利用提供的强大的绘图功能进行图形的绘制;后者为利用提供的强大的开发工具结合本行业的实际情况对AutoCAD进行的二次开发,这种应用是对AutoCAD的更高层次的应用。
二、开发常用工具
1.AutoLISP
AutousP出现于1985年推出的AutoCADRZ.18中,是一种嵌人在AutoCAD内部的编程语言,完全针对AutocAD进行编程,是UsP原版的一个子集,它一直是低版本AutoCAD的首选编程语言。它可以直接访问和修改AutoCAD当前的图形数据库,为AutoCAD增加新命令或修改AutocAD,实现参数化绘图程序设计。它与主流编程语言如C/C++、BAsIC等相比语法非常简单,也较灵活,但功能也相对简单些。其缺点是继承了USP语言的编程规则而导致繁多的括号。
2.ADS
ADS是AutoCAD提供的运用C语言开发应用程序的系统,本质上是一组可以用C语言编写的头文件和目标库,它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可
执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。它要求开发者既懂C语言又熟悉AutocAD,因此,被认为比AutoUsP更高级的开发手段。使用ADS既可以开发独立的应用程序,也可以开发常用函数供Autollsp程序调用。后者的好处是既可提高编程效率,又可对程序进行保护,国内开发商大多采用这种方式。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。
3.ARX
尽管ADS有很多值得称赞之处,但它也有一个先天不足之处,这就是ADS程序必须通过AutousP解释器加载,并非最低层的代码,各方面的条件都会打折扣。正因为如此,在R13版中AutoCAD提供了更为高级的开发工具ARXoARX是Autodesk公司在AutoCAD13版之后推出的一个全新的面向对象的二次开发环境,也是AutocAD第一次提供面向对象的二次开发工具。使用ARx编写的应用程序不需经过USP解释器加载,它可以和AutocAD的进程共享内存空间,即用ARx编写的命令可以和AutoCAD中line、协i二等命令于同一级别,显然要比AutoUSP、ADS形式得到更快的响应11]。ARx有一个更为重要的功能,即允许用户定义自己的对象,构造自己的图形数据,可以像管理内部定义对象一样进行处理。ARx同样使用C++语言,用VB、vc++进行编程,开发环境与ADS相同,目前ARx已经升级为objectARX了。
三、开发工具之间的关系
1.AutoLISP、ADS及ARX与AutoCAD的关系
三者都是AutoCAD的内嵌式编程语言,用户利用这些语言建立新的命令,扩充AutoCAD原有功能。AutoLISP可以很方便地为AutoCAD增加新命令,它通过内部进程通讯与AutoCAD通信;ADS是用C语言应用程序,它作为外部函数加载到AutoCAD,需要由AutoLISP解释器来调用,它也是通过IPC和AutoCAD通讯,它们与AutoCAD是分离进程,如图1所示。ARX是可编译的C++程序,与ADS不同的是,ARX以动态链接库(DLL)的形式与AutoCAD共享地址空间,直接调用AutoCAD的核心函数,并可直接访问AutoCAD数据库。
2.AutoLISP和ADS的关系
从图1可以看出,ADS和AutoLISP它们都是通过IPC来和AutoCAD实现通讯的。每个ADS应用程序都必须支持由ADS环境定义的与AutoLISP的接口,这种接口要求每个应用程序要使用特定的数值,并按特定的数值调用ADS库函数。通常,AutoLISP是按一定的顺序调用ADS应用程序,如:在初始化时或在调用(xload)函数时,AutoLISP加载一个ADS应用程序;ADS应用
程序通过调用ads_init(),初始化与AutoLISP的接口联系; ADS应用程序通过调用ads_link()并传入一个应用程序的结果码RSRSLT,指示接受和处理来自AutoLISP的请求;从ads_link ( )中返回一个请求码RQXLOAD;每调用一次ads_defun(),该应用程序即定义一个外部函数等。由此可知,一个ADS应用程序基本上是AutoLISP的一个“奴隶”,一直在等待着AutoLISP的请求,需要反复调用ads_link(),所以保持请求顺序的最自然的作法就是将该函数放在一个“无限”循环的开始。
3.ADS与ARX的关系
从功能上可以描述为包容或包含的关系。实际上,一个完整的ADS库函数是ARX环境的一部分,通常称为ADSRX。ADSRX和标准的C语言版本的ADS库在功能上是完全一致的。不同的是ADSRX作为AutoCAD的一部分,它同样分享着AutoCAD的地址空间,而ADS则需要通过IPC才能实现通讯。也就是说ADS的功能可以通过ADSRX完全替代。一个ADS应用程序包含一个无限循环,一直在等待着AutoLISP的请求;而ARX有一个为使用消息提供的入口。当用户登记命令时,它实现了同AutoCAD的通信,当用户重载在ARX库中C++类的虚构函数上时,这些函数便实现了应用程序的入口功能。
四、结束语
随着AutoCAD应用的日益普及,软件开发工具与硬件设备不断地更新,使得人们对应用程序功能的需求与日俱增,对其进行二次开发的工具也不断更新。VisualllSP、objectARX、ActiveXAu-tolnation等工具也显示出它们的优势,使得应用程序在修改上更具弹性,在使用上更加智能。对于用户来说,应根据本身所熟悉的AutoCAD的版本,以及所熟悉的开发环境、需求的特点来选择AutoCAD的开发工具,不必刻意追求新奇的开发工具,但也应逐渐地了解和接受它,以备将来开发出更适合厂情和国情的AutoCAD增值模块和软件。
kindle(kindle导入电子书)竟然有大屏彩色墨水屏阅读器了?哪家公司做的?实际体验如何?想必你会
新冠病毒抗体检测有什么用(新冠病毒抗体检测什么意思) 南通成品油价格调整公告(南通汽油价格调整最新消息) 2023汝阳县元宵节焰火晚会推迟举办通告 潍坊市奎文区新华医院入园体检咨询电话