Autolisp 二次开发齿轮参数化程序设计.doc

上传人:仙人指路1688 文档编号:2925301 上传时间:2023-03-03 格式:DOC 页数:6 大小:1.75MB
返回 下载 相关 举报
Autolisp 二次开发齿轮参数化程序设计.doc_第1页
第1页 / 共6页
Autolisp 二次开发齿轮参数化程序设计.doc_第2页
第2页 / 共6页
Autolisp 二次开发齿轮参数化程序设计.doc_第3页
第3页 / 共6页
Autolisp 二次开发齿轮参数化程序设计.doc_第4页
第4页 / 共6页
Autolisp 二次开发齿轮参数化程序设计.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《Autolisp 二次开发齿轮参数化程序设计.doc》由会员分享,可在线阅读,更多相关《Autolisp 二次开发齿轮参数化程序设计.doc(6页珍藏版)》请在三一办公上搜索。

1、Autolisp 二次开发齿轮参数化程序设计作 者:高晓芳指导老师:胡志刚摘要 本次设计是利用AutoCAD的二次开发visual Lisp,利用进行AutoLISP语言编写程序。它是基于对话框的参数化蜗杆程序的设计,只需在对话框内输入相应的参数,即可快速准确的自动绘出图来。关键词 AutoCAD二次开发 LISP程序 对话框 控件【abtract】This design is to makes use of the AutoCAD to develop the visual Lisp, making use of the proceeding AutoLISP language plait

2、write the procedure. It is a design that parameter to base on the dialog box turn the pole procedure, needs to input the homologous parameter in dialog box, then fast accurate draw a diagram automatically.【Keyword】 Secondary development of AutoCAD LISP procedure Communication frame Controlling part1

3、.引言:在实际工程设计中,有60%-80%的图形是通过修改已有的设计而形成新设计的,而且多数是通过修改设计参数(参数优化)来完成的,可以在较短的时间里快速、高质量的完成多方案对比设计,可以针对不同的应用领域用AutoLISP语言编程,建立各种零部件的图形库,给出一些必要的参数即可绘出来,所以,参数化绘图程序具有广阔的领域。2.设计绘图思想 第一步:确定关键的参数。程序设计中首先要输入关键的参数。这是编程的前提条件。根据蜗杆的尺寸计算公式可以得到它有四个参数:m(轴向模数);d1(蜗杆的分度圆直径);z1(蜗杆线数);z2(蜗轮的齿数)。利用对话框的形式(也可以利用GET类的交互式的命令输入这四

4、个关键的参数)。然后再用这四个基本的参数计算出其他如:齿顶高(ha=m);齿根高(hf=1.2m); 齿顶圆直径(da1=d1+2m);齿根圆直径(df1=d1-2.4m);轴向齿距(px=pi*m)等等。利用表的格式用赋值函数“setq”把后面的计算式赋值给前面的字母。第二步:计算各个具体的点。确定好关键的参数之后,标好图形中的每一个点,要根据这些参数计算图形之中的所有的点,为编写下面的绘图做好准备。计算完各个点同样利用表的格式用赋值函数“setq”对各点进行赋值。赋值点要指定画图时的第一点(也可以说是起始点),可以用交互式命令“getpoint”输入,也可以程序中自行指定,如:(setq

5、p1 (500 500))。第三步:编写具体的绘图过程。做完上面的步骤之后,就该完成具体的绘图过程了。AUTOLISP能够提供一个系统内部函数“Command”,利用“Command”函数可以非常方便地调用几乎全部的AUTOCAD命令。具体的编写过程就是利用COMMAND命令向AUTOCAD命令行直接发送一个AUTOCAD命令并能接受响应。用Pline,Line,Circle等命令,实现画多义线,直线,圆。用,Mirror,Trim等命令实现镜像和修剪等功能。第四步:具体的绘图环境。在AUTOCAD中画图时需要具体的绘图环境,在编写LISP程序时也需要具体的绘图环境。比如图界命令Limit,用

6、于设置图纸的边界,一般为420* 297 。缩放命令zoom,输入zoom之后再选all,将按照由Limit命令定义的图形界限显示图形对象,可以看到整个图形及所处位置的全貌。目标捕捉命令Osnap,捕捉命令Snap,以及正交命令ortho,在编程之前都应处于关闭状态。图层命令”Layer”在编程中实现每一层实现什么,如尺寸标注,抛面线,虚线,图形等分别在哪一层绘出。另外还有显示栅格命令grid等。3.程序实现31对话框设计:(1) 对话框设计对话框的设计要用DCL文件来描述。对话框中的元素,例如按钮和编辑框,都被认为是控件。每个控件的大小和功能都由控件的属性来完成。在创建对话框时,必须创建一个

