APP下载

装载机虚拟仿真系统的研究

2022-12-30李皓杰丁浩杰陈子恒贾家和李子兴周之翔

机电工程技术 2022年9期
关键词:界面设计传动按钮

李皓杰,李 钢,丁浩杰,陈子恒,贾家和,李子兴,周之翔

(南京工程学院,南京 211167)

0 引言

目前,机械装配类虚拟实验多以汽车、发动机、叶轮等载体,多借助爆炸图、立体动画以及图文介绍等表达结构关系和标准拆装要领。而机械类相关沉浸式体验虚拟过程、多路径装配的研究较少。焦祥等[1]利用Solidworks、3Ds Max 等软件实现了场景模型和夹具原件模型的构建。成功将装配素材导入到Unity3D平台中,实现了夹具拆装实训的虚拟仿真。丁毓峰[2]利用Unity3D 的虚拟场景搭建和Web开发技术,实现了Web 网页和Unity3D 软件的交互。陈晨等[3]利用VR 技术和Make Real3D软件构思了一种新的设计模式。独创性地提出了使用动态捕捉与仿真交互的想法,合理地证明了虚拟仿真技术的不受时空限制的优越性。杜来红等[4]根据企业里的实际生产情况,利用HumanCAD 设计了虚拟装配环境。在对分配阀的装配过程进行典型案例分析的过程中,证明了在虚拟环境下进行装配可以准确发现问题,并且后续可以以此提出解决措施,大大减少相似错误的发生率。成建群等[5]通过研究Unity3D 引擎的架构,研发了一种轻量化服务器。体现了虚拟仿真系统所具有的良好的开发前景,较好地满足了数据库与互联网网页开发的需求。

通过以上的综述可以看出,应用虚拟实验平台对工程机械装配的开发很少涉及,尤其是高校与企业迫切需要这一方面传统教学模式的改革。另外,对装载机零件建模的优化设计以及平台的开发还很少有实际性的研究。

1 虚拟仿真系统总体设计

1.1 Unity3D平台的人机交互界面设计

UI 设计是一门高深的学问,本文所展示的UI 设计是在Unity3D 环境下开发设计出的实验操作功能界面。本着简洁大方的设计理念,通过canvas实现多个按钮的设计,包括预期拆除、装配的功能按钮,也包括为了方便实验而设计的重置与返回主视角按钮,同时不忘预留退出按钮的位置。报错界面的设计也是简约美观,醒目的弹框报错文本与返回主界面的按钮,更使得操作流畅,富有人性化。字体的选择,大小的设置都是经过反复推敲与测试,按钮的功能不仅与预期功能相契合,也符合简约大方的设计理念。

1.2 数据库与网站搭建

在智能制造领域大热的今天,数据库技术逐渐崭露头角。本文所设计的虚拟仿真实验系统也在该方面进行了少量的研究。主要运用的技术软件有Tomcat、Eclipse、Mysql 等,主要设计的方向是对Unity3D 所生成的WebGL 文件进行二次开发,主要目标是实现简单服务器的搭建、网站式登录界面的设计与登录信息数据库的连接。

1.3 虚拟仿真系统总体设计

本次虚拟仿真系统功能的实现,主要使用的是Unity3D 软件。在版本上选择的是Unity 2017.3.1f1,因2019版本后的Unity3D软件,许多默认的素材包和脚本功能需要自行下载,而一些方便快捷的素材在2019 版本后的使用中,往往要进行版本的自适应,代码和导出exe文件时容易出现报错的现象。

本次虚拟仿真系统的主要功能:实现主传动装配体的拆装功能,实现装、拆操作时视角的自由切换,实现鼠标悬停显示零件名的功能等。

2 基于Unity3D环境下的主传动拆装交互实现

2.1 虚拟拆装功能的实现

本次针对零件的虚拟拆装,选用了Unity3D 的Dotween 插件,往transform 属性方向编写代码来实现功能。通过transform拓展方法里的position 程序段,可以巧妙地预设零件的初始位置和末位置。程序设置后,使用顺序语句,对各个零件进行0~21 的设定,通过鼠标点击事件实现拆、装动作的开始。另一方面,Dotween 插件也能实现Camera 的视角移动,不仅可以调整屏幕视角的宽高比,也可以改变相机进切面、远切面的值,可以按照屏幕百分比计算显示的范围。并且在后续切换主视角的开发中Dowteen插件的运动曲线的设置也起了一定的作用。

