版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、虚拟现实在机油冷却器气密性能测试台设计中的应用研究关键字:虚拟,实在,机油冷却器,气密,性能,测试台,设计中,应用研究(请本文作者速把论文相关图片,发送过来!谢谢合作!谢谢支持本站!)摘要机油冷却器作为发动机润滑用机油冷却的装置,其密封性能关系着整个发动机能否高效、正常的运转。采用虚拟现实技术建立了自动测试台的虚拟样机来指导实际的加工,能缩短企业新产品的开发周期并降低产品的开发成本。本文主要包含了以下一些内容:1、机械设计部分,包括汽缸的选择、工作台的设计改进、横梁的设计计算、堵头的设计等并绘制相关的图纸;2、实体建模部分,主要是利用三维绘图软件solidworks建立自动测试台零件的实体模型
2、,并把它们装配起来;3、虚拟仿真部分,主要是把已建立好的实体模型,利用VC+6.0开发平台和World Tool Kit软件,编制程序来实现自动测试台的视景仿真和虚拟的工作过程。关键字:虚拟现实 实体建模 WTK 虚拟样机AbstractThe water cooler is the equipment cooling the engine, its seal has a lot to do with the efficiencies and the normal working of the engine. Build the virtual prototyping of the autom
3、atic measure set, using virtual reality technology, to induct the real manufacturing, as far as the enterprises are concerned, which can decline the developing period for a new product and can cut down the research cost. The following is the main process of the design. First is the mechanic design,
4、includes: the design of the work plate, the calculation of the beam, and so on. Second is the solid building, using software Soildworks to build the solid modify of the automatic measure set and make the assembly. Third is the virtual simulation, implying viewing simulation and visual test process o
5、n platform of VC+ 6.0, running VC and software World Tool Kit are adopted.Keywords: Virtual reality entity-modeling WTK Virtual Prototyping 目录摘要iAbstractii第一章 绪论11.1 引言11.2 课题的提出11.3 设计的主要内容2第二章 总体方案设计32.1 设计要求32.2 自动测试台虚拟样机的功能分析32.3 设计思路及方案确定3第三章 设计所用软件的介绍53.1三维建模软件Solidworks 200153.2 Visual C+ 6.0
6、53.3 虚拟世界工具箱 WTK6第四章 机械设计部分104.1 汽缸的计算和选取104.2 横梁的设计和校核114.3 弹簧的计算和选取124.4 工作台的设计144.5 堵头的设计14第五章 实体建模部分155.1 零件建模及部分装配155.2 零件的总装配16第六章 虚拟仿真176.1 自动测试台的运动和机构分析176.2 实现基于MFC的程序框架186.3 虚拟路径的构成原理196.4 编程实现虚拟仿真20第七章 设计总结25谢辞26参考文献27第一章 绪论1.1 引言随着21世纪世界经济和科学技术的飞速发展,全球性的市场竞争日益激烈。产品消费结构不断向多元化、个性化方向发展。面对难以
7、预测、持续发展的市场需求,企业为了提高竞争力,必须尽快推出新品种,更新设计手段,缩短新产品的研发周期,提高产品的设计质量,降低产品的研发成本,进行创新性设计,这样才能对快 速多变的市场需求做出敏捷响应,从而在市场竞争中获得相当的市场份额和利润。虚拟样机技术(Virtual Prototyping)就是在这种迫切需要的驱动下产生的。虚拟样机是一种存储于计算机中的虚拟模型,它能够反映实际产品的特性,包括外观、空间关系以及运动学和动力学的特性。借助于这项技术,设计师可以在计算机上建立机械系统的模型,伴之以三维可视化处理,模拟在真实环境下系统的运动和动力特性,并根据仿真结果精化和优化系统。虚拟样机技术
8、利用虚拟环境在可视化方面的优势以及可交互式地探索虚拟物体的功能,对产品进行几何、功能、制造等许多方面交互的建模与分析。它在模型的基础上,把虚拟技术与仿真方法相结合,为产品的研发提供了一个全新的设计方法。虚拟样机技术在一些较发达国家,如美国、德国、日本等已得到广泛的应用,应用领域从汽车制造业、工程机械、航空航天业、造船业、机械电子工业、国防工业、通用机械到人机工程学、生物力学、医学以及工程咨询等很多方面。1.2 课题的提出机油冷却器是应用于发动机润滑用机油进行冷却的装置,它可以保持发动机工作状态下可靠的润滑,提高其工作的可靠性和寿命,降低发动机本体的制造精度,特别地对于车载发动机来说是必不可少的
9、配套装置。另一方面,一旦其气密性能不好,发生泄露,会导致整台发动机的瘫痪,故其气密性能对于发动机乃至整台机器来说起着至关重要的作用,对其气密性能的测试是一个必不可少的环节。长期以来,这一工艺都是手工操作,工人劳动强度大,生产效率低。随着用户需求量的增加,这一工艺过程已成为制约产量提高和企业发展的瓶颈。高效率的自动测试台呼之欲出。在制造了第一台机油冷却器密封性能自动测试台后,我们发现了许多不足之处,首先在制造过程中,由于仅仅是根据图纸来制造,在装配过程中发生了很多干涉,安装时也出现了很多问题;其次在生产应用过程中,出现了其它一系列问题,如观察角度不好,很难发现泄露部位,系统结构复杂等,这些问题的
10、产生都是因为在制造前无法进行模拟仿真。本次课程设计就是针对这些问题,建立自动测试台的虚拟样机,这样能很好的解决这些问题;面对飞速发展的市场,企业也可以迅速的调整自己的产品结构来适应市场,缩短新产品的研发周期,提高产品的设计质量,降低产品的研发成本;同时为企业在和用户交流时提供了方便 。1.3 设计的主要内容该自动测试台的虚拟样机的建立主要包括机械设计部分、实体建模以及编程实现虚拟仿真。其中机械设计部分包括汽缸的计算和选择、梁的计算和校核、弹簧的计算和选择以及工作台和堵头的设计和相关图纸绘制;实体建模部分主要是零部件的建模和装配;虚拟仿真部分包括自动测试台的运动和机构分析、实现基于MFC的程序框
11、架、虚拟路径的构成原理以及编程实现虚拟仿真。其中还包括所用软件的介绍。本设计注重机械设计,结合工厂的实际生产条件进行设计,利用VC+6.0和World Tool Kit等软件建立自动测试台的虚拟样机,实现视景仿真和虚拟的工作过程。第二章 总体方案设计2.1 设计要求(1) 完成自动测试台总装配图的绘制工作(手工绘制0号图纸)(2) 设计计算自动测试台的主要部件(3) 完成自动测试台的三维实体模型的建立(4) 完成自动测试台的动作分析(5) 建立自动测试台的虚拟样机,完成虚拟仿真2.2 自动测试台虚拟样机的功能分析虚拟样机目前作为制造业的研究热点之一,许多国家和研究机构参与该技术的研究和开发,并
12、推出了相应的商品化软件。本课题以机油冷却器气密性能自动测试台为研究对象,利用虚拟现实软件工具从事该产品的虚拟样机开发,主要实现自动测试台的装配过程以及针对不同的机油冷却器实现其密封性自动检测的虚拟仿真过程,达到指导实际生产的目的。这样可以使企业缩短新产品的开发周期,降低产品的开发成本,同时提高新产品的一次性成功率。2.3 设计思路及方案确定根据企业所提供的机油冷却器的性能特点,以及在已有的一台吊篮式自动测试台的基础上,针对出现的问题作相应的改进。设计计算来确定汽缸、梁以及弹簧的规格,并改进工作台的放置,确定堵头的材料和外型等等。根据设计计算,利用三维绘图软件Solidworks来建立自动测试台
13、的各零部件的模型,并把它们装配起来,此举可以达到检测装配时干涉的问题。自动测试台的主要动作过程:工件定位 堵头密封冷却器的油孔(一端中空通气,一端密封) 通气12kg/cm2 工作台下降,工件浸入水中 检查是否有漏气工作台浮出水面,松开堵头 换工件,进行下次循环在已装配好的实体模型的基础上,根据上述自动测试台的工作过程建立其虚拟样机,利用VC+6.0和World Tool Kit等软件,编制程序来实现自动测试台的视景仿真和虚拟的工作过程。上述设计思路经论证成为最终的设计方案。第三章 设计所用软件的介绍 本章主要是介绍在建立自动测试台虚拟样机时所使用的主要软件。包括Solidworks 2001
14、、Visual C+ 6.0、WTK等,给读者一个概要的认识。3.1三维建模软件Solidworks 2001Solidworks 2001是一种常见且使用简单的三维建模软件,采用用户熟悉的Microsoft Windows图形用户界面,它的功能虽然没有 UG 和Pro/E强大,但在本课题中,不需要很强大的图形功能,只要利用该软件建立零件的模型并实现其装配过程,在本学期之初刚学过该软件,易于上手,故采用Solidworks来进行实体建模。3.2 Visual C+ 6.0Visual C+ 6.0是Microsoft公司提供的基于Windows95、Windows98和Windows NT的编
15、程工具。Visual C+ 6.0最大的特色是面向对象技术的支持,它利用类把大部分与用户界面设计有关的Windows API函数封装起来,通过 (Microsoft Foundation Class) MFC类库的方式提供给开发人员使用,大大提高了软件的重用性。另外,Visual C+ 6.0内带的AppWizard可以帮助MFC类库的用户自动生成一个应用程序框架,用户只需对该应用程序框架进行扩充添加代码就可以得到一个优良的应用程序。Visual C+ 6.0提供的Class Wizard可以为用户提供方便而有效的使用管理MFC类库。 Visual C+ 6.0作为一个功能强大的软件开发工具,
16、它对应用程序的开发支持是多方面的,它可以为以下程序的开发提供支持: 利用MFC的32位Windows应用程序。 使用C语言SDK编写Windows程序。 编写控制台程序。 编写Active X 控件。 编写动态链接库(DLLS). 开发数据库应用程序。 开发Internet应用程序。 开发多媒体应用程序。 在本设计中Visual C+ 6.0作为系统开发工具,编制程序实现虚拟样机的动作过程。3.3 虚拟世界工具箱 WTKWorldToolKit(WTK)是由Sense8公司开发的一种高级虚拟现实跨平台开发环境。WTK包含库函数和终端用户开发工具,可用于生成、管理与包装各种应用。WTK提供一系列
17、WTK函数,用户可以调用这些函数用于构造虚拟世界。WTK提供超过1000个C语言写的函数库,使用户能够快速开发新的虚拟现实世界。一个函数调用能够代替成百上千行C代码,极大地缩短了开发时间。WorldToolKit构造的虚拟世界可以组合各种具有真实感特性与行为的对象,用户可以通过一系列的输入传感器来控制这些对象,使用计算机显示器或带头部跟踪的立体显示器(HMD或立体眼睛)来漫游虚拟世界。WTK支持20多种3D输入设备,几乎包含了市场上提供的所有3D设备。它还提供了外设驱动程序开发接口和指南,有利于用户开发自己的三维外设。WTK t的体系结构中引入了场景层次的功能。使用WTK,用户通过把节点组装成
18、一个场景图来构造一个虚拟现实应用,场景图的每一个节点描述应用的一个功能模块。WTK的类包括Universe(顶点)、Geometries(几何)、Nodes(节点)、Polygons(多边形)、Vertices(顶点)、Lights(光线)、Viewpoints(视点)、Windows(窗口)、Sensors(传感器)、Path(路径)、Tasks(任务)、Motion Links(运动连接)、Sound(声音)、User Interface(用户接口)、Networking(联网)和Serial Port(串行端口)等。WTK支持SGL,SUN,HP,DEC,INTEL平台,支持上述平台的U
19、NIX以及Windows 2000/NT/98/95和Linux操作系统,具有多通道、多处理器支持功能。WTK的仿真流程管理WTK的仿真流程管理是仿真程序的核心,它主要包括接收外部事件、更新对象状态、触发事件的句柄和任务句柄三个过程,最终完成场景对象的各种行为描述。行为建模的过程包括事件的类型、触发方式和时机、事件和对象任务的结构以及每个事件处理函数的任务的代码实现。仿真行为的设计和实现,无疑是静态建模后程序员的主要工作,也是实现程序目标的最终体现。如图3.1, WTK的仿真流程包括以下9个步骤: 调用WTuniwerse_ready初始化流程管理。 调用函数WTuniwerse_go开始进入
20、仿真循环。 接收传感器输入。 处理Uniwerse的行为函数。 根据传感器的输入更新对象状态。 处理对象的任务。 把处于回放或录制状态的路径向前推进一步。 绘制场景。 WTuniwerse_stop结束仿真循环。其中步骤的顺序可以重新设置,函数FLAG WTuniverse-seteventoder(short nevents,short *events);完成这一功能。参数events指向一个四元数组,数组元素的选择项有WTEVENT-ACTIONS,WTEVENT-OBJECTSENSOR,EVENT-TASKS,WTEVENT-PATHS,分别对应步骤,数组中四个元素的值都不同,它们的顺
21、序确定了函数执行后四个步骤的新次序。图3.1 WTK仿真流程示意图以WTK为开发工具的虚拟现实系统 以WTK为开发工具的虚拟现实系统由3D建模层(包括建模工具、数据库及连接它们的数据接口)、VR层(包括将C+语言、虚拟现实建模工具WTK及将二者结合的虚拟现实环境)和驱动层(包括数据手套、鸟标、操纵器等硬件,以及用户界面和图形输出等)组成,其系统结构如图3.2所示:图3.2 以WTK为开发工具的虚拟现实系统结构在本课题中,自动测试台虚拟样机的建立主要根据上述软件以及图3.2所示。由于WTK不支持Solidworks生成的文件格式,所以在设计中,还必需利用3DS MAX来转换文件格式,把已有的文件
22、格式转换为WTK 所支持的文件格式,这样才能进行后面的工作。第四章 机械设计部分本章主要是对自动测试台的一些主要部件进行设计计算,包括汽缸、横梁、弹簧等,以及设计工作台和堵头时应注意的一些问题。这些设计是根据实际的情况而定的,并在设计中使用人机工程学原理,保证自动测试台的机械性能和使用的人性化,同时也为建立实体模型做准备,保证绘制出来的零件符合实际并能合理的装配。4.1 汽缸的计算和选取由于工厂内气源充足,在设计时使用汽缸作为驱动装置。已知通气口的最大直径为,动作压力,通气压力工作示意图如下:图4.1在该设计中,选用的是双作用汽缸,p为推力,汽缸的直径计算如下:由于汽缸内有泄露以及摩擦等外在因
23、素,所以在选择汽缸时提高20%,故,圆整为标准值后。所选汽缸的型号为。4.2 横梁的设计和校核根据设计要求横梁做成方柱形,这样便于堵头和梁的连接,也利于梁和推杆的连接,另外,做成方柱形也使推杆的作用面积变大,工作时稳定。根据检测产品的类型,选定梁的尺寸为,对梁进行强度和刚度的校核。横梁的校核如下(根据最大工件尺寸进行校核)梁的受力图(图4.2):图4.2梁的剪力图(图4.3):图4.3梁的弯矩图(图4.4):图4.4梁的截面图(图4.5): 图4.5最大挠度: ,故其中: A点的转角:通过以上的校核,可以确定梁的选择是合理的。4.3 弹簧的计算和选取弹簧的主要作用是汽缸带动梁上升的时候,推动工
24、作台随着梁一起上升到正常位置,为下一次循环作准备。试验静止时的受力简图(图4.6):图4.6弹簧受到的最小力为:受到的最大力为:工作行程(以最小工件的尺寸算):弹簧的外径:弹簧类别:端部结构:端部并紧、磨平,支撑圈为1圈弹簧材料:弹簧用不锈丝YB (T)11 C组 0Cr17NiAl初算弹簧刚度:工作极限载荷:因是类载荷故 簧丝直径d及弹簧中径的有关参数:根据Pj与D条件从2表11-2-19得:有效圈数 按表11-2-10取标准值:总圈数:弹簧的刚度:工作极限载荷下的变形量:节距 自由高度:弹簧外径:弹簧的选取主要根据以上的设计计算来选定。4.4 工作台的设计 在第一台吊篮式自动测试台的设计中
25、,采用了水平的工作台,在使用过程中,操作工人反映观察角度不好,难以判断泄露的部位。故在本次设计中,根据产生的问题以及人机工程学原理,使工作台往内倾斜10度角(如图4.7)。这样不仅能较好定位,也能清楚的观察泄露的部位,便于修复。工作台的这一设计引起其它一系列相应的改变,为了保证工作台与推杆、汽缸以及弹簧缸的同轴心,安装的时候也必须使这些部件也向内倾斜10度,并使它们安装在同一直线上。横梁也将倾斜,使得横梁导柱也倾斜10度角,保证梁的运动轨迹。 图4.7 4.5 堵头的设计为了保证堵头的密封性能,堵头的材料选用橡胶,根据不同的产品,堵头的外形设计成圆锥形,可以适应不同口径的机油冷却器,免去的许多
26、装拆工作。两个堵头之间的位置是可调的,只要调整堵头之间的位置就可以检测同一型号不同口径的机油冷却器了。第五章 实体建模部分模型是虚拟仿真的基础,通过上面的实体建模,为后面开发虚拟样机做了很好的准备。同时,虚拟的装配过程能很好的解决在实际制造中配合和干涉等问题。在本章中,将主要以图片的形式来展示虚拟样机的主要部件的模型以及总装图。5.1 零件建模及部分装配根据设计计算所选择的零件的外形尺寸建立模型,一些主要的零部件模型如下图5.1所示: 推杆 导杆底座 水箱 横梁 弹簧缸 堵头装配件图5.15.2 零件的总装配在总装配时,采取了先把上下箱分别装配好,然后再把上下箱装配起来。装配时,最主要的问题就
27、是要保证汽缸、推杆以及弹簧缸的同轴心,同时必须保证堵头与工件也同轴心,这样在实现虚拟样机动作时才能保证其配合。总装配图如图5.2所示:图5.2第六章 虚拟仿真 本章主要是在已建立好的模型的基础上,利用VC+6.0和World Tool Kit等软件建立自动测试台的虚拟样机,实现虚拟仿真的过程。包括自动测试台的运动和机构分析、实现基于MFC的程序框架、分析虚拟路径构成原理并编制程序,最终实现虚拟仿真。6.1 自动测试台的运动和机构分析机油冷却器密封性能自动测试台的主要动作过程如下:工件定位 堵头密封冷却器的油孔(一端中空通气,一端密封) 通气12kg/cm2 工作台下降,工件浸入水中 检查是否有
28、漏气 工作台浮出水面,松开堵头 换工件,进行下一次循环在该自动测试台的虚拟样机的设计中,把装配好的总装配体通过3DS MAX转换,导出成可以供WTK调用的几个块,利用VC+6.0编制程序,设置节点如下:node1=总体框架 node2=横梁node3=工作台 node4=左门node5=右门 node6=水箱为清晰地展示测试台的内部结构,设置“L”实现测试台左门隐藏;设置“R”实现测试台右门隐藏;设置“S”实现测试台水箱隐藏;设置“W”实现测试台复位。利用鼠标来实现视景仿真,利用键盘来控制虚拟测试台的测试过程。设置“D”实现工作台与堵头的下降运动;设置“U”实现工作台与堵头的上升运动,工件复位
29、。在虚拟环境下建立以下场景图如下(图6.1):图6.1 场景图 在模拟循环当中,每循环一次就渲染一次宇宙,而渲染宇宙的具体方式是由多种节点组成的树状图,一个父节点下面可以有一个或多个节点,渲染时以深度遍历的方式遍历场景树;首先访问根节点,然后从左之右访问各个子节点(或子树)。彷真循环根据场景树来渲染虚拟环境,根据光照、雾、位置节点的影响范围来渲染场景当中的几何体。WTK当中的节点属性能够累积和传递,遍历时先经过的会对后经过的节点属性产生影响。当后面的节点不在需要前面节点的属性时,要用分离节点进行隔离。在本设计中虽未采用,但在今后使用中,应注意这方面的问题。6.2 实现基于MFC的程序框架WTK
30、提供的程序框架仅有一个源代码文件,由此获得的是DOS界面的可执行程序,没有菜单,没有工具条。尽管可以利用WTK的UI功能添加菜单和工具条,但是一种更为彻底的方法是把程序转化为Windows风格界面,在该自动测试台的虚拟样机的建立中,建立一个基于MFC的应用程序框架,可以很自由的修改和设计应用程序的风格界面。具体实现过程如下:1. 使用Visual C+ 6.0建立一个新的SDI应用程序;2. 在工程设置C/C+分类(Preprocessor)路径输入C:Program FilesWTKinclude3. 在工程设置Link分类(Input)路径输入C:Program FilesWTKlib4.
31、 在Cve mas View.cpp文件当中,在# include “stdafx. H” 之后加入:# include” wt.h” ,并用App Vizard为Initial UPdate 消息增加一个句柄,并在其中加入如下代码:static First Time= TRUE; /设置一个标识,使只初始化一次虚拟环境if( First Time) First Time = FALSE; /不使用WTK的标准窗口,而使用MFC的 WTinit-use window(Get Safe H wnd(); /创建一个宇宙,这是仿真循环最基本的 WTuniverse-new( WTDISPLAY-D
32、EFAULT, WTWINDOW- DEFAULT); /使用MFC的消息泵,而不用WTK的消息泵 WTuniverse- setoption( WTOPTION- USE WTPUMP, FALSE); Load Geometry(); /装入各个物体(程序体见编程实现部分) WTuniverse-setactions(actions); /(见实现部分) WTuniverse-ready();/仿真循环运行之前,总是要调用此函数,对虚拟环境初始化5. 用 Class Wizard增加OnIdle消息句柄函数到CvemasApp.cpp当中并按如下编辑: BOOL CvemasApp : O
33、nIdle(LONG1Count) WTuniverse-go1(); /当程序空闲时,运行一次仿真循环 C WinApp : OnIdle (1Count);return 1; /总是返回1,以执行更多的空闲 6. 在C Ve masApp.cpp文件当中,在# include “stdafx.h” 之后加入#include ”wt.h” 7. 用Class Wizard在 CWTKDemoView类当中增加Destroy Window消息句柄,并按如下编辑。 BOOL CWTKDemoView : Destroy Window( ) WTuniverse- delete( ); /退出WT
34、K环境 return C View : Destroy Window( ); 按上面的方法设置之后,就可以得到一个基于MFC的WTK虚拟环境应用程序框架,通过在此函数中加入对自动测试台的控制函数,就可以使自动测试台在虚拟环境中运动起来。6.3 虚拟路径的构成原理虚拟路径实际上是由虚拟环境当中一系列离散的点构成的,路径的每一个点都包含了在虚拟环境中绝对坐标系下此点的位置和姿态(Position and Oritation)。虚拟路径是在每次仿真循环过程中,通过记录每桢视点的位置得到的。在该设计中,自动测试台的运动轨迹是梁沿着导柱运动到堵头密封工件,然后工作台随堵头一起下降到水中,等完成测试后,工
35、作台和梁沿原路返回,进行下一次循环。整个运动过程都在一直线上完成。WTK的坐标系可用右手定则来确定,大拇指的方向为Z方向,四指的方向为X方向,而垂直于手心的方向为Y方向。由于梁和工作台在设计过程中都倾斜了10度,所以运动过程可分解为X方向和Z方向,运动关系式为,如图6.2 图6.26.4 编程实现虚拟仿真通过以上的一系列准备后,现在进入程序的编制,程序如下:void Down_action();void Up_action();void action();void Left_action(short state);void Right_action(short state);/void Wat
36、er_container_action(short state);WTm4 nodem1,nodem2,nodem3;/ CWTkDemoView message handlersvoid CWTkDemoView:OnInitialUpdate() WTnode *root;WTnode *light; WTnode *node1; WTnode *node2; WTnode *node3; WTnode *node4; WTnode *node5;WTnode *node6;/WTgeometry *sphere;/* Initialize the Universe */static Fi
37、rstTime = TRUE;/* Do this WTK initializing stuff the first time this routine * is called. This routine will get called once for each document, * so its important to only initialize WTK once. */if (FirstTime) FirstTime = FALSE;/* Dont use WTKs standard window, use this view */WTinit_usewindow (GetSaf
38、eHwnd();/* Now its safe to initialize the universe */WTuniverse_new (WTDISPLAY_DEFAULT, WTWINDOW_DEFAULT);(CMainFrame*)AfxGetApp()-m_pMainWnd)-m_bWTKInitialized = TRUE;root = WTuniverse_getrootnodes();/* Dont use WTKs message pump, use MFCs */WTuniverse_setoption (WTOPTION_USEWTPUMP, FALSE);/* Load
39、a lights file */if (!WTlightnode_load (root,lightfiles/lights) WTp3 dir = -0.58f, 0.58f, 0.58f ;light = WTlightnode_newdirected (root);WTlightnode_setdirection(light, dir);WTlightnode_setintensity(light, 0.8f);/* Create an object */sphere = WTgeometry_newsphere (10.0f, 8, 8, FALSE, TRUE); /node5 = W
40、Tgeometrynode_new(root,sphere);/载入装配体 node1=WTgeometrynode_load(root,F:zouzhenfeidxf总体.DXF,1.0f); WTnode_setname(node1,总体); WTnode_gettransform(node1,nodem3); node2=WTmovnode_load(root,F:zouzhenfeidxf梁.DXF,1.0f); WTnode_setname(node2,梁); WTnode_gettransform(node2,nodem1);node3=WTmovnode_load(root,F:
41、zouzhenfeidxf工作台.DXF,1.0f); WTnode_setname(node3,工作台); WTnode_gettransform(node3,nodem2);node4=WTmovnode_load(root,F:zouzhenfeidxf门1.DXF,1.0f); WTnode_setname(node4,门1);node5=WTmovnode_load(root,F:zouzhenfeidxf门2.DXF,1.0f); WTnode_setname(node5,门2); node6=WTmovnode_load(root,F:zouzhenfeidxf平面.DXF,1.
42、0f); WTnode_setname(node6,水箱);WTwindow_zoomviewpoint(WTuniverse_getwindows();/* Initialize the mouse sensor */WTviewpoint_addsensor (WTuniverse_getviewpoints(), WTmouse_new ();WTsensor_setsensitivity(WTuniverse_getsensors(),0.1f*WTnode_getradius(root);WTuniverse_setactions(action);WTkeyboard_open();
43、/* Always call this before WTuniverse_go() or .go1() */WTuniverse_ready ();CView:OnInitialUpdate();/ CWTKView message handlersint loopcontrol = 1;void action()WTnode *node1;node1 = WTuniverse_findnodebyname(总体,0);static short key;static short leftdoor = 1;static short rightdoor=1;static short water_
44、container=1;short keytemp;keytemp=WTkeyboard_getlastkey();keytemp = tolower(keytemp);if(keytemp=d|keytemp=u|keytemp=l|keytemp=r|keytemp=s|keytemp=w)key = keytemp;switch(key)case d:Dowm_action();break;case u:Up_action();break;case l:leftdoor = !leftdoor;key = 0;Left_action(leftdoor);break;case r: rig
45、htdoor=!rightdoor; key=0; Right_action(rightdoor); break;/case w:/ water_container=!water_container;/key=0; / Water_container_action(water_container); break;case s:WTwindow_zoomviewpoint(WTuniverse_getwindows(); key=0; break;void Down_action()WTnode * tempnode1;WTnode * tempnode2;/static int firstti
46、me = 1;WTm4 m1;WTm4 m2;tempnode1 = WTuniverse_findnodebyname(梁,0);tempnode2= WTuniverse_findnodebyname(工作台,0);WTnode_gettransform(tempnode1,m1);WTnode_gettransform(tempnode2,m2); m132 +=1.0*tan(10.0*PI/180);m131 +=1.0f;if(m131-nodem13130.0f)m232 +=1.0*tan(10.0*PI/180);m231 +=1.0f; WTnode_settransfor
47、m(tempnode2,m2);elseloopcontrol = 1; /WTuniverse_stop(); void Up_action() WTnode * tempnode1;WTnode * tempnode2;WTm4 m1;WTm4 m2;tempnode1 = WTuniverse_findnodebyname(梁,0);tempnode2= WTuniverse_findnodebyname(工作台,0);WTnode_gettransform(tempnode1,m1);WTnode_gettransform(tempnode2,m2); m132 -=1.0*tan(10.0*PI/180);m131 -=1.0f;if(m131-nodem131=0.0f) WTnode_settransform(tempnode1,m1);if(m231-nodem231=0.0f)m232 -=1.0*tan(10.0*PI/180);m231 -=1.0f;WTnode_settransform(tempnode2,m2); /WTuniverse_stop(); void Left_action(short state) static l=1; WTnode *node4_temp; node4_temp=WTuniverse_findnod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健身器材制作工岗位实操知识技能考核试卷含答案
- 收银员岗中团队合作考核试卷含答案
- 《肾癌的诊断与治疗》课件
- 医学课件-标准化病人问诊模板
- 腊梅主要病虫害的防治方法
- 医学课件-护理学专业介绍
- 127系统精讲-损伤中毒-第十五节 常见四肢骨折病人的护理-20250826-212411
- 医疗行业采购管理及谈判技巧培训
- 初中美术教资面试全真模拟题库及答案
- 2026初中道法教资面试答辩题库及答案
- 《信息安全产品配置与应用》全套教学课件
- 2025年高校辅导员招聘面试题库及参考答案
- 2026秋人教版小学美术二年级上册第一单元 身边的自然第1课 树叶的血管教学课件
- 人教版五年级上册语文单元同步测试题(附答案)
- 江西财经大学《Java》2025-2026学年期末试卷
- 2025年老年人冬季防摔倒培训
- 产品质量检验与追溯系统操作手册
- 2026年辽宁生态工程职业学院单招综合素质笔试备考试题附答案详解
- 幼教考试历年真题及答案
- 钢结构制作车间安全生产必知常识
- 2025湖南湘西州工会招聘11人考试笔试参考题库及答案解析
评论
0/150
提交评论