Autolisp 二次开发齿轮参数化程序设计.doc
《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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Autolisp 二次开发齿轮参数化程序设计 二次开发 齿轮 参数 程序设计
链接地址:https://www.31ppt.com/p-2925301.html