1、摘 要AutoCAD是当今世界上使用最多的通用绘图软件之一,但其在某些具体的功能方面仍有其自身的不足。在机械零件的设计绘图中,一些常用图形需要经常绘制,若我们逐一绘制,显然费时费力,事倍功半,系统自带的图快复制粘贴插入等编辑功能操作又有着难以避免的局限性。随着标准件库的陆续推出,确实解决了很大一部分问题,但我个人认为这无法满足我们对实际的要求。因此,为了提高绘图速度,我们可以利用计算机软件来进行参数化绘图。AutoLisp语言内嵌于AutoCAD,实现了计算与绘图的统一,我们有必要在AutoCAD平台上,利用语言进行二次开发,建立常用图形库,在绘制时调出,避免重复性劳动及绘图不规范等问题。本论
2、文的主要目的就是在对轴类零件结构分析的基础上,选择一种有代表性的图形结构,通过采用AutoLisp语言编程对AutoCAD进行二次开发,即可实现不同轴径、槽宽和槽深的轴剖面图的自动绘制及尺寸标注,提高了轴类零件的绘图效率。关键词:轴类零件;参数化设计;二次开发;AutoLisp语言AbstractAutoCAD is the worlds most common use of graphics software,but its specific functions in certain still its own shortcomings.Drawing in the design of me
3、chanical parts,some common graphic needs often draw,if we draw one by one,obviosly laborious and time consuming duplication of efforts,the system map that comes with fast copy and paste into other editing operations it has inevitable limitations.With the continuous introdution of standard parts libr
4、ary,a large part of the problem is indeed solved,but personally think that we can not meet the actual requirements.Therefore,in order to improve drawing speed,we can use computer software to conduct parametric drawing.AutoLisp language embedded in AutoCAD, calculation and drawing to achieve a unifie
5、d,we need the AutoCAD platform,use the second language development,the establishment of common graphics library,in the draw when called up,to avoid repetitive work and the problem of drawing is not standardized,etc.The main purpose of this paper is to analyze three dimensional structure based on the
6、 graphic to select a representative structure,through the use of AutoLisp language programming on the secondary of AutoCAD,you can achieve different shaft diameter,groove width and groove depth of the axial profiles of automatic drawing and dimensioning,improve the efficiency of shaft parts of the d
7、rawing.Keywords:shaft parts;parameterization design;secondary development;AutoLisp language目 录引言11 AutoCAD及其二次开发技术21.1 第一代开发工具AutoLISP21.2 第二代开发工具ADS21.3 第三代开发工具Visual LISP,ARS及基于ActiveX Automation技术的VBA等31.3.1 Visual LISP(VLISP)31.3.2 ARX31.3.3 基于ActiveX Automation技术的VBA等开发工具41.4 总结52 利用AutoLisp进行参
8、数化绘图的方案62.1 鼠标拖动62.2 尺寸驱动62.3 总结73 对话框的设计83.1 DCL语言的语法规83.2 对话框设计中用到的控件和属性83.3 对话框的程序编译94 系统设计144.1 轴设计的总体方案144.2 主程序的设计144.2.1 对话框PDB函数144.2.2 主程序的编译164.3 程序的运行255 结论29谢 辞30参考文献31引言 AutoLisp是集成在计算机辅助设计软件AutoCAD和MDT中,为扩展它们的功能和编写应用程序而设计的一种编程语言,它的起源可以追溯到20世纪50年代末的LISP语言。LISP最初是为了编写人工智能(AI)应用程序设计的,现在仍是
9、很多人工智能程序的基础。LISP之所以被选为AutoCAD最初的应用程序编辑接口,是因为只有它才适合于工程中的非结构化设计过程。美国Autodesk公司在AutoCAD内部嵌入AutoLisp语言的目的是使用户充分利用AutoCAD进行二次开发,实现直接增加和修改AutoCAD命令,随意扩大图形编辑功能,建立图形库和数据库并对当前图形进行直接访问和修改,开发CAD软件包等。AutoLisp语言最典型的应用之一就是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。尺寸驱动是指通过改变实体标注的尺寸值来实现图形的自动修改,鼠标拖动即利用AutoLisp语言提供的(GRREAD)函数,让用户
10、直接读取AutoCAD的输入设备(通常为鼠标),任选项追踪光标移动存在且为真时,调整所需的参数值而达到自动改变屏幕图形的属性。到目前为止,大多数参数化程序都是针对二维平面图编制的。另一个AutoLisp的典型应用就是驱动利用AutoCAD提供的PDB模板构成DCL(Dialog Control Language)文件创建自己的对话框。 自从AutoLisp嵌入AutoCAD之后,使仅仅作为交互式图形编辑软件的AutoCAD编辑能真正进行计算机辅助设计、绘图的CAD软件。由于LISP灵活多变、易于学习和使用,因而AutoCAD成为功能强大的工具性软件。1 AutoCAD及其二次开发技术AutoC
11、AD是目前微机上应用最为广泛的通用的交互式计算机辅助绘图与设计软件包。AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。其通用性使得它在机械、电子、航空、轮船、建筑、服装等领域得到了极为广泛的应用。但是,不同的行业标准使得各领域在使用AutoCAD的过程中均需要根据自身特点进行定制或开发。Autodesk公司为满足广大用户的需求,自AutoCAD v2.18版至AutoCAD2000的短短十几年间,就相继推出了三代二次开发工具。可以说,AutoCAD的通用性为其二次开发提供了必要条件,而AutoCAD开放的体系结构则使其二次开发成为可能。下面对AutoCAD的三代开发工具
12、进行浅析。1.1 第一代开发工具AutoLISP AutoLISP是1986年随AutoCAD v2.18提供的二次开发工具。它是一种人工智能语言,是嵌入AutoCAD内部的COMMON LISP的一个子集。在AutoCAD的二次开发工具中,它是唯一的一种解释型语言。使用AutoLISP可直接调用几乎所有的AutoCAD命令。 AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。另一个典型应用就是驱动AutoCAD提供PDB模块构成DCL(Dialog Control Language)文件创建自己的对话框。AutoLISP具有以下优点:(1)语言规
13、则十分简单,易学易用;(2)直接针对AutoCAD,易于交互;(3)解释执行,立竿见影。AutoLISP的缺点是:(1)功能单一,综合处理能力差;(2)解释执行,程序运行速度慢;(3)缺乏很好的保护机制,源程序保密性差;(4)LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式也不一致;(5)不能直接访问硬件设备、进行二进制文件的读写。 AutoLISP的这些特点,使其仅适合于有能力的终端用户完成一些自己的开发任务。1.2 第二代开发工具ADS ADS(AutoCAD Development System)是AutoCAD R11开始支持的一种基于C语言的灵活的开发环境。AD
14、S可直接利用用户熟悉的C编译器,将应用程序编译成可执行文件后在AutoCAD环境下运行,从而既利用了AutoCAD环境的强大功能,又利用了C语言的结构化编程、运行效率高的优势。与AutoLISP 相比,ADS优越之处在于:(1)具备错综复杂的大规模处理能力;(2)编译成机器代码后执行速度快;(3)编译时可以检查出程序设计语言的逻辑错误;(4)程序源代码的可读性好于AutoLISP。 而其不便之处在于:(1)C语言比LISP语言难于掌握和熟练应用;(2)ADS程序的隐藏错误往往导致AutoCAD,乃至操作系统的崩溃;(3)需要编译才能运行,不易见到代码的效果;(4)同样功能ADS程序源代码比Au
15、toLISP代码长很多。1.3 第三代开发工具Visual LISP,ARS及基于ActiveX Automation技术的VBA等1.3.1 Visual LISP(VLISP) VLISP是AutoLISP的换代产品。它与AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCAD LISP语言。VLISP对语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。同时,通过实现反应器函数,还扩展AutoLISP响应事件的能力。作为开发工具,VLISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他工具,可以提高二次开发的效率 。另外,VLISP还提供了工具用于发布独立的应用程序。1.3.2 ARX ARX(AutoCAD Runtime eXtension)是AutoCAD R13之后推出的一个以C+语言为基础的面向对象的开发环境和应用程序接口。ARX程序本质上Windows动态连接库(DLL)程序,与AutoCAD共享地址空间,直接