ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:411.03KB ,
资源ID:30712369      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30712369.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CAD的二次开发.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CAD的二次开发.docx

1、CAD的二次开发 AutoCAD二次开发的研究学习 学 院:机械与电子信息学院 专 业:机械设计制造及其自动化 姓 名: 班级序号: 指导老师:二零一四年五月二十日目录第1章 AutoCAD发展历程与研究现状 - 1 -1.1 AutoCAD简介 - 1 -1.2 AutoCAD二次开发 - 2 -1.2.1 AutoCAD二次开发简介 - 2 -1.2.2 AutoCAD二次开发发展历程 - 2 -1.2.3 AutoCAD二次开发发展现状 - 7 -第2章 二次开发应用举例 - 9 -2.1 AutoLISP - 9 -2.1.1 AutoLISP概述 - 9 -2.1.2 举例 - 9

2、-2.2 ADS - 15 -2.2.1 ADS概述 - 15 -2.2.2 ADS应用程序结构 - 15 -2.2.3 举例 - 16 -2.3 ARX - 19 -2.3.1 ARX概述 - 19 -2.3.2 举例 - 19 -2.4 Active X - 22 -2.4.1 Active X概述 - 22 -2.4.2 举例 - 22 -2.5 .NET - 26 -第3章 AutoCAD未来发展方向 - 27 -3.1 AutoCAD二次开发的必要性 - 27 -3.2 AutoCAD发展趋势 - 27 -3.2.1 集成化与智能化 - 28 -3.2.2 网络化与并行化 - 28

3、-3.2.3 虚拟设计 - 28 -3.2.4 规范化 - 29 -3.3 二次开发的基本过程 - 29 -3.4 二次开发中的关键技术 - 30 -3.4.1 参数化图库的生成技术 - 30 -3.4.2 用户化界面技术 - 30 -3.4.3 二维工程图的自动生成技术 - 30 -3.4.4 产品设计智能化开发技术 - 30 -3.4.5 特征映射器的开发技术 - 31 -结束语 - 32 -参考文献 - 33 -附1: - 35 -附2: - 36 -摘要:AutoCAD技术发展至今已经日趋成熟,并已经广泛应用于机械、电子、建筑、航空航天等领域,但仍有许多CAD软件还是单单建立在通用应用

4、平台上。要使CAD软件能针对专业领域方便地解决问题,增加一些特殊功能,就要应用CAD的二次开发技术。本文在对前人资料进行整理学习后,分别从AutoCAD二次开发技术的发展历程及发展现状和未来的发展方向及研究重点进行介绍,并举例说明二次开发技术所用的类型、方式、语言等。本文完成的主要工作有:阐述了二次开发的基本理论,包括二次开发的概念、原则、过程和一些关键技术;列举了几种常用的二次开发方法-面向对象法、利用组件技术方法和利用ActiveX技术方法和DLL方法,介绍了它们的基本原理;举例说明AutoLISP、ADS、ARX、ActiveX在实际应用中的利用,写出相应的程序语言。关键词:CAD 二次

5、开发 方式类型 发展方向 例证说明Abstract: The AutoCAD technology has been used widely in the filed of machinery, electronics, architecture and aerospace, however most CAD software is designed for general application. For that reason, the Re-develop technology of CAD is used to cater for the needs in professional d

6、esign area. This article introduces the method, process and techniques of CAD, and its development. The followed works have been done in paper : 1.The basic theory of the further development was summarized, which include the definition, the general process, the rules and several key techniques. 2. S

7、everal current methods of the further development have been studied, such as Object Oriented method, component technique, ActiveX technique. 3. Gave some examples of AutoLISP、ADS、ARX、ActiveX .Key words: CAD; Re-develop; Type methods; Developing direction; Example 第1章 AutoCAD发展历程与研究现状 1.1 AutoCAD简介 A

8、utoCAD(Auto Computer Aided Design)是美国Auto desk公司于1982年开发的自动计算机辅助设计软件,主要用于二维绘图、详细绘制、设计文档和基本三维设计,用户可以创建、浏览、管理、打印、输出、共享及精确地复用富含信息的设计图形,其现在已成为国际上主流的绘图工具之一。如机械CAD是指将计算机技术运用到机械设计的全过程中,利用计算机硬、软件系统辅助人们对产品和工程进行分析计算、几何建模、仿真与试验、优化设计、绘制图形、工程数据库的管理、生成设计文件等的方法和技术。AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。其完善的图形绘制功能、

