毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc

上传人:laozhun 文档编号:2926232 上传时间:2023-03-03 格式:DOC 页数:41 大小:585.50KB
返回 下载 相关 举报
毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc_第1页
第1页 / 共41页
毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc_第2页
第2页 / 共41页
毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc_第3页
第3页 / 共41页
毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc_第4页
第4页 / 共41页
毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AUTOCAD的液压系统辅助设计工具的开发.doc(41页珍藏版)》请在三一办公上搜索。

1、基于AUTOCAD的液压系统辅助设计工具的开发摘 要本设计参考机械设计手册,通过对AutoCAD进行二次开发实现了液压系统设计辅助系统的开发和应用。程序的主体部分采用LISP语言编写,人机交互界面用DCL编写,程序与外界的接口主要采用AutoCAD ActiveX软件技术。利用DCL开发的用户界面,具有Windows风格,操作简单,易于推广。用户在输入液压缸的主要技术参数后,可迅速得到其他相关数据,省略了计算过程,节省了设计时间。设计通过实例阐述了AutoCAD对话框设计的起因,详细介绍了对话框设计的方法与技巧.并用设计的对话框实例说明。这种新颖直观的对话框大大简化AutoCAD二次开发程序中

2、的用户操作,优化专业设计环境,提高软件的使用效率。关键词:AutoLISP 液压系统 设计 二次开发ABSTRACTIn this thesis, development and application of hydraulic system design is realized with the second-development of AutoCAD. The main body of the program is written with AutoLISP, and the interface between person and computer is written with DC

3、L, furthermore the software technology of AutoCAD ActiveX is used in the joint between program and outer environment adopts. Its UI (User Interface) made by DCL (Dialog Control Language) has the style of Windows and is very friendly. It can make the design easy and suitable for popularization. Just

4、input some basic parameters of the hydraulic cylinder, and the others parameters will be provided. Software can shorten the design period and improve design at the same time. Through an example the structure and composition of the dialog control box (DCB) in AutoCAD have been illuminated .The method

5、 and the skill of programming on DCL has been introduced in detail. The experimental examples shows that this work may greatly simplify users operation with computer. Key Words: AutoLISP Hydraulic System Design Second-development 目 录摘 要1ABSTRACT1第一章 CAD技术在机械领域的研究意义1第二章 CAD技术在国内外的研究现状及发展趋势2第三章 课题的研究内

6、容、方法与手段4第四章 液压系统设计统辅助系统的开发54.1系统程序编写的目的54.2负载与运动分析的程序开发54.3液压元、辅件选择的程序开发174.4液压系统主要性能运算的程序开发18第五章 菜单的编辑265.1AutoCAD的菜单文件类型265.2菜单文件的结构及格式265.3用户界面开发的一般方法28结论31第六章 液压系统设计统辅助系统的应用326.1运动分析、负载分析、负载计算326.2拟定液压系统图356.3液压元件的选择376.4液压系统的性能验39参考文献42致谢43第一章 CAD技术在机械领域的研究意义液压系统原理图的设计与绘制是整个液压系统设计流程中相当重要的一个环节。其

7、设计、绘制速度与质量对于整个系统乃至主机的设计周期长短、技术经济性能优劣有着举足轻重之作用。AumCAD是一种具有高度开放结构和提供多种开发工具的CAD软件开发平台,它提供给编程者一个强有力的二次开发环境”。CAD软件二次开发彻底改变了传统设计方法,能提高产品的设计质量,对于实现设计的科学性和创造性有积极的意义。面向二十一世纪,企业要生存和发展,就必须有效地掌握先进的生产力,树立强烈的市场、 成本和效益意识。开发和设计产品,也必须满足用户对品种、批量、时间和质量等诸方面的 要求。所以,根据工艺用途、制造成本、机器性能等技术经济指标,能够灵活修改设计方案 ,适时分析结构性能,准确评价整机或关键部

8、分的功能和性态,优化结构参数,为制造提供 高质量、高水平的成套技术资料,是现阶段机械制造行业孜孜追求的目标,是促进CAD技术 蓬勃发展的动力源泉。今天,是否掌握CAD应用技术已经成为衡量一个企业能否迈入信息时 代的重要标志。CAD已经被公认为是提高企业参与竞争能力的有效技术和方法之一。融合专家系统(ES)的CAD技术,依赖专家的知识和经验、以人类专家的水平解决本领域中 的技术设计问题,使设计过程智能化,无疑是对设计方法的一次革命。尽管把专家系统引入 机械设计也只有短短十几年的历史,但是由于机械设计专家系统(MDES)可为现代化的机械 设计提供详实、可靠、规范、高效的设计依据,所以已经激发了大批

