您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 园林工程 > 基于Unity3D的车床虚拟仿真实训系统开发
基于Unity3D的车床虚拟仿真实训系统开发摘要:文章就利用Unity3D引擎实现车床虚拟仿真操作及加工进行了阐述,阐述了实现车床虚拟仿真加工及测量的关键技术。在传统的机床操作加工培训中,有效培训必须在真实的机床上进行,可是有限的机床数量难以保证学员有足够的实际操作,因此,在进行真实的机床操作加工前,先进行虚拟仿真操作加工,可有效解决机床设备不够、培训工作量大以及培训费用高问题。相应的机床虚拟仿真实训系统的研究开发就很有必要,本文就基于Unity3D实现车床虚拟仿真实训系统进行了研究。关键词:Unity3D车床虚拟仿真中图分类号:TP391文献标识码:A文章编号:1007-9416(2015)01-0000-001虚拟现实技术虚拟现实技术的特点在于通过计算机产生一种人为虚拟的环境,以视觉感受为主,也包括听觉、触觉的综合可感知的人工环境,使人产生一种沉浸感觉,可以直接观察、操作、触摸、检测周围环境及事物的内在变化,并能与之发生“交互”作用。机床的操作与加工就可以用Unity实现虚拟仿真开发,开发虚拟仿真实训系统,可以达到一定的预期目的。Unity是由UnityTechnologies开发的一个多平台的综合型游戏引擎专业开发工具,使得虚拟现实开发更加容易,效果更加逼真。2普通车床虚拟仿真系统功能与操作本系统采用CA6140型机床为原型,利用Unity3D开发普通车床虚拟仿真实训系统,可以装夹工件、装夹刀具,实现普通车床各个操作、仿真加工及测量功能。比如利用鼠标中键可以在场景中自由旋转和缩放,利用鼠标点击手轮并向不同方向拖动,可以实现对手轮的操作,使用者可以像在真实的环境一样操作机床的各个部件,进行机床的仿真加工操作,操作者还可以实时对加工结果进行测量,就像真正的加工一样。3普通车床虚拟仿真系统的实现(1)资源准备。资源主要包括模型、材质和声音这些素材,模型是最为重要的部份,包括机床模型、游标卡尺模型和场景模型等,机床模型采用的是CA6140型机床,建模可以采用3Dmax,需要注意的是各个部件是需要单独分离出来的,这样在Unity里才可以进行控制,一般需要导出FBX模型,这样Unity才能比较好的识别,需要注意的是3Dmax和Unity的单位和座标系是不一致的,需要在建模和导出的时候加以调整。(2)场景和灯光的设置。这包括对模型部件的处理和灯光系统的配置,模型各种可动的部分需要分离出来,并命名,然后部分需要加入刚体属性和碰撞检测元件,这样就能检测到移动部件的碰撞了,以便在程序中处理。场景的灯光也比较简单,一个全局光模拟日光,再加一个操作灯的点光源即可。(3)第一人称相机设置。为方便操作和观察,需要移动视角,这样在系统里增加了对主相机的第一个人称控制,通过鼠标的移动来移动视角。相机的操作主要包括利用上下键来移动视角,利用鼠标来旋转视角,利用鼠标中轮来放大和缩小。当然考虑到测量模式,相机还要分成两种操作形式,即操作模式和测量模式。(4)动作脚本编制。①工件转动控制。工件在放到机床上后,开始电源后工件需要旋转,这个功能是通过工件和夹具上重载FixedUpdate实现。②手轮动作控制。各个部件,主要是手轮是操作的主要部分,采用拖动的方式模拟对手轮的旋转,在点中手轮时,相应的手轮会变色给出提示,然后拖动鼠标,根据鼠标移动的方向转动手轮。③工件切割的模拟。工件切割是模拟的重点和难点,为了实现工件随着加工的进程发生变化,需要对工件模型进行实时的计算和重建,主要的方法是把工件做为一个Mesh对象,根据工件与切刀发生碰撞的位置,对工件上相应的点进行计算,并重置这些点,因为要考虑到邻近点及三角面重建,计算的过程比较复杂,最后将新的顶点和三角面分配给Mesh对象并进行视图更新。functionOnCollisionStay(collision:Collision){……mesh.vertices=newvertices;mesh.triangles=newtriangles;mesh.RecalculateNormals();mesh.Optimize();……}④金属飞屑的模拟。为了模拟真实的机加现场场景,需要对加工时产生的金属飞屑进行模拟,这主要利用Unity的粒子系统来实现。⑤测量功能的实现。为了实现准确加工,进入测量模式,采用游标卡尺对工件的长度和直径进行真实的测量,通过重载OnGUI界面参数来实现精确控制卡尺的移动。functionOnGUI(){GUI.skin=mySkin;GUI.Box(Rect(13,10,200,140),测量工具);GUI.Label(Rect(20,30,200,20),移动卡尺);if(GUI.Button(Rect(13,50,50,20),上移)){moveRL();}if(GUI.Button(Rect(63,50,50,20),下移)){moveRR();}……GUI.Label(Rect(30,120,300,120),长度为:+value+mm);}(5)界面制作。模拟系统界面的制作是通过重载OnGUI函数实现的,将各个功能按钮布置在屏幕的上方。(6)系统的发布。Unity系统支持多个平台的发布,包括Windows,MAC,网络平台,Flash甚至是手机系统Android。4结语把车床虚拟仿真系统应用到教学之中,使之用于实训前期的操作与仿真加工培训,对学员机床操作能力的培养,起到了极大的提高加强作用,同时还可以减少工件材料和能源的消耗,是实训前期教学中一种不可或缺的重要手段。收稿日期:2015-01-18作者简介:张新庄(1970―),男,陕西富平人,硕士,副教授,研究方向:数控技术。
本文标题:基于Unity3D的车床虚拟仿真实训系统开发
链接地址:https://www.777doc.com/doc-3717849 .html