0.引言AutoCAD是目前CAD软件中应用较广泛的软件之一。在产品设计已系列化的趋势下,为提高绘图效率,常用DCL与AutoLISP语言对其进行二次开发。其中,DCL是设计用户对话框的语言,AutoLISP是编写绘制图形、编辑图形等程序的表处理语言。组合使用DCL和AutoLISP语言,可以开发出具有人机交互性强、绘图功能强大的应用程序。以标准件垫圈为例,说明组合使用DCL和Au-toLISP语言开发标准件库的流程。1.开发流程1.1编写DCL程序DCL是对话框设计语言,利用它可以设计出界面简洁美观、功能齐全的用户对话框,使得开发程序应用起来具有较强的人机交互性。本文开发的“垫圈绘制”对话框如图1所示,主要引用的控件是图像按钮,可以实现四种类型垫圈的选择和绘制,其DCL源程序如下,文件名为dq.dcl。dq:dialog{label="常用垫圈的绘制";:boxed_column{label="垫圈类型(圆平垫圈、弹簧垫圈、方垫圈、方斜垫圈)";:row{:image_button{width=26;height=12;key="dq1";}:image_button{width=26;height=12;key="dq2";}}spacer;:row{:image_button{width=26;height=12;key="dq3";}:image_button{width=26;height=12;key="dq4";}}}:text{label="提示:先选择垫圈类型,再选择垫圈的主参数绘图";}ok_cancel;}图1用户对话框1.2制作幻灯片文件为了实现用户对话框中的四种类型的垫圈的图像显示,首先在AutoCAD软件的绘图区域中分别绘制这四种类型的垫圈,然后在命令行中输入"mslide"命令,分别创建这四种垫圈的幻灯片文件,文件分别命名为ypdq.sld、thdq.sld、fdq.sld、fxdq.sld。笔者认为,制作幻灯片文件前尽量将每种类型的垫圈图形居中且填满绘图区域,这样图像按钮显示较清晰得体。1.3编写LISP程序在DCL程序设计的用户对话框预览无误、幻灯片文件制作结束后,开始编写LISP程序。本文开发的LISP程序由一个主程序和五个子程序组成,主程序文件命名为dq.lsp。主程序用于驱动用户对话框和调用子程序;五个子程序中的一个用于驱动用户对话框中四个图像按钮区域显示四个幻灯片文件,其余四个子程序用于绘制四种类型的垫圈。整个主程序的流程图如图2所示,主程序及相关注释如下:(defundq(/keyimage_nameindex);定义绘制垫圈的新命令名是dq(setqindex(load_dialog"dq.dcl"));加载对话框文件(if(not(new_dialog"dq"index))(exit))(image"dq1""ypdq");调用幻灯片显示子程序(image"dq2""thdq")(image"dq3""fdq")(image"dq4""fxdq")(action_tile"dq1""(setqdq1)");定义用户响应的动作(action_tile"dq2""(setqdq2)")(action_tile"dq3""(setqdq3)")(action_tile"dq4""(setqdq4)")(action_tile"accept""(done_dialog)")(start_dialog)(unload_dialogindex)(princ)(cond((=dq1)(draw_dq1));调用垫