9、强大的图形编辑功能以及可开发性和数据交换能力,使其支持多种硬件设备和操作平台,具有广泛的适应性。 Autodesk公司成立以来,在其近二十年的发展历程中,不断丰富和完善AutoCAD系统,并连续推出各个新的版本,每个新版本中都会加入一些更强大的功能。 如AutoCAD2000增添了AutoCAD设计中心(ADC)、多文档设计环境(MDE)、Internet驱动、新的对象化捕捉功能、增强的编著功能以及局部打开和局部加载的功能;AutoCAD2005新增了图纸集功能和用于显示可能会在图形生命周期中修改的数据的字段对象;AutoCAD2006新增了动态块功能,动态块中定义了一些自定义特性,可用于在位

10、调整块,而无须重新定义该块或插入另一个块;AutoCAD2008增添了自动缩放注释及多重引线;AutoCAD2010增强了三维功能,更大的突破是参数化绘图功能,可以在图纸上建立对象之间的几何关系及约束关系(参考文献1)。AutoCAD系统在发展中不断完善,它的功能也在不断增强,这使得AutoCAD由一个功能非常有限的绘图软件发展到了现在功能强大、性能稳定、市场占有率位居世界第一的CAD系统,在城市规划、建筑、测绘、机械、电子等许多行业中得到了广泛的应用。随着行业的发展,今后的AutoCAD软件也在原来的基础上朝着集成化、网络化、可视化、参数化、标准化、智能化和多元化的方向发展,在工程制图、工业

11、制图、电子设计、制造业等方面将发挥不可取代的作用。1.2 AutoCAD二次开发1.2.1 AutoCAD二次开发简介从“二次开发”本身的意思来理解,即在开发了一个大型的软件系统平台的基础上,根据一些特殊需求,在该平台上进行第二次有针对性的开发。AutoCAD本身的功能集已足以协助用户完成各种设计工作,且因其很好的通用性和开放性,在机械、电子、航空、船舶、建筑、服装等领域得到了极为广泛的应用。但同时也因为它的通用性,使其专业性很差。因此,要最大限度的满足用户的个性化需求,就必须给用户提供重新装置、修改及对软件进行二次开发的功能。对AutoCAD二次开发主要是在其现有的几何处理库以及数据存储、图

12、形绘制、打印及操作机制上根据具体需求对用程序功能进行拓展,建立新业务逻辑;对用户界面进行拓展,创建新的对话框,菜单以及面板等;对数据库拓展,创建新的数据或实体对象。形成LISP、ARX、VLX、ADS、DLL、以及DCL文件来完善和扩展AutoCAD主程序。CAD开放的体系结构使其定制或者二次开发成为可能,它允许用户和开发者采用高级编程语言对其进行扩充和修改(即二次开发),大大方便了专业领域的应用,满足了具体行业的要求。AutoCAD的二次开发工具主要分为两大类:AutoCAD的内部定制工具和AutoCAD的二次开发工具。定制是指按照AutoCAD提供的方法和文件格式,根据用户的具体需求,通过

13、编辑系统所支持的ASCII码标准功能文件或者建立同类型新的ASCII码功能文件来设置AutoCAD。通过定制AutoCAD,可以构造出符合用户习惯的CAD系统,提高工作效率。二次开发是指利用AutoCAD提供的编程环境和开发工具,通过编写程序来实现对AutoCAD的开发。1.2.2 AutoCAD二次开发发展历程AutoCAD也一直把二次开发功能放在一个极其重要的位置,CAD的开发随着CAD的发展不断进行。从第一版AutoCAD1982年11月推出后,其二次开发方式也在不断地涌现。最近二十年多来,AutoCAD相继推出了四代开发工具:第一代开发工具AutoLISP,第二代开发工具ADS,第三代

14、开发工具ARX,第四代开发工具ActiveX Automation等等。不同的参考资料上略有不同,但本质上是一致的。以下是以图表形式表示的开发方式时序图(开发方式时序见图1-1)。1986AutoLISP198719881989ADS1990DCL199119921993ADS-RX19941995ObjectARX1996ActiveXAutomation1997VBA1998Visual LISP19992000 图1-1 开发方式时序图一、AutoLISP第一篇关于LISP的参考文献是由John McCarthy 在1960年4月的ACM通讯中发表的。但实际上AutoLISP是1986年