9、企业的应用热情。基于专家系统、面向微机的液压机本体CAD系统,可望把我国液压机本体设计技术从落后的 图板作业水平提高到现代设计的先进水平。开发这项先进的技术,对于改善我国液压机设计 与制造业的落后局面,促进民族工业的进步,实现液压机产品的优化设计,缩短设计和开发 周期,提高质量,增强企业在国际市场上的竞争能力,使我国液压机制造业逐步实现CAD/CA M一体化,具有极其重要的意义。第二章 CAD技术在国内外的研究现状及发展趋势AutoCAD是目前在Windows环境下应用最广泛,使用人数最多的CAD软件。但AutoCAD所提供给的只是一般的通用的CAD功能,如造型、绘图、编辑、注释等,要想完成一

10、个设计项目,尤其当项目中不同规格的同一零件(通常指标准件)数量庞大时,单纯CAD中的通用功能就显捉襟见肘了。 因此,对AutoCAD的二次开发十分必要。第一次浪潮源于AutoCAD进入中国。1990年。那时AutoCAD还是2.6版。这次浪潮促进了很多高校、科研院所和大型企业开始围绕AutoCAD进行二次开发。第二次浪潮源于科技部在“九五”期间推进“甩图板工程”。这期间,CAXA(当时叫北航海尔)、高华(现在的英泰)、凯思、开目、大天、凯图、大凯、CCAD(深圳乔纳森)等一批国内自主版权CAD在政府和市场的双重推动下成长起来。那时,对国产CAD软件最大的挑战是与AutoCAD盗版这种几乎不要钱

11、的软件竞争;另外,与AutoCAD的兼容性,企业的工程师使用AutoCAD的习惯也是很大挑战,并且这些自主版权软件的开放性方面也存在不足。当时,CAXA推出了400多元一套的二维CAD软件,彻底改变了市场格局,后来又推出了三维CAD软件,而CAXA的CAM也是一大特色。其它CAD软件公司则逐渐将重点转向了CAPP/PDM等产品,并开始代理国外CAD/PLM巨头的高端软件产品。而1998年,Autodesk收购Genuis,自己推出机械版和电气版,使得国内基于AutoCAD进行二次开发的CAD软件的生存空间减小了很多。值得赞赏的是,2001年,新洲协同软件公司研发、推出了自主品牌的三维CAD软件

12、Solid2000(Solid3000的前身)。由于微机加视窗9598NT操作系统与工作站加Unix操作系统在以太网的环境下构成了CAD系统的主流工作平台,因此现在的CAD技术和系统都具有良好的开放性。图形接口、图形功能日趋标准化。在CAD系统中,综合应用正文、图形、图像、语音等多媒体技术和人工智能、专家系统等技术大大提高了自动化设计的程度,出现了智能CAD新学科。智能CAD把工程数据库及其管理系统、知识库及其专家系统、拟人化用户接口管理系统集于一体。CAD技术一直处于不断的发展与探索之中,正是这种此消彼长的互动与交替,造就了今天CAD技术的兴旺与繁荣,促进了工业的高速发展。AutoCAD应该

13、是机械工程师最为熟悉的工程软件了,而且在工程师眼中AutoCAD几乎成了CAD软件的代名词了,一提到CAD三个字母,首先会想到的是AutoCAD。AutoCAD发展到现在已经是一个比较通用的适合各个行业进行设计工作的平台了,这是毋庸置疑的,在这里只谈AutoCAD的二维功能,可能有好多人都不知道AutoCAD还能够进行三维建模,不过比起其三维平台Inventor的建模功底AutoCAD的这点小伎俩可以忽略了。尽管AutoCAD已经提供足够强大的各种功能,但是为了提高效率、也为了满足各个企业不同产品生产、设计的需求,可能会对AutoCAD做一些可以满足自己需求功能的二次开发,以提高自己的设计效率

