【毕业论文设计】基于proe的齿轮模型库二次开发_第1页
【毕业论文设计】基于proe的齿轮模型库二次开发_第2页
【毕业论文设计】基于proe的齿轮模型库二次开发_第3页
【毕业论文设计】基于proe的齿轮模型库二次开发_第4页
【毕业论文设计】基于proe的齿轮模型库二次开发_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长江大学毕业设计(论文)题目基于PRO/E的齿轮模型库二次开发专业机电一体化工程姓名王慧杰指导教师田东亮院系站点沙市职业大学长江大学继续教育学院2010年5月2日目录1引言111CAD/CAM的发展现状112课题的提出及意义213预期功能314本论文内容32二次开发总体方案的确定421二次开发语言PRO/TOOLKIT422开发工具的确定423开发环境6231硬件开发环境6232软件开发环境624工作模式的确定725总体设计框架73齿轮的参数化设计931齿轮简介932齿轮的参数化建模94菜单与对话框的开发设计1641菜单的设计16411编写菜单信息资源文件17412编写菜单操作源程序18413注册运行2442对话框的设计25421编写对话框资源文件26422编写对话框操作源程序2743程序验证285本设计任务所完成的零件清单30结论35致谢36参考文献37附录鉴定意见表38基于PRO/E的齿轮模型库二次开发摘要本课题针对多种类型齿轮,提出基于PRO/E平台进行二次开发的一种可行方案。并且成功开发设计出能满足用户要求的齿轮模型库。本文首先简单介绍了与本课题相关的PRO/E二次开发功能,包括自定义菜单的生成、对话框的制作、PRO/TOOLKIT应用程序的执行。其次根据本课题的要求,分析了齿轮二次开发的整体设计思路。然后以直齿圆柱齿轮为例,较详细地说明了利用PRO/TOOLKIT及VISUALC60在PRO/E二次开发中的应用,并给出了测试实例。最后对开发的三维建模程序进行测试。结果表明开发程序正确无误,建模迅速,大大提高了这类通用件在PRO/E平台上的设计效率。关键词PRO/E、二次开发、齿轮模型库、PRO/TOOLKIT、VISUALC60THESECONDARYDEVELOPMENTOFGEARPARTSLIBRARYBASEDONPRO/EABSTRACTTHISARTICLEINTRODUCESAFEASIBLEMETHODOFSECONDARYDEVELOPMENTBASEDONPRO/EAGAINSTSOMEKINDSOFGEARSANDTHEGEARPARTSLIBRARYISSUCCESSFULLYDESIGNEDMEETTOTHEUSERREQUIREMENTSFIRSTLY,THISARTICLESIMPLYINTRODUCESTHESECONDARYDEVELOPMENTFUNCTIONSOFPRO/EREFERRINGTOTHISTASKWHICHINCLUDESTHECREATIONOFMENU,THECREATIONOFTHEDIALOGUE,THEPRO/TOOLKITPROCEDUREEXECUTIONTHENTHEPRECEPTTOTHEOVERALLDESIGNWAYOFGEARSECONDARYDEVELOPMENTISANALYZEDWITHANEXAMPLEOFAROUNDCROSSSECTIONHELICALCOMPRESSIONGEARINDETAIL,ITPARTICULARLYDESCRIBESTHEAPPLICATIONOFPRO/TOOLKITANDVISUALC60INTHESECONDARYDEVELOPMENTBASEONPRO/E,ANDTESTEXAMPLESATLAST,THETESTOFALLPROCESSOFTHREEDIMENSIONPARTMODELDRIVENBYDATABASEISPERFORMEDINDICATESTHATTHEPROGRAMISRIGHT,ANDTHEMOLDCANBESETUPQUICKLYTHEEFFICIENCYFORTHEDESIGNOFINTERCHANGEABLEPARTBASEDONPRO/ECANBEINCREASEDKEYWORDSPRO/E、SECONDARYDEVELOPMENT、GEARPARTSLIBRARY、PRO/TOOLKIT、VISUALC601引言11CAD/CAM的发展现状CAD/CAM技术作为电子信息技术的重要组成部分,其应用已遍及各个工程领域,是工程设计、产品制造业界的一场革命。经过四十多年的发展,CAD/CAM技术有了长足的进步。以前CAD/CAM技术大都是在工作站平台上运行和开发,随着计算机水平的大幅提高,目前CAD/CAM软件均可以在微机上运行。微机平台为普及CAD的应用创造了绝好的条件。在此基础上,CAD/CAM软件厂商展开了新一轮的竞争。目前CAD/CAM软件动态如下UNIGRAPHICSUG1UG是UNIGRAPHICSSOLUTIONS公司的拳头产品。该公司首次突破传统CAD/CAM模式,为用户提供一个全面的产品建模系统。在UG中,优越的参数化和变量化技术与传统的实体、线框和表面功能结合在一起,这一结合被实践证明是强有力的,并被大多数CAD/CAM软件厂商所采用。SOLIDEDGE2SOLIDEDGE是真正WINDOWS软件。它不是将工作站软件生硬地搬到WINDOWS平台上,而是充分利用WINDOWS基于组件对象模型COM的先进技术重写代码。SOLIDEDGE与MICROSOFTOFFICE兼容,与WINDOWS的OLE技术兼容,这使得设计师们在使用CAD系统时,能够进行WINDOWS下字处理、电子报表、数据库操作等。SOLIDEDGE具有友好的用户界面,它采用一种称为SMARTRIBBON的界面技术,用户只要按下一个命令按钮,既可以在SMARTRIBBON上看到该命令的具体的内容和详细的步骤,同时在状态条上提示用户下一步该做什么。SOLIDEDGE是基于参数和特征实体造型的新一代机械设计CAD系统,它是为设计人员专门开发的,易于理解和操作的实体造型系统。AUTOCAD3AUTOCAD是AUTODESK公司的主导产品。AUTODESK公司是世界第四大PC软件公司。目前在CAD/CAE/CAM工业领域内,该公司是拥有全球用户量最多的软件供应商,也是全球规模最大的基于PC平台的CAD和动画及可视化软件企业。AUTODESK公司的软件产品已被广泛地应用于机械设计、建筑设计、影视制作、视频游戏开发以及WEB网的数据开发等重大领域。AUTOCAD是当今最流行的二维绘图软件,它在二维绘图领域拥有广泛的用户群。AUTOCAD有强大的二维功能,如绘图、编辑、剖面线和图案绘制、尺寸标注以及二次开发等功能,同时有部分三维功能。在许多实际应用领域如机械、建筑、电子中,一些软件开发商在AUTOCAD的基础上已开发出许多符合实际应用的软件。PRO/ENGINEER4PRO/ENGINEER系统是美国PARAMETRICTECHNOLOGYCORPORATION简称PTC的产品。PTC公司提出的单一数据库、参数化、基于特征、全相关的概念改变了机械CAD/CAE/CAM的传统观念,这种全新的概念已成为当今世界机械CAD/CAE/CAM领域的新标准。利用该概念开发出来的第三代机械CAD/CAE/CAM产品PRO/ENGINEER软件能将设计至生产全过程集成到一起,让所有的用户能够同时进行同一产品的设计制造工作,即实现所谓的并行工程。PRO/ENGINEER系统主要功能如下1真正的全相关性,任何地方的修改都会自动反映到所有相关地方;2具有真正管理并发进程、实现并行工程的能力;3具有强大的装配功能,能够始终保持设计者的设计意图;4容易使用,可以极大地提高设计效率。PRO/ENGINEER系统用户界面简洁,概念清晰,符合工程人员的设计思想与习惯。整个系统建立在统一的数据库上,具有完整而统一的模型。PRO/ENGINEER建立在工作站上,系统独立于硬件,便于移植。因此,本开发利用PRO/ENGINEER为平台对齿轮进行二次开发。12课题的提出及意义产品的三维设计离不开CAD/CAM系统的支持,具有技术成熟、功能强大的PRO/ENGINEER参数化造型系统在设计和制造业中引起了人们的重视,并得到了日益广泛的应用。PRO/ENGINEER提供了强大的三维几何造型功能,使我们能够创建出各种复杂的几何模型,作为通用的三维CAD/CAM系统在功能上基本能够满足产品三维设计要求,但有时这些功能并不能满足我们的需求。例如标准零件系列,它们的结构都是相同的,区别只在于尺寸,如果标准零件系列都通过三维建模的方式来实现,那么工作量将非常巨大。虽然PRO/ENGINEER自身也有一些模型库,但是这远远满足不了用户的要求。因此,也就有了本课题研究开发的必要。机械产品的开发过程中会用到大量的通用零件、标准件、相似件。如何建立这些常用零部件的库,利用已有的资源,花费较少的时间完成产品设计是用户非常关心的问题。建立这些通用件、标准件、相似件零件库作为一项可行方案,一方面可以避免不同设计者的重复劳动,提高设计效率,提高设计的标准化程度,减少错误发生率,缩短产品开发周期;另一方面还可以基于该软件的三维实体模型进行更深层次的分析(如有限元分析等),以确保机械设计结果安全可靠。综上,对某些特殊零件进行二次开发是非常有必要的。因此也就有了本课题的提出。13预期功能如今,虽然绘图软件很多,而且建模方法也越来越智能,易学易懂。但是有些模型,具有相似性和通用性,如标准件,常用件等。如果每用一次都要建一次模型,那么将会大大延长设计周期,如此繁琐而重复的步骤,将给设计者带来不必要的负重。本课题将通过参数化建模,解决这一问题。用户只需正确选择或输入零件相关参数,PRO/E便能自动生成用户所需的模型,这样大大缩短了开发设计的时间,提高了零件的结构设计效率。14本论文内容在本课题中,主要是基于PRO/E或UG为二次开发平台,实现高效快速的参数化齿轮建模。本人负责齿轮模块的二次开发设计。本文首先简单介绍了一些绘图软件特别是PRO/ENGINEER的现状,说明了研究本课题的必要性以及重要性;其次介绍了一些PRO/ENGINEER二次开发工具;接着确定本二次开发的总体方案;最后详细地介绍了对齿轮进行二次开发的全过程。本文的重点在于对齿轮进行二次开发的部分。对齿轮的设计将包含以下内容齿轮的参数化建模;1设计齿轮菜单及对话框其中包含实现对话框上各按钮的功2能的相应程序;检验设计是否能达到预期功能。32二次开发总体方案的确定21二次开发语言PRO/TOOLKITPRO/TOOLKIT是美国PARAMETRICTECHNOLOGYCORPORATIONPTC公司为PRO/ENGINEER软件提供的开发工具包,其主要目的是让用户或第三方通过C程序代码扩充PRO/ENGINEER系统的功能,开发基于PRO/ENGINEER系统的应用程序模块,不仅如此,还可以利用PRO/TOOLKIT提供的UI对话框、菜单以及VC的可视化界面技术,设计出方便实用的人机交互界面,从而大大提高系统的使用效率。PRO/TOOLKIT是PRO/ENGINEER的一个应用程序接口API,它的编程语言是C语言,可以对PRO/ENGINEER进行功能扩展,满足PTC客户的特定需求。而且,PRO/TOOLKIT提供了定制标准PRO/ENGINEER用户界面的能力,自动执行重复性的程序,通过PRO/ENGINEER集成的内部程序DLL或外部应用程序(EXE)可以为造型用户提供自定义的应用程序、设计规划和绘图自动化。PRO/TOOLKIT工具包提供了开发PRO/ENGINEER所需的函数库文件和头文件,使用户编写的应用程序能够安全地控制和访问PRO/ENGINEER,并可以实现应用程序模块与PRO/ENGINEER系统的无缝集成。PRO/TOOLKIT工具包是随PRO/ENGINEER安装盘一起提供的,安装时在“元件”列表框中选中“APITOOLKITS”复选框,并在“子元件”列表框中选中“PRO/TOOLKIT”复选框,这样将在PRO/ENGINEER系统的默认目录下自动创建两个下级目录PROTOOLKIT和PRODEVELOP。PRO/TOOLKIT采用面向对象的程序设计方法(OBJECT_ORIENTEDPROGRAMMING)。在PRO/ENGINEER和应用程序之间主要是通过特定的数据结构来传递信息,以应用程序来说这种数据结构并不是直接访问的,而只能通过PRO/TOOLKIT提供的函数来访问。22开发工具的确定PRO/ENGINEER软件本身自带了一些二次开发工具,如族表工具、用户定义特征(UDF)、PRO/PROGRAM、JLINK、PRO/TOOLKIT等。以下简单介绍上述几种二次开发工具族表(FAMILYTABLE)1通过族表可以方便地管理具有相同或相近结构的零件,特别适用于标准零件的管理。族表工具是通过建立一个通用零件作为父零件,然后在其基础上对各参数加以控制生成派生零件。整个族表是通过电子表格来实现的,因此可以称其为表格驱动。用户定义特征(UDF)2用户定义特征是将若干个系统特征整合为一个自定义特征,使用时作为一个整体出现。UDF适用特定产品的特定结构,有利于设计者根据产品特征快速生成几何模型。PRO/PROGRAM3PRO/ENGINEER软件对于每个模型都有一个主要设计步骤和参数列表PRO/PROGRAM,它是由类似BASIC的高级语言构成,用户可以根据设计需要来编辑该模型的PROGRAM,使其以一个程序来工作。通过运行该程序,系统通过人机交互的方法来控制系统参数、特征出现与否以及特征的具体尺寸等。JLINK4JLINK是PRO/ENGINEER中自带的基于JAVA语言的二次开发工具,是一种面向对象、独立于操作系统平台的开发工具。用户通过JAVA编程实现向PRO/ENGINEER软件添加功能。PRO/TOOLKIT5PRO/TOOLKIT同JLINK一样也是PRO/ENGINEER自带的二次开发工具。在PRO/TOOLKIT中,PTC向用户提供了大量的C语言函数库,函数采用面向对象的风格。通过调用这些底层函数,用户能方便而又安全地访问PRO/ENGINEER的数据库及内部应用程序,进行二次开发,扩展一些特定功能。上述各种二次开发工具集中在PRO/ENGINEER的“工具”菜单中,如图21所示。其中“辅助应用程序”主要用来调用PRO/TOOLKIT程序。图21开发工具由于PRO/TOOLKIT具有函数简单,应用方便等优点,本课题将使用PRO/TOOLKIT进行二次开发研究。23开发环境开发环境包括两部分即硬件开发环境和软件开发环境。231硬件开发环境本课题是基于PRO/ENGINEERWILDFIRE20的二次开发,因此只要能够安装支持PRO/EWILDFIRE20版本即可。建议配置如表21所示。表21计算机配置项目推荐配置CPU16GHZ以上(建议20GHZ)内存512MB以上(建议1G)显卡显存32MB以上,推荐使用GEFORCE4以上的显卡网卡必须安装网卡(或使用虚拟网卡)232软件开发环境操作平台WINDOWSXP/VISTA/WIN7;开发平台PRO/ENGINEERWILDFIRE20;开发语言VISUALC60。24工作模式的确定PRO/TOOLKIT应用程序有两种工作模式异步模式和同步模式。异步模式1无需启动PRO/ENGINEER,就能够单独运行PRO/TOOLKIT应用程序的方法叫异步模式。异步模式实现了两个程序的并行运行,可以只在程序需要调用PRO/ENGINEER功能时,才启动PRO/ENGINEER。但由于异步模式具有代码复杂、执行速度慢等缺点,因此一般不采用异步模式。同步模式2同步模式下,PRO/TOOLKIT应用程序必须与PRO/ENGINEER系统同步运行。同时,当PRO/TOOLKIT应用程序执行时,PRO/ENGINEER系统是处于停止状态的。同步模式又分为两种模式,即动态连接模式(DLL模式)和多进程模式(MULTIPROCESSMODE)。动态连接模式是将用户编写的C程序编译成一个DLL文件,这样PRO/TOOLKIT应用程序和PRO/ENGINEER运行在同一个进程中,它们之间的信息是直接通过函数调用实现的。多进程模式是将用户的C程序编译成一个可执行文件,PRO/TOOLKIT应用程序和PRO/ENGINEER运行在各自的进程中,它们之间的信息交换是由消息系统来的。由于本设计任务要求运行PRO/ENGINEER时,所设计零件能自动嵌入到PRO/ENGINEER菜单上,兼之动态连接模式DLL模式又较为简单,运行速度比较快,因此本设计开发将采用同步模式中的动态连接模式,即DLL模式。25总体设计框架本二次开发是基于PRO/ENGINEER的关于齿轮的参数化设计。设计的对象是齿轮。本任务将设计多种类型的齿轮,要求用户只需选择或输入相关参数,就能自动生成所需的齿轮零件。齿轮的类型非常多,这里将其分为两大类圆柱螺旋齿轮和非圆柱螺旋齿轮。圆柱螺旋齿轮又分为圆截面圆柱螺旋压缩齿轮、矩形截面圆柱螺旋压缩齿轮、圆柱螺旋拉伸齿轮、圆柱螺旋扭转齿轮等;非圆柱螺旋齿轮分为截锥螺旋齿轮、中凹形螺旋齿轮、中凸形螺旋齿轮、非圆形螺旋齿轮等各类。本开发的总体设计流程如图22所示,调用响应图如图23所示。建立开发目录设计菜单设计对话框打开VC60新建工程PRO/TOOLKIT编程与PRO/E连接调试通过图22总体设计流程图启动PRO/E自动加载菜单选择自定义菜单选择所需零件调用对话框输入设计参数生成实体模型退出程序图23程序调用响应图3齿轮的参数化设计31齿轮简介齿轮是应用最广的一种机械传动零件,具有结构紧凑、传递动力大、效率高、寿命长、可靠性好和传动比准确等特点。齿轮的精密锻压技术由于其显著优点;正日益受到各国研究人员的重视,得到了蓬勃发展。齿轮理论和制造工艺的发展将是进一步研究轮齿损伤的机理,这是建立可靠的强度计算方法的依据,是提高齿轮承载能力,延长齿轮寿命的理论基础;发展以圆弧齿廓为代表的新齿形;研究新型的齿轮材料和制造齿轮的新工艺;研究齿轮的弹性变形、制造和安装误差以及温度场的分布,进行轮齿修形,以改善齿轮运转的平稳性,并在满载时增大轮齿的接触面积,从而提高齿轮的承载能力。齿轮应用广泛,种类很多按齿廓曲线可分为渐开线齿轮、摆线齿轮、圆弧齿轮等。按外形可分为圆柱齿轮、锥齿轮、非圆齿轮、齿条、蜗杆蜗轮等;按轮齿所在的表面可分为外齿轮和内齿轮;按齿线形状可分为直齿轮、斜齿轮、人字齿轮、曲线齿轮等。按制造方法可分为铸造齿轮、切制齿轮、轧制齿轮、烧结齿轮等。现代工业生产系统中普遍使用齿轮装置。齿轮传动是机械传动的重要装置,具有质量小、体积小、传动比大和效率高等优点,己广泛地应用于汽车、船舶、机床、矿山冶金等领域,它几乎适用于一切功率和转速范围。目前齿轮传动技术已成为世界各国机械传动发展的重点之一。32齿轮的参数化建模直齿圆柱齿轮应用最为广泛,如车辆的驱动齿轮、机床主轴箱内的齿轮、机械表内部齿轮等都是这些齿轮。软齿面的齿轮承载能力较低,但制造比较容易,跑合性好,多用于传动尺寸和重量无严格限制,以及小量生产的一般机械中。因为配对的齿轮中,小轮负担较重,因此为使大小齿轮工作寿命大致相等,小轮齿面硬度一般要比大轮的高。下面以直齿圆柱齿轮为例,介绍说明齿轮的参数化建模过程。1、基于PRO/ENGINEER的标准渐开线直齿圆柱齿轮三维模型的建立(1)打开PRO/ENGINEER软件,新建一个零件,命名为“GEARPRT”,不使用缺省模板,选择“MMNS_PART_SOLID”,进入零件设计环境。(2)选取主菜单中的【工具】【参数】命令,弹出“参数”对话框,如图31所示,单击“”按钮,添加四个参数M、Z、ALFA、B,M表示齿轮模数,Z表示齿轮的齿数,ALFA表示齿轮的压力角,B则表示齿轮的宽度。并预先设置各参数的值。如M3,Z46,ALFA20,B15。单击“确定”按钮。如图31所示。图31参数设置图(3)选取【工具】【关系】命令,弹出“关系”对话框。输入如图32所示关系,点击确定;图32关系设置图(4)选取主菜单中的【插入】【模型基准】【曲线】【从方程】,弹出记事本对话框,在该对话框中输入如图33所示的笛卡尔坐标系下的渐开线方程,保存关闭,最后完成确定,生成所需的渐开线,如图34所示。图33生成渐开线图33渐开线方程图34渐开线图形由图34【提交】【完成】得到图35生成渐开线3(如图35所示)图35齿轮基本曲线和齿廓曲线图(5)第一个齿槽特征创建执行“EDIT/FEATUREOPERATIONS/COPY”命令,轴旋转360、(4ZS)角度生成渐开线1。将渐开线3绕坐标系Z执行“EDIT/FEATUREOPERATIONS/COPY”命令,将渐开线1以通过坐标原点和渐开线3与分度圆的交点的基准线为中心镜像生成渐开线2。执行“INSERT/EXTRUDE/CUT”命令,以渐开线1、2及齿根圆曲线为边界切出第一个齿槽(由于基圆内没有渐开线,所以基圆内的部分可以由一段圆弧代替)。(6)完成齿轮创建执行“EDIT/FEATUREOPERATIONS/COPY”命令将第一个齿槽绕Z轴旋360/ZS角度生成第二个齿槽。执行“EDIT/PATTERN”命令复制出其他齿槽,完成齿轮的创建(如图36所示)图36初始齿轮模型2、齿轮参数化设计程序的修改齿轮创建完成后,系统会产生一串PROGRAM,执行”TOOLS/PROGRAM/EDITEESIGN”命令,系统就会自动打开其PROGRAM文件,内容大致如下VERSIONREVNUM2323LISTINGFORPARTGEARINPUTENDINPUTRELATIONSDMSZSDBMSZSCOSALFADAMSZS2HADFMSZS2MSHACBKDENDRELATIONSADDFEATUREINITIALNUMBER1INTERNALFEATUREID1DATUMPLANENOELEMENTNAMEINFO1FEATURENAMEDEFINED2CONSTRAINTSDEFINED21CONSTRAINT1DEFINED211CONSTRTYEXAXIS3FLIPDATUMDIRDEFINED4FITDEFINED41FITTYEDEFAYKT1此时在”INPUT”和”ENDINPUT”之间输入基本参数语句和提示语句ZSNUMBER“PLEASEENTERTHENUM_TEETHOFTHEGEAR”MSNUMBER“PLEASEENTERTHEMODULENUMBEROFTHEGEAR”ALFANUMBER“PLEASEENTERTHEPRESSURE_ANG”KNUMBER“PLEASEENTERTHEWIDTH_COEFFICIENTOFTHEGEAR”2在”RELATIONS”和“ENDRELATIONS”之间输入关系语句D1DA/2D2BD3DFD4DBD5DD16BD25BD7360/4ZS/渐开线3旋转角度D18360/ZS/第二齿槽旋转角度D27360/ZS/阵列增量尺寸D28ZS1/阵列个数3齿轮参数化设计程序的运行当编辑完参数化程序后保存文件,关闭文字编辑器,PRO/ENGINEER信息列会出现提示信息”DOYOUWANTTOINCORPORATEYOURCHANGESINTOTHEMODEL”图37INPUTSEL菜单此时选择”YES”按钮,系统出现”GETINPUT”菜单,点击”ENTER”,就会出现如图37所示的”INPUTSEL”菜单,选择齿数项和模数项,根据信息列提示输入齿数30和模数25即可得到图38所示的齿轮图38派生的齿轮模型再次执行”EDIT/REGENERATE”命令,PRO/ENGINEER会自动执行参数化设计程序,弹出图37所示的菜单,用户可选择齿数,模数,压力角和齿宽系数并输入新的参数,系统就会按用户输入的新值自动生成新的齿轮。将所建齿轮模型均存放在TEXTCHINESE_CNPARTS目录下。MENUMANAGERINPUTSELZSMSALFAKSELECTALLUNSELALLDONESELLQUITSELL4菜单与对话框的开发设计41菜单的设计菜单是PRO/ENGINEER的主要用户界面。PRO/TOOLKIT提供了一系列菜单操作函数,允许应用程序创建和管理菜单。PRO/ENGINEER菜单包括菜单栏、菜单、菜单项(按钮)、筛选按钮、单选按钮等等,如图41示。图41菜单种类PRO/TOOLKIT可以向PRO/ENGINEER菜单中添加上述类型的菜单。添加菜单的大致过程如下编写信息资源文件(信息资源文件用于提供菜单的标签文本1和帮助信息);使用PRO/TOOLKIT的函数编写源程序,给菜单按钮设置调用2函数(动作函数);注册运行程序。3下面介绍菜单的相关术语菜单条(MENUBAR)PRO/ENGINEER界面顶部菜单栏中的菜单,如FILE、EDIT和VIEW等均称为菜单条;菜单条菜单(MENUBARMENU)菜单条的下级子菜单。即多层菜单的次级菜单;菜单的按钮(PUSHBUTTON)下拉菜单中用来启动一组指令的菜单项,如FILE菜单条中的EDIT按钮;菜单的复选按钮(CHECKBUTTON)下拉菜单中用来执行开关动作的菜单项,如VIEW菜单条中的MODELTREE(模型树)显示或关闭菜单项;菜单的单选按钮组(RADIOGROUP)下拉菜单的一组选项中只能设置其中一项的菜单项;命令(COMMAND)从菜单条或工具栏图标激活的一个执行过程;命令标识号(COMMANDID)指向某一命令的指针。一般作为PRO/TOOLKIT函数的输入参数;动作命令(ACTIONCOMMAND)启动菜单按钮执行的一组指令;选项命令(OPTIONCOMMAND)基于界面元素的状态执行的一组指令。该命令由菜单筛选按钮和菜单单选按钮组启动。本设计要求所设计的菜单风格与PRO/ENGINEER一致,即将菜单添加到PRO/ENGINEER的菜单栏,在其下拉菜单项菜单中要求有各种类型的齿轮,每种类型齿轮的下级子菜单中包含其相应的齿轮类型,如圆柱螺旋齿轮包括圆截面圆柱螺旋压缩齿轮、圆柱螺旋拉伸齿轮等。411编写菜单信息资源文件信息资源文件用于提供菜单的标签文本(包括其他语言版本的标签)和帮助信息,如果要向PRO/ENGINEER中添加菜单,就必须使用信息资源文本,否则所添加的菜单不会在PRO/ENGINEER菜单栏中出现。信息资源文件是一种ASCII码文件,用来定义菜单项、菜单项提示等信息,可以用记事本和写字板等文字处理软件建立,也可在VC的集成开发环境中建立,但必须与纯文本格式保存。在信息文件中以4行为一组,其含义为第1行PRO/ENGINEER系统可以识别的关键字。该关键字必须与使用该信息文件函数中的相关字符串相同。第2行在菜单项或菜单项提示上显示的英语文本。第3行另一种语言的译文或为空。这里为中文。第4行当前的PRO/ENGINEER版本为空,“”号。按第2行或第3行的语言取决于系统环境变量LANG的设置。本设计中将向PRO/ENGINEER界面的顶部菜单栏中添加一个名为“毕业设计”的MENUBAR类型的菜单,下属一个菜单项齿轮参数化建模。图42所示英文菜单的资源文件如下DESIGNDESIGNGEARGEARHELLOPRO_EHELLOTHISISAPRO/TOOLKITDEVELOP图42所示中文菜单的资源文件如下DESIGNDESIGN毕业设计GEARGEAR齿轮参数化建模HELLOPRO_E基于PRO/TOOLKIT的齿轮二次开发程序图42“齿轮”菜单在记事本编辑完以上资源后,保存为纯文本格式TXT,并且命名为MESSAGE。将MESSAGETXT文件存放在TEXTCHINESE_CN目录下。412编写菜单操作源程序编写完菜单信息资源文本后,还须使用PRO/TOOLKIT提供的菜单操作函数来实现每个菜单的功能,即编写菜单项菜单的动作函数。具体设计步骤如下1进入VISUALC60集成开发环境,选择“FILE/NEW”荭选项,启动“NEW”对话框。在“NEW”对话框中选择“PROJECTS”选项卡,选择MFCAPPWIZARDDLL项。在“PROJECTNAME”输入工程文件名“GEAR”,在“LOCATION”输入框中输入路径。单击OK按钮。2在“MFCAPPWIZARD”对话框中选择“REGULARDLLUSINGSHAREDMFCDLL”单选框,使PRO/TOOLKIT应用程序使用共享的MFC。单击FINISH按钮,进入NEWPROJECTINFORMATION窗口后,单击OK按钮,完成工程文件框架的建立。3选择FILEVIEW,打开VC应用程序向导自动生成程序文件。VC应用程序设计向导在FILEVIEW中自动加入了READMETXT、STDAFXCPP和以工程文件名为前缀的CPP资源文件、DEF模块定义文件以及RC资源文件等。在VC环境下编写完程序后,需要对其进行编译和连接,包括文件路径的设置、库文件路径设置、库文件的连接等。PRO/TOOLKIT头文件位于PROTOOLKITINCLUDES文件夹中。在VISUALC60的集成开发环境选择TOOLS/OPTIONS菜单,在弹出的“OPTION”对话框中选择“DIRECTORISE”选项卡,在“SHOWDIRECTORIESFOR”下拉列表框中选择“INCLUDES”,加入“PROTOOLKITINCLUDES”一项,设置PRO/TOOLKIT头文件所在文件夹,如图43所示。图43包含文件路径设置在“SHOWDIRECTORISEFOR”下拉列表中选择“LIBRARYFILES”,加入“PROTOOLKITI486_NTOBJ”一项,设置如图44。图44库文件路径设置选择PROJECT/SETTINGS菜单,选择“LINK”选项卡,在“CATEGORY”下拉列表中选择GENERAL,在“OBJECT/LIBRARYMODULES”下加入MPRLIBPROTK_DLLLIB两个库文件,并且去掉“GENERATEDEBUGINTO”和“LINKINCREMENTAILY”两个选项。具体设置如图45。图45库文件设置在菜单PROJECT/SETTINGS的“LINK”选项页中选择CATEGORY下拉列表中的“CUSTOMIZE”设置强制文件输出,即选中“FORCEFILEOUTPUT”的复选框,如图46所示。由PROTK_DLLLIB及LIBCLIB产生的UNRESOLVEDEXTERNALSYMBOL连接错误均可忽略,并可生成在PRO/ENGINEER系统正常运行的PRO/TOOLKIT应用程序。由于连接PROTK_DLLLIB及LIBCLIB库产生的错误有31个,警告有19个。在“PROJECTSETTINGS”中的“C/C”选项页中选择“GENERATEBROWSEINFO”复选框,并且在“DEBUGINFO”下拉列表中选择“NONE”,具体设置如图47。图47语言设置在“PROJECTSETTINGS”中选择GENERAL选项,将“OUTPUTDIRECTORIES”输出目录改为“RELEASE”,这样VC创建的DLL文件将存放入“RELEASE”文件夹中,设置如图48所示。图48输出路径设置对VISUALC60进行相关设置后,便可以编写程序了。由于在程序的编写过程中,一些相关的的头文件都要用的到,故首先将用到的头文件放到STDAFXH文件中。如下图所示49。图46强制输出设置图49相关头文件其次,必须对用到的函数进行声明,否则将会出错,如INTMYDLG显示对话框函数、STATICUICMDACCESSSTATEACCESSAVAILABLE(用户菜单访问权限设置函数,设置为随时有效)等相关函数函数。最后才编写程序主体部分。下面介绍说明菜单程序中用到的PRO/TOOLKIT函数。USER_INITIALIZ函数是PRO/TOOLKIT应用程序的初始化函数,主要用来对同步模式的PRO/TOOLKIT应用程序进行初始化,任何同步模式的应用程序要在PRO/ENGINEER系统中加载都必须包含该函数。其格式如上程序所示。USER_TERMINATE函数在PRO/ENGINEER终止同步模式的PRO/TOOLKIT应用程序时调用(如退出PRO/ENGINEER将终止应用程序的运行),该函数由用户定义,其中可以不执行任何动作。PROMENUBARMENUADD函数的作用是向PRO/ENGINEER添加所需的菜单,包含头文件为INCLUDE。函数的返回值类型为PROERROR,调用成功返回PRO_TK_NO_ERROR0,否则返回PRO_TK_GENERAL_ERROR1。函数如下PROMENUBARMENUADD“USERMENUBAR“,“USERMENU“,“UTILITIES“,PRO_B_TRUE,MSGFILE其中“USERMENUBAR“为菜单项名,作为调用其他菜单函数的输入参数;“USERMENU“为菜单标签名,即该菜单条的关键字。必须与信息文件该段的标识关键字相同。“UTILITIES“,PRO_B_TRUE表示该菜单加在“工具”菜单的右侧。MSGFILE为菜单信息文件名,这里定为“MESSAGETXT“。PROMENUBARMENUMENUADD函数的作用是向菜单添加下级子菜单。注意,在生成的下级子菜单中必须至少包含一项菜单项,否则将不显示下级子菜单。该函数可以创建多层下级子菜单,只需用不同层次的菜单名标识作为们菜单名即可。其函数如下PROMENUBARMENUMENUADD“USERMENUBAR“,“SUBMENU1“,“SUBMENU1“,NULL,PRO_B_TRUE,MSGFILE“USERMENUBAR“表示这个下级菜单是挂接在此菜单项名下。“SUBMENU1“为菜单标签名,必须与信息文件中对应标识关键字相同。PROCMDACTIONADD函数的作用是设置菜单按钮的动作函数。其函数如下PROCMDACTIONADD“PUSHBUTTONACT1“,UICMDCMDACTFNSPRING1FN,UICMDPRIODEFAULT,ACCESSAVAILABLE,PRO_B_TRUE,PRO_B_TRUE,“MYMENU“表示此菜单是菜单名为“MYMENU”的菜单,“MAINBTN1“是菜单标签名,与信息文件中对应一致。“HELLOPRO_E“是提示信息,必须与信息文件中一致。程序中用到了菜单条、菜单条菜单、菜单按钮等。将上面编辑的资源信息文件放入“TEXTRELEASETEXTCHINESE_CN”文件夹内。413注册运行编写调试完应用程序后,将整个VC工程文件拷贝到工作目录下,用记事本编写注册文件,并保存为“PROTKDAT”。注册文件内容如图410所示。图410注册文件这里的“”代表相对路径方式,即起始目录为PRO/ENGINEER的工作目录。用相对路径方式的优点在于具有可移植性。即此二次开发程序只要存放在PRO/ENGINEER设置的工作目录下,便能自动运行,而不要求用户更改设置,大大地方便了用户的使用。图49中各字段及其意义如表41所示。表41注册表字段及意义字段名意义NAME外部程序标识名,该标识名不一定要与可执行程序名相同EXEC_FILE可执行程序名(包括路径)TEXT_DIR指定外部程序的TEXT目录树的全路径STARTUP这里取DLL动态连接库ALLOW_STOP如设为TRUE,在PRO/ENGINEER工作时可以终止应用程序,如设为FALSE则不能终止应用程序DELAY_START若设为TRUE,PRO/ENGINEER在启动时不调用PRO/TOOLKIT应用程序,但可以手工启动,若设为FALSE,则系统将自动启动。REVISION指定PRO/TOOLKIT版本号END段结束标志注意,将DELAY_START字段内容设为FALSE,这样打开PRO/ENGINEER时使自动注册运行该应用程序。即启动PRO/ENGINEER后,自定义菜单使自动挂接到PRO/ENGINEER菜单条上。不必再手动注册和运行。这样,所创建的“齿轮”菜单便如同PRO/ENGINEER菜单栏中的一项菜单,即当运行PRO/ENGINEER,“齿轮”菜单项将自动连接上去。42对话框的设计用户界面对话框(USERINTERFACEDIALOGBOXES,简称UI对话框)是PRO/TOOLKIT提供的一项交互界面。可以利用UI对话框技术,在PRO/TOOLKIT应用程序中设计出风格与PRO/ENGINEER系统本身具有的对话框相似的人机交互界面。UI对话框主要由对话框资源文件和相应的控制程序两大部分构成。对话框资源文件用ASCII码文本格式编写,其内容定义了对话框的组成、外观和属性。控制程序用C或C语言编写,用来在PRO/ENGINEER环境装入对话框资源、显示对话框、设置动作和退出对话框等。虽然PRO/TOOLKIT采用MICROSOFTVISUALC作为编译器,但是PRO/TOOLKIT中没直接提供对MFC的支持,所以在PRO_E中还不能直接调用MFC。同目前流行的WINDOWS应用程序开发工具相比,PRO/TOOLKIT应用程序界面的专用工具中包含的控件较少,功能有限,使得在开发灵活性应用时受到一定的局限,使用起来很不方便,有的功能甚至难以实现。因此在这里采用MFC提供的对话框资源为例加以介绍。421编写对话框资源文件对话框应包含以下内容齿轮模型图片,齿轮设计各参数以及确定和取消按钮。首先点击【插入】,选择对话框资源,如图411所示,点击【新建】按钮,完成对话框资源的创建。图411插入对话框资源图411插入对话框资源利用APPWIZARD向导功能,将创建的对话框资源和类相关联起来,即为对话框资源创建一个新类,如图413所示。在这里类的名字取CTESTDLG,其它选项默认即可。图413关联对话框资源然后单击控件按钮,创建“STATIC”静态文本框、“编辑”文本框及“BUTTON”等相关控件,根据实际需要修改相关文本内容,并对齐。最终结果如图412所示。图412齿轮对话框双击“取消”和“生成实体”两个BUTTON按键,分别添加相应函数和编辑代码。422编写对话框操作源程序在上述所创建的VC程序下,新建关联工程文件名为TESTDLGCPP。在此工程文件下编制对话框操作源程序。该程序须包含对齿轮对话框的相关操作、模型相关参数的操作函数等。操作源程序见附录对话框操作源程序部分。其中INTMYDLG函数作用是调出图412所示对话框。VOIDCTESTDLGONBUTTON1函数为图412中“生成实体”按钮的动作函数,VOIDCTESTDLGONCANCEL函数为图412中“取消”按钮的动作函数;GETDLGITEMIDC_EDIT1GETWINDOWTEXTCH1,10GETDLGITEMIDC_EDIT2GETWINDOWTEXTCH2,10GETDLGITEMIDC_EDIT3GETWINDOWTEXTCH3,10GETDLGITEMIDC_EDIT4GETWINDOWTEXTCH4,10GETDLGITEMIDC_EDIT5GETWINDOWTEXTCH5,10GETDLGITEMIDC_EDIT6GETWINDOWTEXTCH6,10GETDLGITEMIDC_EDIT7GETWINDOWTEXTCH7,10GETDLGITEMGETWINDOWTEXT该函数用于获得对话框窗口中子窗口17的句柄,然后再得到该子窗口中的文本数据,即本论文中与齿轮有关的相关参数,之后将得到的数据放到事先声明好的字符串中;ATOF()函数主要用于将获得到的字符型的数据转化为实数型;首先用PROMDLRETRIEVE函数把模型调入内存,然后调用PROPARAMETERVISIT函数遍历模型的全部参数,并将各参数的指针存于类型为参数PR0PARAMETER的指针数组中、通过指针数组中各个参数的指针调用PROPARAMETERVALUEGET函数可获得类型为参数值PROPARAMETERVALUE的结构体变量,以此结构体变量为输入参数调用函数PROPARAMETERVA1UESET可设置修改参数之值。参数值的类型仍为PROPARAMETERVAFUE的结构体,在传给函数之前要通过TYPE成员设置类型,再通过VALUE成员赋值。参数给定新值之后,用PROSOLIDREGENERATE函数再生三维模型完成零件的参数化自动创建。这样便可以实现可视化修改再生。在这些函数中,还调用了其它的一些函数,其函数类型及作用详见程序清单。43程序验证圆柱直齿齿轮输入参数齿轮模数M35,齿数Z46,压力角200,宽度B20;生成模型如图414所示。图414生成模型1锥齿轮输入参数齿轮模数M3,齿数Z25,压力角200,螺旋角150,宽度B15;生成模型如图415所示。图415生成模型2经以上验证,所设计的齿轮菜单及对话框均正确无误,能满足设计要求。5设计任务部分程序清单1设计自定义菜单及调用对话框资源程序CTESTDLGDLGNULLSTATICINTSTATUSSTATICUICMDACCESSSTATEUSERACCESSTESTMENUUICMDACCESSMODEACCESS_MODERETURNACCESS_AVAILABLE/设置全有效EXTERN“C“INTUSER_INITIALIZEAFXENABLECONTROLCONTAINERPROFILENAMEMSGFILEUICMDCMDIDCMD_IDPROSTRINGTOWSTRINGMSGFILE,“MESSAGETXT“/在HELP菜单的左边添加自己的菜单STATUSPROMENUBARMENUADD“MYMENU“,“DESIGN“,“HELP“,PRO_B_TRUE,MSGFILESTATUSPROCMDACTIONADD“MYDLG“,UICMDCMDACTFNMYDLG,UICMDPRIODEFAULT,USERACCESSTESTMENU,PRO_B_TRUE,PRO_B_TRUE,STATUSPROMENUBARMENUPUSHBUTTONADD“MYMENU“,“MAINBTN1“,“GEAR“,“HELLOPRO_E“,NULL,PRO_B_TRUE,CMD_ID,MSGFILE/STATUSPROMENUBUTTONACTIONSET“PART“,“MYDLG“,PROMENUBUTTONACTIONMYDLG,NULL,0RETURN0INTMYDLGAFX_MANAGE_STATEAFXGETSTATICMODULESTATEIFDLGNULLDLGNEWCTESTDLGDLGCREATEIDD_DIALOG1DLGSHOWWINDOWSW_SHOWPROWINDOWREFRESHPRO_VALUE_UNUSEDPROWINDOWREPAINTPRO_VALUE_UNUSEDELSEDELETEDLGDLGNEWCTESTDLGDLGCREATEIDD_DIALOG1DLGSHOW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论