基于AutoLISP语言的参数化绘图设计
2018-08-31
西安航空动力控制科技有限公司 西安 710077
在绘制系列化产品设计图样时,因为包含着许多形状结构相似但参数不同的零件,使设计人员不可避免地要进行大量重复性绘图工作,导致工作效率低下。要解决这个问题,可以在AutoCAD软件平台上应用其内嵌的AutoLISP语言进行编程二次开发,依据国家标准和行业标准,结合企业自身特点,自定义绘图命令,实现参数化绘图设计。
1 AutoLISP语言
AutoCAD作为Autodesk公司推出的一种通用的计算机辅助设计和图形处理软件,具有易于掌握、使用方便、绘图精确和体系结构开放等优点。AutoCAD以强大的绘图功能和便利的交互式操作风格深受广大科技人员的青睐,是现在普遍使用的计算机辅助设计软件,已广泛应用于机械、建筑、电子、化工、航空、航天等领域。AutoCAD的缺点是专业性、针对性不强,因此Autodesk公司在AutoCAD 2.18版及之后的版本中内嵌了AutoLISP语言编程开发工具[1-3]。
AutoLISP是LISP语言的一个分支,具有很强的数据表格处理功能,它与AutoCAD绘图命令相结合,可以存取和修改AutoCAD图形实体数据,存取AutoCAD的块表、层表、视图表、字体表及线型表,控制AutoCAD图形屏幕和设备输入等,并可直接调用全部的AutoCAD命令[4]。相比其它编程语言,AutoLISP语言简便易学,既具有一般高级语言的基本结构和功能,又具有一般高级语言所没有的强大图形处理功能,是应用AutoCAD的一种重要手段[5]。
2 参数化绘图设计步骤
所谓参数化绘图设计,是指绘图平台能够根据用户输入的相关参数信息,自动生成所需的图样,要求设计或开发人员事先根据所要绘制的零件结构及图样进行相应的程序设计。参数化绘图设计可以遵循以下步骤。
(1)分析结构特征,确定绘图参数,将既能体现零件结构特征,又能推导出其它尺寸的基本尺寸确定为绘图参数,参数应简洁明了[6]。
(2)输入绘图参数,应用DCL语言设计对话框。对话框主要考虑绘图参数的输入和相关布局,可在对话框中用幻灯片文件来显示各绘图参数的含义。应用DCL语言定义对话框属于界面描述,不能独立运行,需要以PDB函数为基础的LISP程序来驱动,这样才能实现指定的功能,获取绘图参数[7]。
(3)按照绘图需要,编写绘图程序。根据获取的绘图参数,按照绘图需要,进行相关坐标转换,编写相应的图形绘制程序。程序编写完成后保存为.LISP格式文件,类型名为LSP。
(4)装载相关程序,绘制所需图形。在编辑器中编辑好的LISP程序,必须经过加载方能使用。加载LISP程序有以下几种方式。
① 命令行方式。在“command”提示下输入“load"驱动器:\路径\文件名"”,用Load函数装载。
②对话框方式。在 “command”提示下输入“Appload”, 或选择下拉菜单 “工具”→“AutoLISP”→“加载”选项,在出现“加载/卸载应用程序”对话框后,选择所编写的LISP程序进行加载即可。
③自动加载。在AutoCAD工作目录下有一个ACADLISP文件,它是AutoCAD启动时自动加载的AutoLISP程序。用户想要在AutoCAD启动时自动加载自己定义的程序,在这个ACADLISP文件中加入“load"驱动器:\路径 \文件名"”即可[8]。
④添加用户工具按钮。用以上几种方法加载LISP程序,用户只能在当前图形文件中执行,如果退出当前图形文件并打开另一图形文件,原来已加载的LISP程序将会自动从内存中清除,必须再次加载才能使用。这个缺陷可以通过添加用户工具按钮的方法予以解决。限于篇幅原因,这一方法的具体操作在此不作介绍。
(5)参数化绘图。在AutoCAD环境中,LISP程序被加载后就可以运行了。运行时,在“command”提示符下键入defun定义的函数名,就会出现相应的对话框,输入相关参数后点击“确定”按钮,根据提示进行相应输入后,就可以绘制所需的图形[9-10]。
3 定位销参数化绘图设计实例
笔者在工作中经常需要绘制定位销图样,所绘制的定位销大多数形状相同,但尺寸不一样。尽管计算机硬盘上存有以前绘制的图样,可以通过更改尺寸标注的方法或是用块插入命令方式实现绘图,但这些方法的缺点是输出的图样与所设计的零件实际形状不成比例,存在视觉误差。若采用AutoLISP编程,实现参数化绘图设计,不但可以缩短绘图时间,而且可以使图形绘制得准确、美观。以下以图1所示定位销的参数化绘图设计为例,介绍其实现过程。
(1)根据定位销结构特征进行分析,确定定位销的直径d1、d2、D和长度L、L1为绘图参数。
(2)为了使编制的程序用起来更加方便,输入定位销绘图参数时采用对话框形式,应用DCL语言编写一个对话框文件,在对话框中增加一个图像按钮,用幻灯片文件来显示各绘图参数的含义。对话框界面如图2所示。
(3)根据输入的绘图参数,确定其它参数,换算绘图坐标,用LISP语言编写定位销的参数化绘图程序。主程序流程如图3所示。
▲图1 定位销
(4) 在 AutoCAD环境中,相关程序被加载后就可以运行了。运行时,在“command”提示符下键入文件函数名,就会出现对话框。输入相关绘图参数后,若点击“取消”按钮,则将退出此程序;若点击“确定”按钮,则对话框将关闭,并提示输入绘图基点。选取合适的绘图基点后,就可以绘出定位销图形了。
如果是实心定位销,在对话框中输入D=0,就可以绘制出如图4所示的图形。
▲图2 对话框界面
▲图3 主程序流程
▲图4 实心定位销
上述定位销参数化绘图设计实例较简单,目的是介绍应用AutoLISP语言在AutoCAD平台上实现参数化绘图设计的思路和方法。在理解和掌握方法的基础上,对于较为复杂的问题,可以逐步分解为简单问题来处理。
4 结束语
从应用实例可以看出,与直接利用AutoCAD命令进行交互式绘图相比,采用基于AutoCAD内嵌的AutoLISP语言进行参数化绘图设计,可以大大减少工程设计人员不必要的重复绘图,提高设计效率。因此,可以说自从AutoCAD嵌入AutoLISP之后,使作为交互式图形编辑软件的AutoCAD发展为真正意义上进行计算机辅助设计、绘图的软件。AutoLISP语言程序可以在现今流行的各个版本AutoCAD中使用,它的许多新增功能和优点有待进一步学习和开发。