《集成于AutoCAD的参数化机械标准件库设计.doc》由会员分享,可在线阅读,更多相关《集成于AutoCAD的参数化机械标准件库设计.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、集成于AutoCAD的参数化机械标准件库设计刘红军(中国科学院 沈阳自动化研究所,辽宁沈阳 ) 摘 要:采用Visual LISP对AutoCAD进行了二次开发,编制了常用机械标准件的参数化设计程序,并将其挂接到AutoCAD 2000环境中。 关键词:Visual LISP;机械标准件;参数化;DCL1 引 言 AutoCAD是目前PC平台上最为流行的通用计算机辅助设计系统,越来越多的机械设计工作是在该软件的环境下进行的。但是AutoCAD作为一个通用的计算机辅助设计系统,在使用其进行机械设计时,必然会出现不尽如人意的地方。其中,在机械设计人员进行机械设计的过程中,不可避免的要涉及到大量的标
2、准件的绘制工作。这些繁琐、重复性的工作完全可以交给AutoCAD来完成。各种机械标准件的形状类似,只是在具体尺寸上有变化,因此非常适合于进行参数化设计。本文正是利用AutoCAD的二次开发工具Visual LISP开发了常用机械标准件参数化库的设计。2 开发工具的选择 Auto LISP的后继版本可视化的集成开发环境Visual LISP作为一个全新的开发环境,令人耳目一新。它的推出,使得一些根本性的变化呈现在用户面前。由于Visual LISP已经在执行速度、安全性、新的扩展功能上具有了根本上的改变,同时又具有完全兼容Auto LISP、简单、易学的优点,使得其在AutoCAD的二次开发中占
3、据了越来越重要的地位。因此,采用了Visual LISP作为开发工具进行了本次设计。3 用户菜单的设计 菜单是一种最受用户欢迎的界面形式,AutoCAD提供了按钮菜单、下拉菜单、快捷菜单等多种形式。所有这些都是以菜单文件来进行组织的。 由于AutoCAD具有开放性,因此,可以将用户的菜单项加入到系统缺省的菜单文件ACADMNS中,或是用户自己开发的菜单文件中。在加载这个MNS文件时,系统自动对它进行编译并生成MNS(菜单源文件)和MNR(菜单资源文件)文件,以供系统操作使用。考虑到本标准件库仅仅是为机械设计人员使用,因而将其添加到使用频率最高的下拉菜单中。3.1 AutoCAD菜单文件的结构
4、菜单文件属于层次结构,从菜单组、菜单段、子菜单到菜单项,是一典型的树型结构。其中菜单组的作用是加载或卸载局部菜单,用菜单宏或Auto LISP控制菜单的显示和布局。而菜单项则体现了该菜单项的功能和外观,是定义菜单文件的关键。3.2 下拉菜单的设计 下拉菜单的段标签从“*POP1”到“*POP499”,屏幕上可显示16个菜单段的标题,每个标题的排列顺序只取决于菜单段的序号。文中定制了一组标题为“标准件”的下拉菜单,并将其派在“帮助”菜单的前面,它的段标签为“*POP11”,如图1所示。用户通过该下拉菜单中的选项,来调用所开发的相应的标准件参数化绘制程序。编写号菜单项的内容后,它只是说明了该菜单项
5、的功能,并不能具体的区别执行。为此,还要用菜单宏为该项菜单定义对应的功能,以便菜单能够执行某一具体的操作。菜单宏通常是命令和命令所需的参数序列。 具体的菜单段的内容如下: 其中,“-”表示在该菜单项中开始下一级菜单,“-”表示当前一级菜单结束。另外,程序中所有的调用目录均为相对路径,从而不必将用户程序及其它文件放到固定的路径下。至此,就可以将该菜单文件编译并加载到AutoCAD环境中了。4 对话框(DCL)的设计 在该软件中,为了实现参数化的设计,必然需要用户进行各部分尺寸的输入,并且在示例图形的帮助下来进行。因此,对话框这一人机界面形式就必不可少了。对话框是一种深受用户欢迎的界面,它具有形象
6、、直观,易于使用的优点。 对话框是用DCL(Dialog Control Language)语言定义,得到“.DCL”类型的文件,可以用文本编辑器编写对话框的代码。 对话框由若干控件组成,可以是按钮、编辑框等。这些基本类型的控件是由AutoCAD的可编程对话框功能预先定义的。4.1 幻灯片的制作及驱动 在DCL对话框中为了显示图形,采用了Image图像控件,但该控件并不能直接显示AutoCAD可生成的各种位图和图元文件。因此采用了幻灯片文件(.sld)这一形式。幻灯片文件是AutoCAD生产的独立于图形文件的目标文件,它不能象其他的图形文件那样进行编辑修改,而只是用于显示图形,可作为菜单和图像
7、控件的显示图像。为此,在AutoCAD中绘制了各个标准件的图形及其标注示例,并放大或缩小到适当的大小,用mslide命令完成幻灯片的制作,并用AutoLISP语言提供的slide-image函数在图像控件中予以显示。下面的程序说明了在对话框中显示幻灯片:4.2 对话框驱动 对话框的加载是用load-dialog函数来完成的,若加载成功则返回一个大于零的整数,否则显示加载失败的信息。当卸载对话框时采用unload-dialog函数,该函数的参数为load-dialog函数的返回值。以开槽沉头螺钉为例说明了对话框的具体设计过程,如图2所示。(defun c:KCLD () (setq id (lo
8、ad-dialog “/dcl/开槽沉头螺钉对话框);加载对话框 在程序设计中,考虑到很多参数是属于系列化的,例如螺钉的规格、公称尺寸等,有些参数是根据其它参数获得的。对此,本文在设计时充分考虑了这些因素,在对话框中大量应用了下拉列表框这一控件,使得用户可以在其中进行选取而不是输入;对第二类情况是通过其它参数进行相应的计算处理,并将所得到的结果直接放入的文本框中,从而省去了用户一一输入的麻烦,并且也很好地符合了实际设计的情况。同时对用户输入的参数进行了一定的校验,例如当进行螺栓参数输入的时候,当输入的螺纹长度参数大于螺栓长度时,程序会以警告对话框的形式予以警告,防止错误的发生。5 绘图程序设计
9、 当用户在对话框中输入完参数,并且将旋转角度及插入点拾取完成后,对于绘画程序的所有参数就一一获得了。以这些参数将图形的所有关键点的坐标计算出来, 接下来就可以调用Auto LISP的command 函数,以直线或圆弧的方式将这些关键点连接起来,完成标准件的图形绘制。其中在绘制剖面线时,可以采用Hatch函数很容易的实现,但是,当剖面线的边界轮廓与其它图形有交错的情况,或者当视图情况不理想时,剖面线的边界是很难能够正确地自动拾取的。在本文中,将需要进行剖面线填充的编辑以多义线(pline)的形式绘制,并将其放入选择集中。在需要时,就可以正确的对Hatch函数予以响应了。6 结束语 该标准件库具有方便、易用的特点,可以在一定程度上将机械设计人员从重复性的繁琐劳动中解脱出来。 该标准件库经实际使用,效果良好。另外,虽然这种类型的软件在市场上已经有公司出了商品化的软件,但是从自己的实际情况出发,本着实用够用的原则进行自己开发也还是有一定的意义的。参考文献1 李学治. AutoCAD2000 定制与Visual LISP开发技术M. 北京:清华大学出版社, 2001.5.2 孙江宏,丁立伟,米洁. Visual LISP R142000编程与应用M. 北京:科学出版社,1999.10.3 张展,张功,等. 机械设计通用手册Z, 1994.5.