将FBX 格式下的文件拖入Unity3D 操作界面下的Assets 文件夹下,为了方便操作,在Assets 文件下新建Scprits 文件夹预存写好的组成代码,同时在Game 文件下添加一个Cube,将主传动FBX 格式的文件拖入Cube中,同时取消勾选“Mesh Renderer”使其消隐。此时调整好主摄像机和放零件的Cube 的位置关系,以确保主画面中能够完整显示主传动零件。记录此时Inspector 功能框下的transform 坐标,之后再预设好该零件的末位置。在Scprits文件夹中将组成代码直接拖入该零件的Inspector 功能框下,此时即可挂上First Pos 的坐标与Second Pos 的坐标,即为零件拆装前后的两个坐标。

在第一个零件组成代码下应该输入0,声明为第一个拆装的零件。以此类推22 个零件,组成代码都应该挂好两个坐标与0~21 的排序。后期为了实现不同零件的区别展示,此时可以创建素材球,不同的素材球将体现不同的外观色彩显示。最重要的是,为了实现点击不同的零件触发不同的零件的操作指令,需要在每一个零件的Inspector 功能框下通过“Add Component”增加碰撞事件,即增加“Mesh Collider”功能。

2.2 鼠标悬停显示零件名称和报错功能的实现

本文交互界面框架的设计主要实现原理是通过在Game界面下右键后添加UI,应当注意的是按钮的排布不应该超过整个画布的设置,而画布大小的设置应当先去Game界面下在分辨率一栏中修改,本文设置为目前较常用的1 920×1 080格式。而之所以在鼠标悬停显示零件名称功能和报错功能的实现中,着重强调按钮功能的设计,也是因为在实现文字显示和报错功能时,离不开按钮功能选择后的前置环境。可以说在设计时是层层嵌套、环环相扣的。在对整个Canvas挂脚本的时候,会用到设置好的按钮为目标,也会用到0~21排序的主传动零件,更会用到一开始便设计好的主相机的位置。在添加报错UI时,为了使其达到触发显示,应该取消勾选其的显示性,并在其子列表下添加文本于关闭报错按钮于关闭报错按钮的文本。当鼠标点击顺序与预设的0~21序号顺序不同时,就会触发报错UI的运行,弹出报错对话框。

而另一功能显示零件名称,本文是通过预设体Prefab 实现,进行预设时可以输入任意零件名,合理设置字体大小与格式后,返回Word 文件,通过“Add Component”功能添加“Image”,选择”Source Image”,导入找到的显示文字的文本框图片资源,合理设置文本框大小、透明度等功能。最后在将预设好的Word Follow 脚本拖入其“Inspector”界面,控制好显示物体名称功能的偏移量等设置。

2.3 视角自由移动的实现

Unity3D 软件高仿真性的一个主要原因便是其强大的相机功能。对于本文的第一人称视角实现主传动零件的拆装,视角的全方位移动与自由地拉近拉远,极大程度地影响着虚拟环境的视觉体验,本文不仅在最初导入FBX文件的时候就考虑到了Cube 与主相机的位置关系,同时将文件放入Cube 中也是为了通过Cube 的旋转和位置属性,去实现主相机的旋转和拉近拉远。本文的鼠标控制视角的自由移动代码便是由此而生,挂在了Main Camera下,作用的Target便是一开始设置的Cube。

整个实验的外部环境的设计,使用的是skybox功能。天空盒的资源可以从网络上进行下载,下载完成后通过点击“assets”-“importpackage”-“skyboxes”即可导入虚拟环境。注意有些skybox导入后仍要手动修改图片的顺序才能正常使用。

3 主传动拆装实验系统界面设计

3.1 界面设计原理

本文的界面设计实现了在Unity环境下通过按钮控制多个界面切换,其主要思路是设计认知与实验操作两个模块。认知模块包含主传动拆装的目的,主传动结构介绍和虚拟拆装的顺序介绍3个子界面,界面与界面之间的切换通过“返回”按钮实现。实验操作模块链接上一章所做的虚拟装配环境。每个子二级界面各自拥有独立界面,拥有一个返回认知模块主界面的按钮。在实际编程之前,列好每一个界面的功能和其返回按钮对应的界面关系,可以较好的理清楚各个界面直接的跳转关系,这样既方便在Unity中进行代码的设计,又能起到检查整个界面框架的完整性的功能。

3.2 界面跳转功能的实现

本次界面设计共需要制作5 张界面,即:主界面、实验理论模块界面、主传动拆装实验目的界面、主传动结构介绍界面和虚拟拆装顺序介绍界面。认清各个界面的跳转关系后,即可开始素材的准备以及界面按钮的设计规划。

在通过if 判断语句实现实现按需显示界面之后,需要对5个界面进行逻辑设计,基于Unity Engine.Scene Management 控件,实现从主界面上“虚拟拆装实验模块”按钮导向上一章的Unity 虚拟拆装环境,实现从Unity 虚拟拆装环境下的“退出”按钮返回主界面。

