下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、应用AutoLISP和DCL对AutoCAD的二次开发苗现华,吴传山(健雄职业技术学院,江苏太仓215411)摘 要:通过实例说明,应用AutoLISP和DCL,能够编写出人机交互强,功能强大的 程序,对AutoCAD进行十分有效的二次开发,从而提高绘图效率,并使AutoCAD真正地 起到辅助设计作用。关键词:AutoLISP; DCL; AutoCAD;二次开发文献标识码:中图分类号:TP391.72.概述AutoCA D是当今风靡世界的CAD应用 软件,为了提高其绘图效率,增强其设计能 力,常会用到AutoLISP及DCL对其进行二次 开发1。由于AutoLISP及DCL均附着于 Auto
2、CAD软件内,AutoLISP是编写绘图、编 辑图形等程序的表处理语言,易学易用且功 能强大;DCL是用户对话框设计语言,可设 计出简洁、美观且人机交互强的用户对话 框。二者配合使用,对AutoCAD有着强大的 二次开发能力。以双头螺柱为例,说明如何应 用AutoLISP和DCL对AutoCAD进行二次开 发及开发效果。.开发流程2 .1用DCL编写用户对话框界面根据设计意图,编写用户对话框,如图 1所示。图1用户对话框界面用户点击图中单选按钮,选取绘图所需 的国标及等级代号,右侧则展现对应螺柱样 式的图片。在图中下拉列表框中选取所需公 称直径d和公称长度1,选取或输入所需旋转A角度angle
3、,点击“确定”按钮在AutoCAD 界面中绘出所希望的双头螺柱。对话框文件 取名为stlz.dc 1,源程序如下:st1z:dia1og1abe1= “双头螺柱”;:row:boxed_radio_co1umn1abe1=国标及等级代号;:radio_button1abe1=GB/T 897-1988 A”;key=k897A”;:radio_button1abe1=GB/T 897-1988 B”;key=k897B”;:radio_button1abe1=GB/T 898-1988 A”;key=k898A”;:radio_button1abe1=GB/T 898-1988 B”;key=
4、k898B”;:radio_button1abe1=GB/T 899-1988 A”;key=k899A”;:radio_button1abe1=GB/T 899-1988 B;key=k899B;:radio_button1abe1=GB/T 900-1988 A”;key=k900A”;:radio_button1abe1=GB/T 900-1988 B”;key=k900B”;:imagekey=kimage”;co1or=-2;width=30;aspect_ratio=1;:row(:popup_listlabel=公称直径 d”;edit_width=4;key=kpopd”;:p
5、opup_listlabel=公称长度 l”;edit_width=4;key=kpopl”;:popup_listlabel=旋转角度 angle”;edit_width=4;key=kpopa”;:edit_boxedit_width=4;key=ke box”;spacer_1;ok_cancel;2 .2制作SLD文件为了实现用户对话框中的八种类型的 双头螺柱的图像显示,首先在AutoCAD软件 的绘图区域中分别绘制这八种类型的双头 螺柱,然后在命令行中输入“mslide”命令, 分别创建相应的幻灯片文件,文件分别命名 为stlzl. sldstlz8.sld。制作幻灯片文件前尽 量将
6、每种类型的图形居中且填满绘图区域。2.3编写L ISP程序LISP程序在二次开发各环节中是唯一 具有驱动能力的,它用来开启用户对话框, 响应用户动作,控制绘图命令,直至完成开 发任务。程序由一个主程序和四个子程序组 成。其主程序的流程如图2所示,主程序及相 关注释如下:(defun stlz()(setvar cmdecho 0)(setq id (load_dialog stlz);打开对话框(new_dialog stlz id)(csys);调用参数预设子程序(action_tile kpopd (setq pop 1) (sub_pop$value),响应用户动作,调用子程序(acti
7、on_tile kpopl (setq pop 2) (sub_pop $value)(action_tile kpopa (setq pop 3) (sub_pop $value)(action_tile k897A (setq xz 1)(sub_gbxz) ;响应用户动作,调用子程序(action_tile k900B (setq xz 8)(sub_gbxz)(action_tile accept (ok_stlz) (done_dialog 1)(setq dd (start_dialog)(if (= dd 1) (draw_stlz);调用绘图子程序(princ)图2主程序流程图
8、四个子程序使得主程序变得简洁明了, 且便于修改。分别是:一个参数预设子程序, 两个动作响应子程序和一个绘图子程序。其 中绘图子程序中的参数设置需要按照机械 设计手册进行2。编写LISP过程中,在能够完成基本任 务的前提下,应尽量全面考虑各种情况,使 程序趋于完善。比如以下两种情况:情况1:绘图前需要进行基点输入,这 时“对象捕捉”应当处于“开”的状态。而 在LISP程序驱动AutoCAD命令进行绘图 时,必须使之处于“关”的状态,否则便会 出错。解决方法:在让用户输入基点之前、 之后分别用:(setvar osmode 16383)和(setvar osmode 0)。情况2: 一个公称直径并
9、非所有公称长 度都可以与之匹配,所以当用户给出的选项 不能匹配时需要给出错误提示而不是执行 绘图程序。解决方法:在进行判断条件进行 参数设置时,当条件都不符合时进行信息提 示并退出:(cond(t (alert 您选的直径和长度不匹配!)exit)2.4自定义并加载局部菜单将以上涉及到的文件均保存在AutoCAD所在目录的Support文件夹下,在 命令行中输入相应命令,对程序进行调试。 在调试无误后,编写局部菜单31菜单文件 命名为mylisp.mnu,其内容如下:*MENUGROUP=MYLISP*POP1自编LISP双头螺柱AcAcAp(load stlz)(stlz)菜单文件编写完成,
10、在AutoCAD命令 行中输入menuload命令进行菜单的加载。.程序的运行进行AutoCAD操作环境,点击“自编 LISP ”菜单,选择“双头螺柱”命令,如图 3所示。此时系统弹出“双头螺柱”对话框, 如图1所示。图3自定义菜单此时,对话框会响应用户动作。假如用 户的选择为:国标及等级代号 GB/T 897-1988 B”,公称直径30,公称长度90, 旋转角度90,对话框如图4所示。点击“确 定”,关闭对话框,进入绘图程序,要求用 户输入基点,如图5所示。基点输入完毕, 绘图自动完成,如图6所示。14 4,H 模型工布局1工布局 i而寺: 命令:命夸:请插入基准点:JT.0819,636
11、.0389, 0.0000图5基点输入提示图6程序绘图有时用户可能并不专业,选取的公称直 径与公称长度的组合并不在机械设计手册 中。此时,点击“确定”后会弹出AutoCAD 信息对话框,如图7所示。图7信息提示.结论由例可知,应用AutoLISP和DCL可以 对AutoCAD进行十分有效的二次开发。不 但可以开发出各种零件库,大大提高绘图效 率,还可以减少甚至免除用户翻阅手册的繁 重工作,从而使得AutoCAD真正地起到辅 助设计的作用。参考文献:1吴永进,林美樱.AtuoLISP&DCL基础篇 M.中国铁道出版社,2003.2成大先.机械设计手册第四版第2卷M. 化学工业出版社,2002.3
12、王军.在AutoCAD中用菜单加载 AutoLISP程序的方法与技巧J.机械 工人冷加工,2006(3):77-79.图4对话框响应用户动作界面AutoLISP and DCL are applied in the secondary development of AutoCADMIAO Xian-hua,WU Chuan-shan(Chien-Shiung Institute of Technology,Taicang 215411,China)Abstract: Through an example, a conclusion can be drawn: through the application of AutoLISP and DCL, the strong interactive and powerful programs can be compiled, and AutoCAD is secondary developed effectively.Thereby
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论