15、随AutoCAD v2.18提供的二次开发工具,是简单易学而又功能强大的LISP编程语言。它是一种人工智能语言,是嵌入AutoCAD内部的COMMON LISP的一个子集。在AutoCAD的二次开发工具中,它是唯一的一种解释型语言,是低版本AutoCAD的首选编程语言。由于AutoCAD具有内置LISP解释器,所以使用AutoLISP可直接调用几乎所有的AutoCAD命令。因此用户可以在命令行中输入AutoLISP代码,或者从外部文件加载此代码。AutoLISP应用程序还可以通过多种方式与AutoCAD交互。Autodesk公司提供AutoLISP的目的,就是为了帮助用户充分利用CAD强大的功

16、能,从而节省时间,提高工作效率。AutoLISP最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动和鼠标拖动程序等。在实际工程中,70%左右的图形是通过修改已有的设计来完成的,而且多数都是修改设计参数来完成。现在,已经有数以百计的第三方软件开发人员使用AutoLISP语言编制各种应用程序软件包,例如,开发一个名为SMLayout的软件包,用它可以产生各种复杂几何图形的平面布局图,这些几何图形包括管道的交叉部、过渡都、圆柱、弯管接头、圆锥以及罐顶。在AutoLISP中,同样提供了编程以及数学计算所需的大部分数学函数,你可以使用AutoLISP对数字进行加、减、乘、除运算,还可以得到以弧度表示

17、的角度的正弦值、余弦值及反正切值等。目前社会上非常需要AutoLISP程序员为应用软件及客户菜单的开发提供顾问。AutoLISP具有以下优点:1、语言规则十分简单;2、直接针对AutoCAD,易于交互;3、解释执行,立竿见影。但它也有自身无可避免的缺点:1、功能单一,综合处理能力差;2、程序运行速度慢;3、缺乏很好的保护机制,源程序保密性差;4、不能直接访问硬件设施、进行二进制文件的读写。它的这些特点,使其仅适合于有能力的终端用户完成一些自己的开发任务。二、ADS ADS全称:AutoCAD Development System,是从AutoCAD R11开始引入的基于C语言开发应用程序的系统

18、,本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库。ADS不是C语言的一个子集,也不是基于C语言而编制的专用语言,但却包含了C语言的全部功能。它既利用了AutoCAD环境的强大功能,又利用了C语言的结构化编程、运行效率高的优势,适合于高强度的数据处理,如实际应用中的机械设计CAD、工程分析CAD、土木工程CAD、化学工程CAD等等。与AutoLISP相比,ADS有其新加的功能和独特的优势:1、具备错综复杂的大规模处理能力;2、编译成机器代码后执行速度快;3、编译时可以检查出程序设计语言的逻辑错误;4、程序源代码的可读性比后者好。而其不便之处在于:1、难以掌握;2、ADS的隐藏

19、错误往往导致AutoCAD系统崩溃;3、要实现同样的功能时,前者比后者的代码要长很多。早期国内常见的应用软件多是用ADS进行开发的,但ADS程序必须经过AutoLISP解释加载,因此ADS的各方面功能往往会受到一定的限制。同时,锁着网络技术的迅速发展,面向过程的ADS有些“力不从心”,所以,在AutoCAD R13中,提出了新的面向对象的开发工具ARX。而从R14起,Autodesk已经不再支持和发展ADS程序设计模式,同时增加了VLSP,以进一步提高AutoLISP的整体性能,同时用ObjectARX取代了ADS。三、Object ARXObject ARX是从AutoCAD R13开始推出

20、的一个全新的开发环境,是AutoCAD开发的第一个面向对象的开发工具,与前期的开发工具相比,它更注重的是程序的智能性。它提供了以C+为基础的应用程序接口,能真正快速访问AutoCAD图形、数据库。Object ARX支持面向对象编程方法,同时向下兼容ADS。Object ARX的核心是两组关键的API,即AcDb(AutoCAD数据库)和AcEd(AutoCAD编译器),另外还有一些其他的重要组件。Object ARX还可以按需求加载应用程序,使用Object ARX进行应用开发还可以在同一水平上与windows系统集成,并与windows其他应用程序实现交互操作。ARX程序在很多方面与ADS

