江汉大学学报(自然科学版)
JournalofJianghanUniversity(NaturalSciences)Vol.33No.3Sep.,2005
AutoCAD环境下VisualLISP应用模块开发
万宇杰
(江汉大学机电与建筑工程学院,湖北武汉430056)
摘要:研究了AutoCAD环境下实现带轮绘制以及绘图环境自动设定的详细过程,提供了一种利用VisualLISP语言进行类标准件的设计方法,其方法对开发其他CAD系统也具有借鉴价值.
关键词:计算机辅助设计;工程图;V带轮;LISP
03-0091-03中图分类号:TP391.72文献标识码:B文章编号:1673-0143
1概述
AutoCAD软件是目前工程设计中应用较广
2
基于LISP技术的应用模块开发支撑技
术介绍
AutoLISP内存由一系列节点组成,它由左
的软件,它是由美国Autodesk公司开发的通用计算机辅助设计软件,广泛应用于机械、建筑等行业.AutoCAD提供了AutoLISP、ADS、ARX等内嵌式编程语言,用户可以利用这些编程语言进行二次开发,扩充AutoCAD的功能.AutoLISP是一种解释型语言,可以很方便地给AutoCAD增加新命令;AutoLISP通过内部进程通讯(IPC)与AutoCAD进行通讯;ADS是用C语言编写的应用程序,它作为外部函数加载到AutoCAD,需要由AutoLISP解释器来调用,它也是通过IPC来和AutoLISP通讯,用C语言编写的绘图程序一般需要较深编程基础,不易被一般工程人员所掌握.VisualLISP是用来加速设计AutoLISP程序的软件工具.VisualLISP是一个集成的开发环境,它可以使AutoLISP程序中的源代码编辑、程序测试与调试更加容易.VisualLISP是新一代AutoLISP语言,它对AutoLISP语言进行了扩展,可以通过MicrosoftActiveXAutomation接口与对象交互,通过反映器函数扩展AutoLISP响应事情的能力.VisualLISP程序可以实现对AutCAD图形数据的直接访问、修改等处理,以便对图形进行绘制、编辑等实时处理,实现图形的交互设计,然后再结合AutoCAD的绘图命令就可实现图形的参数化绘制等开发目的.
2.1AutoLISP数据储存结构
指针和右指针组成,节点是一种能表达所有Auto-LISP数据类型的储存结构.每个节点都有特殊的地址,AutoLISP正是通过访问符号、字符串、表等节点来对其进行存取的.当一符号被创建并加入到原子表中时,一个内存地址就包含在原子表中那个符号里,这个地址指向包含符号的节点.如果符号约束到一个值,包含符号的节点将包含一个内存地址,这个地址指向包含约束到符号值的节点.
AutoLISP为它自己的使用保留一个备用的内存节点表,称之为自由储存表,它由系统自动从内存空间中申请,表的插入和删除等运算中用到的新节点都取自于自由储存表,知道了Auto-LISP代码的特点就能编写出高质量的应用软件.2.2对话框驱动程序结构
对话框的驱动程序包含以下内容:(1)加载对话框DCL文件;(2)显示特定的对话框;(3)设置必要的构件初始值;(4)激活对话框;(5)处理用户操作;(6)卸载对话框文件.
收稿日期:2004-10-25
作者简介:万宇杰(1969
92江汉大学学报(自然科学版)总第33卷
3类标准件的自动绘制实例
带轮作为机械工程应用中一种重要零件,其
3.1带轮自动绘制的实现
绘制工作比较复杂,而绘制过程基本相似,因此这里选择带轮自动绘制为实例.3.2实例主要模块介绍3.2.1
接口模块
AutoLISP是以ASCII码形式存
储的,它内嵌在AutoCAD中,AutoLISP程序可与AutoCAD以各种方式进行交互.这些程序能够提示用户输入,直接接受内置的AutoCAD命令,并且修改或创建图形数据库中的对象.通过创建AutoLISP程序,用户可以向AutoCAD中添加专用命令.某些标准的AutoCAD命令实际上也是AutoLISP应用程序.VisualLISP为AutoLISP应用程序提供3种文件格式选项,即:从LSP文件
(lsp)中读取ASCIIAutoLISP文字;读取FAS文件(fas);读取VLX文件(vlx).LSP文件是ASCII文本文件,其中包含AutoLISP程序代码.FAS文件是LSP程序文件的二进制编译版本.VLX文件是一个或多个LSP和/或对话框控制语言(DCL)文件的编译集合.名称相似的AutoLISP应用程序文件的加载由它们的编辑时间决定.除非指定完整的文件名(包括文件扩展名),否则将加载最近编辑过的LSP、FAS或VLX文件.此规则也适用于自动加载和执行AutoLISP程序中所描述的启动文件.接口模块主要通过多种函数来完成与AutoCAD之间的通信.AutoCAD通过LOAD函数来调用AutoLISP程序模块.3.2.2对话框控制模块
对话框控制模块主要从
)、第一槽对称面至端面
距离(f)、轮槽角(fai)、动力输入轴直径(d)、带
轮轮毂部分直径厚度(L)、齿槽宽(xb)等参数.3.3.5
绘图中主要通过定义的
多个函数来进行图形的绘制,并通过setlay()函数来进行图层的设置等工作.3.3.6
标注尺寸及技术要求绘图完成后同样是利用BZ1()函数来标注各个视图的尺寸,标注属性通过公共子模块setdim()设置.3.3.7
图框与标题栏的绘制
运行程序中调用对
话框的命令,可对对话框文件DAILUN.dcl进行提取,从而完成对话框的控制.填入标题框文字绘图的具体过程
用户处获取必要的信息,如带轮的基准直径(D)、
齿数(Z)、基准宽度(bp)、基准线上槽深(Hamin)、基准线下槽深(Hfmin)、槽间距(e)、最小轮缘厚(
2005年第3期万宇杰:AutoCAD环境下VisualLISP应用模块开发93
通过公共子模块text()实现.
作为一张机械工程图来说,上面完成的内容只完成了整个设计中的一部分.因为对于机械工程图来说还必须包括绘图环境的设置.为了与整个带轮的设计相协调,同时为了带轮设计的程序能够独立的运行,文字样式,标注样式和层与线层的设置应该在带轮设计的程序中做出了一个固定的设置.
是V带轮类型选择对话框,图2是参数设置对话框,图3为标题栏对话框,图4为带轮参数化绘图完整界面.
4环境设置、尺寸标注等模块的实现
AutoCAD是Autodesk公司开发的绘图软件,
图2
V带轮参数设置对话框图
其缺省的某些环境设置不完全符合我国的工程制图标准,因此在绘图的准备阶段,有必要设置一些环境变量,使它们符合我国的工程制图标准,同时可进行其它一些相关操作.
环境设置模块完成的功能包括:比例设置、图幅设置、标题栏的设置等.
和带轮的设计一样,绘图环境、尺寸公差等也是由几个基本的模块所组成.即为接口模块、对话框控制模块、数据获取模块、图形绘制模块、数据文件、对话框控制语言文件等部分构成.与其不同的是绘图比例的设置,标题栏前置的设置以及标题栏后置的设置可以看成是由一个接口函数连接在一起的3个不同的函数体.在它们每个函数的主体部分前加上1个接口函数,它们就可以成为完全独立的3个函数,而完成3种不同的功能.在程序执行时,通过不同的命令完成对以上3个程序的调用:SETSCAL调用比例设置命令;SETSIZEA调用标题栏前置设置命令;SETSIZEB调用标题栏后置设置命令.
图4
带轮自动绘制结果示意图图3
标题栏文字输入对话框图
5结语
本文所涉及的模块已在WindowsMe、Auto
CAD2002上调试通过,取得较为满意的效果.与其他程序相比,此方法开发速度快,为进一步带轮开发公差配合等模块提供了平台.通过实例介绍运用二次开发技术在机械工程上的应用,对推广计算机辅助设计在参数化设计方面的应用有较强现实意义,其方法对开发其他CAD系统也具有推广价值.
5实例模块运行典型界面
程序加载后运行的几个典型界面如下:图1
参考文献:
[1]孙家广.计算机辅助设计技术基础[M].北京:清华大学出版社,2000.
[2]李刚,等.机械CAD原理与实践[M].北京:清华大学
出版社,1999.
图1V带轮类型选择对话框图[3]张志利.AUTOCAD2000定制与开发手册[M].武汉:华
中科技大学出版社,2000.
因篇幅问题不能全部显示,请点此查看更多更全内容