7、新的应用指定的DCL文件。label=输入对话框名称 ; 显示控件标题:edit_box label=请输入蜗杆的轴向模数 :; key=m;width=10; mnemonic=m; 定义一个编辑框,关键字的值分别为m,指定控件的宽度为10,控件快捷键分别为mok_cancel; 定义0K和Cancel按钮完成了对话框的原程序之后, 在AUTOCAD界面上发出命令工具|AUTOLISP(S)|VLSIP编辑器(V)后,即出现VLISP FOR AUTOCAD界面;然后,加载DCL对话框,再单击工具|界面工具|加载编辑器中的DCL(E);即出现如下图1输入对话框名称的框图: 图1 输入对话框名

8、称此时,按“确定”按钮并回车,即出现DCL对话框,如图2中基本参数的设置的对话框: 图 2 基本参数的设置对话框(2)对话框的驱动程序设计用DCL语言定义好的对话框只是一个界面描述,它不能独立的显示,也不能完成任何用户想要执行的动作,只有以PDB函数为基础用AUTOLISP程序来驱动它,才能实现指定的功能。现将关键程序叙述如下: I在动作回调中处理用户输入,用get_tile 函数检索一个对话框的DCL值,也就是用户在对话框中输入值后,用此函数完成对话框值的调用,传到程序中以便后面程序的运算。其主要程序句如下: (setq m (atof (get_tile m) 在程序当中的 (setq m

9、 (atof (get_tile m) 就是从对话框中提取m 的值,m值也就是在DCL程序中的变量key,它是程序的关键字。”atof”在程序中是指,将字符型数据转化为浮点型数据。在对话框中输入的数都为浮点型,要传到程序中,要用”atof“对数进行转化。最后再用赋值语句setq 把从对话框中的值传给m值。II对话框在程序中的实现过程及关键语句注释:程序中的(setq id (load_dialog h:wogan1)将DCL文件加载到内存中。load_dialog函数之后要输入具体的路径,一定要写正确,如果输错,程序将不往下执行。(if ( id 0) (exit)语句检查是否把对话框加载上了

10、;(setq m 4 d1 40 z1 4 z2 80) 是给对话框设置一个缺省的值,也就是说当调出对话框时,已经有了值,不用输任何值,直接按下确定按钮,就能执行下面的语句;在(if (not (new_dialog wogan_dlg id) (exit) 中的new_dialog函数是显示对话框。程序有对话框的返回值进行检查和控制。(set_tile m (rtos m 2 2)语句是设控件的初值。”m”是变量key指定的字符串,并以字符串的形式返回控件的值。Rtos是将数(在对话框中输入的数)转换成相应十进制且精度为小数之后2位的字符串。(action_tile m (set_tile

11、$key(rtos(atof $value) 2 2)语句是从对话框中获取值,传入程序中; (action_tile accept (act)(done_dialog) ;当”ok”按钮被按时,调用act函数,然后退出对话框;(start_dialog) 显示对话框;(unload_dialog id) 卸载对话框;(my)调用my程序(也就是绘图程序)程序段要在程序末执行。3.2绘图部分:第一步:确定关键的参数。程序设计中首先要输入关键的参数。这是编程的前提条件。在对话框中输入蜗杆的四个参数:m(轴向模数);d1(蜗杆的分度圆直径);z1(蜗杆线数);z2(蜗轮的齿数)。然后再用这四个基本的

12、参数计算出其他如:齿顶高(ha=m)等基本参数。利用表的格式用赋值函数“setq”把后面的计算式赋值给前面的字母。(setq da1 (+ d1 (* 2 m) 齿顶圆直径(da1=d1+2m)(if (or (= z1 1) (= z1 2) (setq L (* (+ 11 (* 0.1 z2) m) 当z1=1,2时,L=(11+0.1z2)m第二步:计算各个具体的点。确定好关键的参数之后,标好图形中的每一个点,要根据这些参数计算图形之中的所有的点,为编写下面的绘图做好准备。(setq q2 (polar q1 (* 0.5 pi) (/ da1 2) 定义q2 点 它相对于q1点逆时针

13、的角度为90度,长度为齿顶圆半径。第三步:编写具体的绘图过程。做完上面的步骤之后,就该完成具体的绘图过程了。绘图中需要运用的命令有:pline命令(多义线)、line命令(直线)、mirror命令(镜像)、bhatch命令(填充)、dimlinear命令等(标尺寸),例外在画蜗杆的齿时需要(repeat命令(重复)。下面就说明它们在程序中具体的实现过程。1(command pline q1 w 0.6 q2 q3 q4 ) 是一条画多义线命令。它画一条连接q1点、q2点、q3点、q4点的多义线。”w”是设置多义线的宽度命令,0.6即为多义线的宽度。”即表示回车键。 Command函数中调用的参

14、数类型、个数与顺序和AutoCAD命令严格对应。2(command line q5 q6 ) 是一条画直线的命令。它是一条连接q5点和q6点的直线。在程序中通过多义线和直线命令可实现的图型,如图3所示的半个蜗杆图: 图3 半个蜗杆图3(setq s1 (ssget c q21 q22)(command mirror s1 q20 q17 )是实现镜像命令的过程:ssget是一个选择集操作函数,”c”是实现”crossing”的选择。q21点和q22点是选择区域的左下角点和右上角点。把它定义为s1区域。然后用mirror命令实现区域s1的镜像,q21点和q22 点是分别为指定镜像点的第一点和第二

15、点。如图4蜗杆的镜像图: 图4 蜗杆的镜像图4(command pline q23 qt )(repeat 3(command(setq qt (polar qt (- (* 0.5 pi) a) (* (/ h (cos a) ) 4)(setq qt (polar qt 0 (* (/ h 5) 4)(setq qt (polar qt (+ (* 1.5 pi) a) (* (/ h (cos a) 4)(setq qt (polar qt 0 (* (/ h 6) 4)上述程序段是实现画蜗杆齿的命令,它是通过一个repeat(循环)命令来实现的。q23点是蜗杆齿的起始点,qt点是循环蜗

16、杆齿的第一点。Repeat命令之后command命令后定义了画一个齿的循环点。由于第一行的多义线命令没有结束所以在repeat之后的command命令将继续执行多义线pline命令。repeat命令执行一次画一个齿,共循环三次,画完图形。如图5蜗杆齿图:图5 蜗杆齿 为了给蜗杆齿进行填充,所以要用多义线命令把上述图形封闭,如图6蜗杆齿的封闭: 图6 蜗杆齿的封闭封闭图形时应完全封闭,如果不完全封闭,将不能执行填充命令。 5(setq p_in (list (+ (car q23) 2.0) (- (cadr q23) 1.0)(command -bhatch p ansi31 1.0 p_in

17、 ) 上述程序段是实现蜗杆齿的填充。p_in点是封闭图形中的一点,它是蜗杆齿的起始点横坐标向右移动2,纵坐标向下移动1。“bhatch”即是填充命令,”p”为预定义,ansi31为填充线的类型,1.0为比例。 “bhatch”前加”-“号,是因为在在AUTOLISP程序中用command命令调用填充命令时,出现的是对话框,诸如此类都需要加”-“号,如:layer命令。填充后的图形如图7蜗杆齿的填充: 图7 蜗杆齿的填充 6(setq qq3 (list (car q3) (- (cadr q3) da1)(setq qq17 (list (+ (car q17) 20.0) (cadr q17

18、)(command dimlinear q3 qq3 qq17 )上述程序段上实现标注尺寸的命令。它标注了齿顶圆的尺寸,在如下图标注为48的尺寸。Dimlinear是线性标注命令,执行它时首先要指定第一条尺寸界线的原点(q3点),第二条尺寸界线的原点(qq3点),尺寸线位置的点(qq17),执行完尺寸标注指令之后的图型,如图8尺寸标注: 图8 尺寸标注第四步:具体的绘图环境。在AUTOCAD中画图时需要具体的绘图环境,在编写LISP程序时也需要具体的绘图环境。比如图界命令Limit,用于设置图纸的边界,一般为420* 297 。缩放命令zoom,输入zoom之后再选all,将按照由Limit命

19、令定义的图形界限显示图形对象,可以看到整个图形及所处位置的全貌。目标捕捉命令Osnap,捕捉命令Snap,以及正交命令ortho,在编程之前都应处于关闭状态。图层命令”Layer”在编程中实现每一层实现什么,如尺寸标注,抛面线,虚线,图形等分别在哪一层绘出。其部分程序句如下:(command filedia 0 ) ;关闭对话框(command limits 0,0 420,297 ) ;用于图形边界,界限为420*297(command -osnap off) ;关闭目标捕捉(command -layer m 1 c 2 1 l continuous 1 ) ;设置第一层且类型为直线,且颜色

20、为黄色4.软件的使用(1) 加载 在编完程序之后,要运行该程序之前,首先需按如下方式加载程序:在AUTOCAD界面上发出命令工具|AutoLISP|加载。(2)使用方式 程序中使用了AutoCAD命令形式:defun c:( ) 的形式,在Command命令下,输入程序名,就出现图9所示的基本参数设置的对话框,在对话框中输入具体的参数。 图9 基本参数设置的对话框(2) 运行结果:在对话框中依次输入了:4,40,4,80 之后出现了如图10所示的蜗杆全图。 图10 蜗杆全图5.结论经过十周的毕业设计阶段,完成了本次设计。程序中包含了对话框的设计,对话框驱动程序的设计,绘图程序的设计等等。基本达到本次设计的目的:输入参数,自动绘出蜗杆图。但其中还有一些缺点和不足:在程序中,蜗杆的起始点被设置为固定值,不能根据需要自由放置图形,这是其中的不足之处。 参考文献:(1) AUTOLISP 实用教程 梁雪春,崔洪斌,吴义忠,曹康 北京:人民邮电出版社 1998年(2) AUTOCAD 2004与AUTOLISP二次开发技术 赵景亮 李志刚 清华大学出版社 2004年(3) 用Visual Lisp开发 AutoCAD2000应用程序 人民邮电工作室 郭剑峰 陈杉 王宁 2000年(4) 新编 AUTOCAD12.0 用户实用指南 科学出版社 郭淑芬 主编 王延荣 于乃江 编著1995年

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号