14、,例如建立自己公司产品的模型数据库,对模型实现可参数化设计,一些快捷功能的开发等等。AutoCAD 不是一个密闭的软件,它给设计者预留了一扇通向AutoCAD内部系统的大门API。对于AutoCAD进行二次开发可以使用的语言工具有内部集成的AutoLisp、VBA、外围过象VB、C、及最新的.NET平台通过COM对AutoCAD 进行二次开发。随着AutoCAD软件在各行各业的应用日趋广泛,其二次开发的应用研究也逐渐深入,不在局限于上述的领域的参数化设计。像利用AUTOLISP二次开发语言对分形几何图形进行设计研究,用AUTOLISP开发出注塑模浇注系统,用AutoCAD二次开发技术实现了技术

15、要求自动标注系统,用VBA开发出了AutoCAD标注图纸图栏系统等,等各种技术,从而为AutoCAD二次开发的技术应用开辟了一条新路径。第三章 课题的研究内容、方法与手段以Windows作为工作平台,以AutaCAD为基础绘图软件,通过对其二次开发,实现液压系统原理图的计算机辅助设计与绘制功能。基本功能和要求如下:(1)建立的液压气动图形符号库,提高绘图质量和绘图效率;(2) 建立主要液压厂家的阀型号数据库;(3)构建液压系统辅助绘图功能,包括标题栏的辅助绘制;(4)实现油箱、管路等计算机辅助计算。第四章 液压系统设计统辅助系统的开发4.1系统程序编写的目的液压传动是以液体为工作介质来传递动力

16、(能量)的,它又分为液压传动和液力传动两种形式。液压传动中心户要是以液体压力能来进行传递动力的,液力传动主要是以液体动能来传递动力。液压系统是利用液压泵将原动机的机械能转换为液体的压力能,经各种控制阀、管路和液压执行元件将液体的压力能转换成为机械能,来驱动工作机构,实现直线往复运动和会回转运动。油箱液压泵溢流阀、节流阀、换向阀、液压缸及连接这些元件的油管、接头等组成了驱动机床工作台的液压系统。以往进行液压系统的设计计算后,也就是将参数设定后,再利用绘图软件绘制出来。现在,我们利用AutoCAD这样一个软件就可以完成这一切工作,这样具有较强的关联性和及时性,通过二次开发出的一种友好的界面就可以马

17、上反馈给用户设计数据是否合理。可以的这就减少了设计人员的设计、检查时间,提高设计效率,有更多的精力投入到设计中去。系统功能的实现:液压系统设计计算分为以下几个部分:1负载与运动分析、负载图和速度图的绘制2液压缸主要参数的确定3系统液压图的拟定4液压元件的选择(1) 液压泵的选择(2) 阀类元件及辅助元件/油管元件(3) 油箱的容积计算5液压系统性能的运算(1)压力损失和调定压力的确定:沿程压力损失、局部压力损失(2) 油液温升与系统发热的计算4.2负载与运动分析的程序开发4.2.1计算工作负载的程序开发1.用DCL编写用户对话框界面(1) 对话框的特点对话框形象、直观,可以随意输入、随时修改,

18、鼠标、键盘并用,是一种深受用户欢迎的界面。对话框用DCL语言(Dialog Control Language)定义,得到DCL类型的文件,用AutoLISP或C程序驱动。 AutoCAD提供了两个重要的DCL文件: ACAD.DCL存放AutoCAD系统定义的对话框, BASE.DCL为用户提供了一些常用的对话框标准控件。(2) 对话框的组成 对话框由若干控件组成,控件可以是按钮、切换开关、编辑框、列表或图像等。2.DCL中典型模块的编写(1)整体垂直分布:boxed_columnlabel=切削阻力的计算; 如图4.1(2)按钮:button key=button; label=计算; wi

19、dth=15; height=1; fixed_height=true; fixed_width=true; alignment=centered; 图4.1 (3)编辑框:edit_box label=孔径D(mm):; key=D; width=15; fixed_width=true; :edit_box label=每转进给量S(mm/r):; key=S; width=15; fixed_width=true; :edit_box label=铸件硬度HBS:; key=HBS; width=15; fixed_width=true; :boxed_row label=计算结果; :