21、程序和AutoLISP程序都是不相同的。最重要的一点是,ARX程序实质上是一个动态链接库,它和AutoCAD共享地址空间并且直接和AutoCAD进行通讯。在ARX中,每个命令都有独立的入口。ARX程序还可以创建新的类(class),这些类可以为其他程序所共享,从而充分利用面向对象的编程的优点.ARX程序创建的实体和AutoCAD的内在实体几乎是完全等同的。对于需要经常和AutoCAD通讯的应用程序来说,ARX程序比ADS程序运行速度更快,这里的运行速度主要指是访问AutoCAD数据库的速度。但ARX程序崩溃通常会导致AutoCAD系统的崩溃。ARX程序具有ADS程序和AutoLISP程序所不具

22、备的访问和控制AutoCAD的能力。ARX程序可以监控和处理AutoCAD各种事件,可以定义AutoCAD命令,包括可以透明执行的命令。这些命令可以像AutoCAD自身的命令一样被AutoLISP和ADS所调用。四、Visual LISPVisual LISP,简称VLISP,取代了AutoLISP成为AutoCAD中新一代的LISP语言,已经被完整地集成到AutoCAD 2000中,它显著扩大了AutoLISP的容量,为开发者提供了崭新的、增强的集成开发环境IDE,包括编辑器、调试器和其他工具,使开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发。它的研究内容主要有:1、是A

23、utoCAD 2000中默认的代码编辑工具,提供源代码调试功能;2、用它开发AutoLISP程序的时间被大大地缩短,加速其编程过程,并使其结构化,是程序增加了可读性;3、简化源代码的创建及修改,程序的测试、编译及调试;4、能帮助大家使用ActiveX对象及其事件;5、使用了流行的有色代码编辑器和完善的调试工具,使大家很容易创建和分析LISP程序的运行情况。在Visual LISP中有新增的一些函数:如基于AutoLISP的ActiveX/COM自动化操作接口、用于执行基于AutoCAD内部事件的LISP程序的对象反应器、新增了能够对操作系统文件进行操作的函数等等。 它不仅提供了一个完整的集成开

24、发环境,还提供了开发工具,课用于发布独立的应用程序。五、基于ActiveX Automation技术的VBA等开发工具ActiveX Automation是一台微软标准,以前称为OLE Automation技术,该标准允许通过外显的对象由一个windows应用程序控制另一个windows应用程序,这也是面对对象编程技术的精髓所在。VBA是自 R14开始嵌套在AutoCAD之中的程序设计方法,根据微软公司的规则,在每一个Windows下的应用软件都必须具有的功能。ActiveX Automation技术的完全面向对象化编程的特点,使其开发环境具备了强大的开发能力和简单易用的优良特点,开发工具的选

25、择具有很大的灵活性。它可以很容易地使用Windows系统资源,使AutoCAD能容易地与其他Windows下的应用软件交互。VBA 对话框设计能力比DCL好得多,多图档环境下的应用程序也比也比VLISP提供了更多的支持。但其也有很有不方便的地方,如:1、在设计过程模拟类的程序设计中,VBA明显不如 AutoLISP等 脱胎于人工智能语言的工具;2、VBA虽然不是编译运行,数据结构和程序写法却像ARX一样相当严格,不能像VLISP那样按照专业设计要求去创建数据结构;3、VBA是以对象作为数据处理的基本单元,在VLISP中堪称特色的CAGD程序设计技术,在VBA中则无法实现。因此,很多程序设计就不

26、能充分利用AutoCAD的操作技巧,从而会产生冗杂的程序;4、 扩充VBA的功能可以用 VC+ / ARX 程序,但是相当复杂,对于初学者来说,很难掌握。而对其完善和扩充,只能等待Autodesk的工作结果。故VBA也是备受争议的一个开发工具。六、AutoCAD .NET从AutoCAD2006开始,Autodesk为其开发增加了一种.NET API,它提供了一系列的外包类,是开发人员可在任何.NET语言下对AutoCAD进行二次开发。其优点是完全面向对象,在拥有与C+相匹配的强大功能的同时,具有方便实用的特点,同时它采用了垃圾回收机制,自行判断内存回收的时机并实行回收,通过Dispose函数

