欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2925301       资源大小:1.75MB        全文页数:6页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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 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.引言:在实际工程设计中,有60%-80%的图形是通过修改已有的设计而形成新设计的,而且多数是通过修改设计参数(参数优化)来完成的,可以在较短的时间里快速、高质量的完成多方案对比设计,可以针对不同的应用领域用AutoLISP语言编程,建立各种零部件的图形库,给出一些必要的参数即可绘出来,所以,参数化绘图程序具有广阔的领域。2.设计绘图思想 第一步:确定关键的参数。程序设计中首先要输入关键的参数。这是编程的前提条件。根据蜗杆的尺寸计算公式可以得到它有四个参数:m(轴向模数);d1(蜗杆的分度圆直径);z1(蜗杆线数);z2(蜗轮的齿数)。利用对话框的形式(也可以利用GET类的交互式的命令输入这四个关键的参数)。然后再用这四个基本的参数计算出其他如:齿顶高(ha=m);齿根高(hf=1.2m); 齿顶圆直径(da1=d1+2m);齿根圆直径(df1=d1-2.4m);轴向齿距(px=pi*m)等等。利用表的格式用赋值函数“setq”把后面的计算式赋值给前面的字母。第二步:计算各个具体的点。确定好关键的参数之后,标好图形中的每一个点,要根据这些参数计算图形之中的所有的点,为编写下面的绘图做好准备。计算完各个点同样利用表的格式用赋值函数“setq”对各点进行赋值。赋值点要指定画图时的第一点(也可以说是起始点),可以用交互式命令“getpoint”输入,也可以程序中自行指定,如:(setq p1 (500 500))。第三步:编写具体的绘图过程。做完上面的步骤之后,就该完成具体的绘图过程了。AUTOLISP能够提供一个系统内部函数“Command”,利用“Command”函数可以非常方便地调用几乎全部的AUTOCAD命令。具体的编写过程就是利用COMMAND命令向AUTOCAD命令行直接发送一个AUTOCAD命令并能接受响应。用Pline,Line,Circle等命令,实现画多义线,直线,圆。用,Mirror,Trim等命令实现镜像和修剪等功能。第四步:具体的绘图环境。在AUTOCAD中画图时需要具体的绘图环境,在编写LISP程序时也需要具体的绘图环境。比如图界命令Limit,用于设置图纸的边界,一般为420* 297 。缩放命令zoom,输入zoom之后再选all,将按照由Limit命令定义的图形界限显示图形对象,可以看到整个图形及所处位置的全貌。目标捕捉命令Osnap,捕捉命令Snap,以及正交命令ortho,在编程之前都应处于关闭状态。图层命令”Layer”在编程中实现每一层实现什么,如尺寸标注,抛面线,虚线,图形等分别在哪一层绘出。另外还有显示栅格命令grid等。3.程序实现31对话框设计:(1) 对话框设计对话框的设计要用DCL文件来描述。对话框中的元素,例如按钮和编辑框,都被认为是控件。每个控件的大小和功能都由控件的属性来完成。在创建对话框时,必须创建一个新的应用指定的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 输入对话框名称此时,按“确定”按钮并回车,即出现DCL对话框,如图2中基本参数的设置的对话框: 图 2 基本参数的设置对话框(2)对话框的驱动程序设计用DCL语言定义好的对话框只是一个界面描述,它不能独立的显示,也不能完成任何用户想要执行的动作,只有以PDB函数为基础用AUTOLISP程序来驱动它,才能实现指定的功能。现将关键程序叙述如下: I在动作回调中处理用户输入,用get_tile 函数检索一个对话框的DCL值,也就是用户在对话框中输入值后,用此函数完成对话框值的调用,传到程序中以便后面程序的运算。其主要程序句如下: (setq m (atof (get_tile "m") 在程序当中的 (setq m (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)语句检查是否把对话框加载上了;(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 $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(蜗轮的齿数)。然后再用这四个基本的参数计算出其他如:齿顶高(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点逆时针的角度为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函数中调用的参数类型、个数与顺序和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 点是分别为指定镜像点的第一点和第二点。如图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点是循环蜗杆齿的第一点。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 "") 上述程序段是实现蜗杆齿的填充。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)(command "dimlinear" q3 qq3 qq17 )上述程序段上实现标注尺寸的命令。它标注了齿顶圆的尺寸,在如下图标注为48的尺寸。Dimlinear是线性标注命令,执行它时首先要指定第一条尺寸界线的原点(q3点),第二条尺寸界线的原点(qq3点),尺寸线位置的点(qq17),执行完尺寸标注指令之后的图型,如图8尺寸标注: 图8 尺寸标注第四步:具体的绘图环境。在AUTOCAD中画图时需要具体的绘图环境,在编写LISP程序时也需要具体的绘图环境。比如图界命令Limit,用于设置图纸的边界,一般为420* 297 。缩放命令zoom,输入zoom之后再选all,将按照由Limit命令定义的图形界限显示图形对象,可以看到整个图形及所处位置的全貌。目标捕捉命令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 "") ;设置第一层且类型为直线,且颜色为黄色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年

    注意事项

    本文(Autolisp 二次开发齿轮参数化程序设计.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开