20、edit_box label=Fe(N):; key=Fe; width=15; fixed_width=true; :button key=button; label=计算; width=15; height=1; fixed_height=true; 3.编写LISP程序LISP程序在一次开发各环节中是唯具有驱动能力的,它用来开启用户对话框,响应用户动作,直全完成开发任务程序。程序由一个主程序和七个子程序组成,其主程序的流程如图4.2图4.24.LISP中典型模块的编写(1)主程序(defun c:Fe(/ D S HBS F id sdt) (setq D 1) (setq S 1) (

21、setq HBS 1) (setq F 1) (setq id (load_dialog C:/Documents and Settings/Administrator/桌面/毕设/lisp/dcl文件/Fe.dcl.DCL) (if ( id 0) (exit) (if (not (new_dialog F id) (exit) (action_tile button (getdata)(jisuan) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog -1) (setq sdt (start_dialo

22、g) (unload_dialog id) (princ) )(2)获取数值子程序 (defun getdata() (setq D (atof(get_tile D) (setq S (atof(get_tile S) (setq HBS (atof(get_tile HBS) ) (3)计算子程序与显示计算结果(defun jisuan() (setq F (* (* (* (expt HBS 0.6) (expt S 0.8) D) 25.5) (set_tile Fe (rtos F 2 2)5.程序的运行加载程序,在AutoCAD命令栏中输入dia32,点击“运算”与“保存结果”,无

23、误。如图4.3 “运行结果”: 图4.34.2.2计算摩擦负载的程序开发Ff:dialog图4.4label=摩擦阻力的计算; spacer; :column :edit_box label=摩擦因数:; key=; width=15; fixed_width=true; :edit_box label=运动部件的重力G(N):; key=G; width=15; fixed_width=true; 图4.5:boxed_row label=计算结果; :edit_box label=Ff(N):; key=Ff; width=15; fixed_width=true; :button key

24、=button; label=计算; width=15; height=1; fixed_height=true; fixed_width=true; alignment=centered; ok_cancel; 如图4.4(defun c:Ff(/ F G id sdt) (setq F 1) (setq 1) (setq G 1) (setq id (load_dialog C:/Documents and Settings/Administrator/桌面/毕设/lisp/dcl文件/摩擦阻力Ff.DCL) (if ( id 0) (exit) (if (not (new_dialog

25、Ff id) (exit) (action_tile button (getdata)(jisuan) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog -1) (setq sdt (start_dialog) (unload_dialog id) (princ) )(defun getdata() (setq (atof(get_tile ) (setq G (atof(get_tile G) )(defun jisuan() (setq F (* G) (set_tile Ff (rtos F 2 2)

26、 )如图4.54.2.3计算惯性负载的程序开发 F:dialog图4.6label=惯性负载的计算; spacer; :column :edit_box label=运动部件所受重力G(N):; key=G; width=15; fixed_width=true; :edit_box label=快进、快退的速度v(m/s):; key=v; width=15; fixed_width=true; :edit_box label=加速、减速时间t(s); key=t; width=15; fixed_width=true; :boxed_row label=计算结果; :edit_box la

27、bel=Fi(N):; 图4.7 key=Fi; width=15; fixed_width=true; :button key=button; label=计算; width=15; height=1; fixed_height=true; fixed_width=true; alignment=centered; ok_cancel; 如图4.6(defun c:Fi(/ F G v t id sdt) (setq G 1) (setq v 1) (setq t 1) (setq F 1) (setq id (load_dialog C:/Documents and Settings/Ad

28、ministrator/桌面/毕设/lisp/dcl文件/Fi.DCL) (if ( id 0) (exit) (if (not (new_dialog F id) (exit) (action_tile button (getdata)(jisuan) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog -1) (setq sdt (start_dialog) (unload_dialog id) (princ) )(defun getdata() (setq G (atof(get_tile G) (se

29、tq v (atof(get_tile v) (setq t (atof(get_tile t) )(defun jisuan() (setq F (* (/ v t) (/ G 9.8) (set_tile Fi (rtos F 2 2) )如图4.74.3液压元、辅件选择的程序开发P:dialog图4.8label=电动机的功率计算; spacer; :column :edit_box label=最高工作压力pp(MPa):; key=pp; width=15; fixed_width=true; :edit_box label=总流量qp(L/min):; key=qp; width=

30、15; fixed_width=true; :edit_box label=总效率p:; key=p; width=15; fixed_width=true; :boxed_row label=计算结果; :edit_box 图4.9label=P(kw):; key=P; width=15; fixed_width=true; :button key=button; label=计算; width=15; height=1; fixed_height=true; fixed_width=true; alignment=centered; ok_cancel; 如图4.8(defun c:P(

31、/ p pp qp p id sdt) (setq p 1) (setq pp 1) (setq qp 1) (setq p 1) (setq id (load_dialog C:/Documents and Settings/Administrator/桌面/毕设/lisp/dcl文件/电动机的功率P.DCL) (if ( id 0) (exit) (if (not (new_dialog P id) (exit) (action_tile button (getdata)(jisuan) (action_tile accept (done_dialog 1) (action_tile ca

32、ncel (done_dialog -1) (setq sdt (start_dialog) (unload_dialog id) (princ) )(defun getdata() (setq pp (atof(get_tile pp) (setq qp (atof(get_tile qp) (setq p (atof(get_tile p) )(defun jisuan() (setq p (/ (/ (* pp qp) p) 60) (set_tile P (rtos p 2 2) )如图4.94.4液压系统主要性能运算的程序开发4.4.1系统压力损失计算的程序开发 P:dialog图4

33、.10label=沿程压力损失的计算; spacer; :column :edit_box label=油液密度(kg/m):; key=; width=15; fixed_width=true; :edit_box label=油液粘度:; key=; width=15; fixed_width=true; :edit_box label=管道内径d(m):; key=d; width=15; fixed_width=true; :edit_box label=进、回油管长度l(m):; key=l; width=15; fixed_width=true; 图4.11:edit_box la

34、bel=最大回油量q(L/min):; key=q; width=15; fixed_width=true; :boxed_row label=计算结果; :edit_box label=pl1(Pa):; key=pl1; width=15; fixed_width=true; :button key=button; label=计算; width=15; height=1; fixed_height=true; fixed_width=true; alignment=centered; ok_cancel;如图4.10(defun c:pl1(/ p d l q id sdt) (setq

35、 p 1) (setq 1) (setq 1) (setq d 1) (setq l 1) (setq q 1) (setq id (load_dialog C:/Documents and Settings/Administrator/桌面/毕设/lisp/dcl文件/沿程压力损失pl1.DCL) (if ( id 0) (exit) (if (not (new_dialog P id) (exit) (action_tile button (getdata)(jisuan) (action_tile accept (done_dialog 1) (action_tile cancel (d

36、one_dialog -1) (setq sdt (start_dialog) (unload_dialog id) (princ) )(defun getdata() (setq (atof(get_tile ) (setq (atof(get_tile ) (setq d (atof(get_tile d) (setq l (atof(get_tile l) (setq q (atof(get_tile q) )(defun jisuan() (setq p (/ (* l q 0.000796) (expt d 4) (set_tile pl1 (rtos p 2 2) )如图4.11R

37、:dialoglabel=雷诺数的计算; spacer; :column 图4.12:edit_box label=油液粘度:; key=; width=15; fixed_width=true; :edit_box label=管道内径d(m):; key=d; width=15; fixed_width=true; :edit_box label=流量q(L/min):; key=q; 图4.13width=15; fixed_width=true; :boxed_row label=计算结果; :edit_box label=Re:; key=Re; width=15; fixed_wi

38、dth=true; :button key=button; label=计算; width=15; height=1; fixed_height=true; fixed_width=true; alignment=centered; ok_cancel;如图4.12(defun c:Re(/ r d q id sdt) (setq 1) (setq d 1) (setq q 1) (setq r 1) (setq id (load_dialog C:/Documents and Settings/Administrator/桌面/毕设/lisp/dcl文件/Re.dcl.dcl) (if (

39、id 0) (exit) (if (not (new_dialog R id) (exit) (action_tile button (getdata)(jisuan) (action_tile accept (done_dialog 1) (action_tile cancel (done_dialog -1) (setq sdt (start_dialog) (unload_dialog id) (princ) )(defun getdata() (setq (atof(get_tile ) (setq d (atof(get_tile d) (setq q (atof(get_tile

40、q) )(defun jisuan() (setq r (/ (* 0.004 q) (* d 188.4) (set_tile Re (rtos r 2 2) )如图4.13 Pv:dialoglabel=局部压力损失的计算; spacer; :column :edit_box label=当前流量q(L/min):; key=q; width=15; fixed_width=true; :edit_box label=元件的额定流量qn(L/min):; key=qn; width=15; fixed_width=true; :edit_box label=元件的额定压力损失pn(Pa):; key=pn; 图4.14width=15; fixed_width=true; :boxed_row label=计算结果; :edit_box label=pv(Pa):; key=pv; width=15; fixed_width=true; :button 图4.15 key=button; label=计算; width

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号