27、进行资源的自动释放,从而解决了内存泄露问题。是较理想的二次开发工具。各种开发工具能力对比如下表所示:表1-1LISPVB/VBAObject ARX.NETAPI操作能力高级用户界面底层事件高级API访问完善的异常处理64位/UNICODE支持垃圾回收混合语言开发difficult混合API交互性limitedlimiteddifficult语法简洁自定义实体性能1.2.3 AutoCAD二次开发发展现状目前,国内CAD技术的应用已逐步进入高级阶段,许多用户都针对本行的特点对CAD进行二次开发,CAD二次开发技术几乎在各个行业中都有应用实例,并已有许多商品化软件问世。但各行业CAD二次开发技术

28、的发展水平存在较大差距,机械、电子、建筑、航空航天等最早应用二次开发技术,其二次开发程度也最高。开发出的CAD系统能够集计算、参数化画图、数据管理为一体,并直接与计算机辅助制造(CAM)和计算机辅助工艺设计(cAPP)有机结合。目前国内已开发成功一批符合工程需要的应用软件,逐渐形成了一批具有较高素质的研究开发队伍。其他行业的CAD二次开发技术则相对落后,有的仅仅是一小部分工程技术人员的个人行为,还没有形成专门从事CAD二次开发的研究队伍。虽然也出现了一些CAD应用软件,但大多数仅仅针对某一类型的产品或产品的一部份而开发的小型应用系统,解决的问题也比较有限。国外成功的CAD技术开发企业为了加快C

29、AD技术开发步伐,都选择了高起点的CAD技术开发战略,印利用已有的技术成果,在此基础上二次开发自己的CAD技术,而不是将人力物力浪费在低水平的重复开发上,这样既可以提高效率,又能保证自己的产品具有较高的技术含量和水平。现在,在一代代研究人员的努力下,越来越多的开发软件进入我们的生活,已有许多二次开发的CAD系统在实际生产中的各个方面得到了应用,并且获得了一定的成果。但不可避免的是软件开发还没有达到完美,在人类无止境的需求面前,我们仍需进一步努力来完善我们的开发系统从而满足我们的要求。就我国而言,软件开发仍处于手工作坊阶段,存在很多的问题,软件产业还没有实现工厂化。CAD的二次开发,是对软件自身

30、的探索和挖掘,也是对时代的适应和融合。在不断发展的今天,我们必须掌握这些基本的知识,并具备在其基础上不断开发的能力,才能为以后的设计奠定坚实的基础。 第2章 二次开发应用举例 AutoCAD 的程序开发是通过 AutoCAD 应用程序接口( API) 来实现的。其程序开发主要有五种基本形式:2.1 AutoLISP2.1.1 AutoLISP概述 AutoLISP语言是 Autodesk 公司在 AutoCAD中提供给用户的主要的二次开发工具。AutoLISP( AutoList Processing)是一种专用的LISP编辑语言,是 AutoCAD 固有的一部分。AutoLISP程序储存于

31、ASCII 码文本文件中, 每当运行它们时, AutoCAD都将读取并解释他们, 尽管 AutoLISP文件可以有任意的名字和扩展名,但根据约定, AutoLISP文件通常以.LSP为扩展名( 与菜单相连的AutoLISP文件除外,这些文件必须以.MNL 作为扩展名),用户可以用AutoLISP开发AutoCAD 来适应自己的具体要求、自动执行重复的任务或生成新的或修改AutoCAD 命令, 用户即可编写自己的AutoLISP应用程序, 也可使用第三方开发的共享程序。2.1.2 举例举例1:下面通过编写一个从上到下逐行写文本的小程序段来简要分析AutoLISP的开发过程。题目要求如下:用户只需点击一个自定义工具按钮,系统即会提示用户输入首行文本所在位置、相邻两行文本偏移量、文本高度这三个参数。其中,首行文本所在位置由鼠标在屏幕上点击获得,文本高度默认值为4。用户依次输入文本,回车表示结束当行输入。 当所有文本输入结束后,按“Esc”键结束退出。AutoCAD回到等待命令输入状态下。 设计人员经常会遇到一些“填表”的工作,譬如在电力系统设计中,工作人员现场测得各电力杆的间距,需要在AutoCAD中将其制成电子表格,在表格中从上到下依次填

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1