选择特殊符号
选择搜索类型
请输入搜索
从AutoCAD 2.18开始推出AutoLISP开始到现在,我们所能使用的开发工具主要有:AutoLISP、VisualLISP、VBA、COM外部接口、ObjectARX、ObjectARX.NET等开发方式供用户选择。下面开始对上述开发方式进行简要介绍:
AutoLISP是进行对AutoCAD二次开发最早的API,它是人工智能语言LISP的一个分支.主要用来自动完成重复性任务,进行客户化开发和编制AutoCAD菜单以及通过简单机制为AutoCAD扩充命令,能够有机的和AutoCAD结合在一起,它语法简单容易上手,到仍有很多的活跃开发用户。但是由于它是解释型API而不是面向对象的编程语言,使它的效率低下,由于执行的是源代码文件所以导致保密性能不高很难用它开发大型的应用程序。
在AutoCAD R14.01中,Autodesk公司首次提供了一种新的LISP编程工具:Visual LISP,它是一种面向对象的开发环境,是AutoLISP的扩展和延伸。
在AutoCAD2000中,Visual LISP被集成到了AutoCAD环境之中。Visual LISP是一种半编译的API。由于可以被编译所以大大提高了运行效率和安全性。同时它又与AutoLISP完全兼容,又提供了AutoLISP的所有功能,同时它又能够访问AutoCAD的多文档环境,以及对COM/ActiveX技术的支持和反应器等。VisualLISP
IDE同时提供了完整的编辑环境使得用户可以对代码进行调试跟踪、源码语法检查、括号匹配、函数提示等工具,方便创建和调试LISP程序。由于VLISP集成于AutoCAD内部,而且随AutoCAD升级而升级所以兼容性比较好,这也是LISP深受广大编程爱好者使用的原因。
但在进行大数据的计算处理方面,Visual LISP不能很好的胜任这项任务,这使得开发大型数据运算的程序仍有一定困难。
ADS(AutoCAD Development System)是Autodesk公司最早在AutoCAD R11中提供的C语言编程环境。ADS除可使用标准C的函数外,又增加了一组专用于对AutoCAD进行操作的函数。由于ADS程序具有C语言的一切优点,因而它曾是开发AutoCAD R11、AutoCAD R12应用程序的主要工具。用C写就的ADS程序,可在所有支持AutoCAD平台上进行源代码移植。只需使用普通的C语言编译器就可以编译生成ADS模块,与ADS库和标准C库链接后生成可执行文件,装入AutoCAD后即可运行。但是ADS和AutoLISP一样,内在结构不是面向对象的,用AutoLISP解释器加载和调用,利用IPC与AutoCAD通讯。
ARX(AutoCAD Runtime eXtension)是在ADS基础上发展起来的一种面向对象的C语言编程环境。由ADS到ARX的变迁就像C到C 的转变。ARX与老式的ADS及AutoLISP的最大差异在于ARX应用程序是动态链接库,共享AutoCAD地址空间,可以对AutoCAD进行直接函数调用,避免了IPC的系统开销和由此引起的性
能下降。因此那些频繁与AutoCAD通讯的应用程序在ARX环境下的运行效率明显优于老式ADS或AutoLISP环境。
ARX最早是在AutoCAD R13中提供的,但在AutoCAD R14中,ARX就被ObjectARX所代替。同时原来的ADS库函数全部被包含在ObjectARX中,将ADS函数合为单一的库就形成了ADSRX。ADSRX库已纳入到AutoCAD的总体结构中,因此它与其他ObjectARX库一样,能共享AutoCAD地址空间。
到了新世纪,传统意义上的ADS开发环境的概念已经不复存在,且ADSRX已成为了ObjectARX的一个子集,因此,ObjectARX是包含了ADS、ARX和ADSRX的一种综合的C/C 开发环境。ObjectARX的最大特点是引入了面向对象的编程机制,用户可以根据规则定制实体也是ObjectARX的一大亮点。
自AutoCAD R14起,提供了ActiveX Automation形式的API。ActiveX技术可将各种二进制应用程序组件集成一体。它可采用多种编程方式例如:VBA构造一种或多种与应用程序独立的宏编程。提供Automation服务的软件组件通过标准接口能够对外开放它的特定功能。
正是由于AutoCAD拥有ActiveX接口,因此,用户可以容易的用各种AciveX编程语言来定制开发AutoCAD。
AutoCAD包含的VBA能在进程内访问AutoCAD的对象模型。亦可以通过独立
的VB进行编程,但是VB与ActiveX的接口需要通过IPC驱动AutoCAD,所以作为ActiveX控件的VBA比VB具有明显的性能优势。
特别要强调的是,ActiveX与AutoCAD交互操作很慢,若需要在外部程序中一边运算一边交互操作的重复迭代,将耗费大量时间,如同死机
值得注意的是,从AutoCAD 2010版本开始,VBA不在随AutoCAD一起安装。如果想要在机器中运行VBA程序必须登录下面的网址进行下载方可运行。
在AutoCAD 2005 版本中Autodesk公司推出了用.NET开发AutoCAD的编程接口。它的实质是通过Managed C /CLR技术对VC 的ObjectARX进行封装。到AutoCAD 2015十年来Autodesk公司已经完成对大部分ObjectARX编程接口的封装。这种编程方式难度适中,能够访问大部分的编程接口(除了自定义实体);但是,由于AutoCAD的.NET接口是在不断的完善过程中导致了在低版本上不能够使用新增的功能。
比较各种开发AutoCAD的编程接口,需要从以下几个方面进行考虑:
1. 速度:直接与AutoCAD通讯的API比利用IPC进行通讯的API在速度方面要快。编译型的API比解释型的API速度要快。因此,ObjectARX的速度最快,Com接口开发的外部程序速度最慢。
2. 稳定性:运行稳定性反映出因程序可能出现的严重错误所导致的危险。采用LISP开发的程序一旦失败或崩溃,并不危害AutoCAD自身进程;而由于ObjectARX应用程序共享AutoCAD的地址空间,所以其一旦运行失败,AutoCAD进程随之崩溃。
3. 性能:ObjectARX的应用程序能在运行期间实时扩展AutoCAD,共享AutoCAD地址空间,甚至为所欲为,因此性能无比强大,以至于AutoCAD自身的许多功能模块都是由ObjectARX进行制作。相反,解释型API如AutoLISP仅被限用于使用静态的AutoCAD命令集提供结构化函数库
4. 技术难度:AutoLISP和VBA均是解释型语言,方便易学,开发周期短。许多程序员或一些技术人员都在使用它们。相比之下ObjectARX依赖于C 语言,它必须经过严格控制的编译、链接才能生成应用程序。这就需要编程人员需要积累经验,这样才能去发现问题从而解决问题。
5. 保密性:编译型程序要比解释型保密性要好,保护了开发人员的著作权,解释型语言往往保密性能不高。导致用户误操作源码造成不应有的错误。
另外:虽然.NET开发出来的DLL文件是编译后的程序,但是由于其程序可以反编译回源码造成了代码的保密性差,也是不容忽视的问题。
相比之下,如果以前已熟悉使用LISP语言的朋友,则可选用VisualLISP。
如果用户只想利用开发一些简单的周期性短的应用程序,则可以依个人爱好和经验选择Visual Basic和VisualLISP。若用户有较好的C 基础和AutoLISP函数基础,同时又要开发速度和性能要求都很高的应用程序或大型CAD应用软件,则要使用ObjectARX。2100433B
AutoCAD是在Windows和MAC系统中应用最为广泛、使用人数最多的CAD软件。但它只给我们提供了基础的CAD功能,如果我们想完成具体项目设计,就必须根据数据一笔笔绘制出图形,这样一旦在设计完成之后,要更改局部图形则需要重复原来的全部内容。造成了大量工作量的浪费。
如果使用AutoCAD的开发系统,我们就可以将以上的过程用程序编制出来,在需要设计时,只需一个命令就可以运行这个程序,自动完成绘图过程。显而易见,这不仅大大提高了设计效率,而且,还可以通过定制来完成某些专业化的模块,甚至大型设计软件,比如测绘行业的南方CASS软件、建筑行业的天正CAD软件等均是用AutoCAD开发系统实现的。
因此,要想让AutoCAD真正使用于某一具体领域,或让其经常完成一些重复性的工作,则必须利用AutoCAD的开发系统对其进行二次开发.
Dim BlockNameSt As StringSub DimDimaligned()On Error GoTo ErrDim Po(0 To 2) As DoubleDim Pr(0 To 2) ...
AutoCAD的二次开发主要涉及以下内容:(1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。(2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单...
AutoCAD二次开发在锅炉设计中的应用
由于锅炉技术的不断创新,原有设计可借用率不断下降,导致设计工作量大幅度增加。传统的手工计算机制图已无法满足设计及项目要求,大量的计算工作及制图工作量导致了出错率上升。使用C#语言对AutoCAD进行二次开发并组合前期计算,可以实现自动化绘制锅炉图纸,有效的减少计算工作量,并最大程度的降低人为主观错误。
AutoCAD二次开发在测量中的应用
Auto CAD是目前应用较为广泛的计算机辅助绘图软件,拥有良好的用户界面,较完善的绘图功能,操作简单的特点,但是仅仅基于Auto CAD绘图是不能满足测量绘图中的特殊需要。为此,概述了Auto CAD的一些基本知识,并用VBA对Auto CAD进行二次开发,解决绘图中一些实际的问题:批量展绘点,批量构造多段线、直线,批量变换点样式等。实现了水文岸边地形测量中,自动绘制岸边道路及建筑物功能。
第1章 AutoCAD定制与开发概述
1.1 AutoCAD二次开发特性
1.2 设置绘图环境
1.3 用户系统配置
本章小结
练习
第2章 形定义与图形符号库开发
2.1 形的创建
2.2 图形符号库开发
2.3 字体定义
本章小结
练习
第3章 线开园与图案文件的扩充
3.1 线型的定制
3.2 填充图案
本章小结
练习
第4章 菜单和工具栏的开发
4.1 菜单及菜单文件
4.2 菜单文件的开发方法
4.3 定制工具栏
本章小结
练习
第5章 VisualLISP程序设计
5.1 VisualLISP概述
5.2 VisualLISP基础
5.3 VisualLISP内部函数
5.4 VisualLISP应用程序开发实例
5.5 VisualLISP程序开发环境
本章小结
练习
第6章 图形转换接口文件
6.1 命令组文件格式及实现
6.2 DXF文件格式及实现
本章小结
练习
第7章 对话框的设计与制作
7.1 概述
7.2 对话框管理程序设计
7.3 对话框应用举例
本章小结
练习
第8章 工程图的二次开发基础
8.1 绘图环境的设定
8.2 程序化绘图过程
8.3 常用绘图程序的编制
8.4 可视化图库建立方法
本章小结
练习
第9章 CAD开发技术在机械设计中的应用
9.1 视图标注程序设计
9.2 常用尺寸标注程序设计
9.3 标准件图库设计
9.4 参数化图形绘制
9.5 三维造型设计实例
本章小结
练习
第10章 CAD开发技术在建筑设计中的应用
10.1 常用建筑设计应用程序
10.2 墙体设计程序设计
10.3 楼梯程序设计
本章小结
练习
第11章 CAD开发技术在矿图设计中的应用
11.1 坐标方格网绘制
11.2 边界线程序设计
11.3 钻孔符号绘制
11.4 断层符号绘制
11.5 回采工作面及采空区处理
本章小结
练习
附录AAutoCAD2004的系统变量一览表
附录B AutoCAD2004的尺寸标注系统变量表
附录C VisualLISP内部函数
参考文献
……2100433B
书 名: CAD二次开发技术及其工程应用
作 者:王玉琨
出版社: 清华大学出版社
出版时间: 2008
ISBN: 9787302167990
开本: 16
定价: 31.00 元
掌握AutoCAD穖基本操作后,通过本书可以取得以下收获。AutoCAD系统的基本定制;AutoCAD系统的形、线型、图案、菜单和工具栏等项内容开发方法;AutoLOSP语言的基础知识和编程技巧;AutoCAD对话框的设计及应用;AutoCAD系统命令的扩充方法;工程应用程序的开发方法与技巧。