在实现了各个模块与对应界面的逻辑切换后,便是对各个界面的详细内容进行设计。鉴于Unity3D 中强大的UI模块,撇去按钮模块,本文的界面设计还采用了text 和image 模块。其中text 模块实现的是简单的文字显示功能,包括所显示文字的字体、字号、格式、颜色等。而image 模块则是背景图片功能的选择,在将原素材导入Unity 项目之后,需要将其更改为“Sprite(2D and UI)”才可以使用。

4 服务器搭建与基于Java的网页开发

4.1 Jsp网页开发步骤

当点击上一章所发布的index.html 后,将直接进入实验界面。而对于一个实验系统而言,仍缺少适当的用户登录与注册功能,尚未实现与数据库连接的功能,更不用说记录一些基本的登录用户信息,这样的实验系统是不完善的。为此,本文通过使用Eclipse 软件,进一步补充了该部分的功能。具体的开发流程如下:首先,配置适当版本的JDK,本文使用的是version11;其次,配置Web 服务器,本文使用的是Tomcat9;最后,在Eclipse 中完成整个网页界面的开发,本文使用的Eclipse版本为Eclipse2020-12-R。

4.2 JDK配置方法

在进行JDK配置前,应安装好所需要的适宜版本的JDK 文件。JDK 文件的具体配置方法如下:打开控制面板—系统—高级系统设置—环境变量—系统变量—新建,在变量名中输入“JAVA_HOME”,在变量值中输入下载JDK 文件的地址,之后点击确定即可。调试可以通过在命令程序符中输入java -version进行,JDK已经配置完毕。

4.3 配置Web服务器

同样地,在进行Web服务器配置前,应该先安装好适当版本的Tomcat文件。安装完成后打开Bin 文件夹中的Startup 文件即可获得端口,本文获取的端口为7878。配置成功后,在浏览器中输入localhost:7788,服务器搭建完成。

4.4 JDK基于Eclipse环境下的Web开发

由于本次网页的设计,主要是想对从Unity3D 平台发布出来的WebGL网页进行二次开发,所以需要Eclipse版本符合web项目开发的要求,本文选取的是Eclipse2020-12-R的版本。

启动后,在电脑上新建一个命名为simmis 的Workplace,之后点击launch 进入开发界面。在File 中新建一个Dynamic Web Project,命名为testsumilateMIS,version 选择2.5,Target runtime 选择对应的Tomcatv9.0。至此web 工程项目便有了雏形,之后便需要不断地在Webcontent文件下进行页面的开发设计。首先先新建一个命名为index 的首页jsp file,注意应将字符集改为utf-8。之后即可在Body 中进行首页的开发设计。本文将首页分为4 个部分,分别是头部(header)、菜单栏(menu)、展示区(show)与页脚(footer)。为了避免index 命名重复,将第六章生成的Web 文件更名为“show”,同时将3个文件统一导入Webcontent 文件下。之后对header.jsp、menu.jsp 与footer.jsp 进行开发设计,达到首页上头部显示欢迎来到仿真系统平台,菜单栏上显示仿真系统|用户登录|用户注册,展示区显示Unity3D 导出的html 文件,页脚处显示版权的功能。在show.html中可以通过更改title的方法,更改右下角显示的字符串,完成index界面设计。

完成了index 界面的设计后,应该对该界面上的菜单栏显示的功能按钮进行设计,此时在考虑登录功能的开发前,应该先进行虚拟仿真系统数据库的建立,之后再进行登录与注册功能的脚本开发。本文采用的数据库为userinfo表,选用的MySQL版本为8.0。数据库建立完成后,通过在Java Resources 文件下创建多个工具包与库,逐步分层实现网站的注册与登录功能。

5 结束语

基于广大机械专业对装载机拆装学习与实训的实际需求,本文对装载机上主传动部分进行了一定程度地虚拟拆装。基于Unity3D 平台,对装载机主传动部分进行了虚拟仿真系统的开发,实现了装载机主传动虚拟拆装操作、实现了鼠标自由控制视角的旋转和距离、实现了鼠标悬停显示零件名的功能、实现了拆装顺序设计与报错功能、实现了拆装过程中主视角的返回与随时重置拆装操作的功能。基于Eclipse 平台对数据库进行了有效连接,实现了实验系统应该具备的用户注册与登录功能。该实验系统有助于增强机械专业的教学质量,提高教学效率,能让操作者更好地掌握主传动拆装时的技术要点与结构原理。

猜你喜欢

界面设计传动按钮
当你面前有个按钮
中医养生APP界面设计
ABB传动
基于仿真的液压传动课程教学改革
“共享员工”平台界面设计
中国传统元素在界面设计中的应用
手机UI界面设计中视觉艺术元素的构成
死循环
传动系液力缓速器系统介绍
某重型牵引车传动系匹配分析