网站首页  词典首页

请输入您要查询的论文:

 

标题 利用Quest3D实现虚拟拆装的编程方法
范文

    朱鹏旭 胡以怀

    摘要:现阶段对于船用设备的拆装考核,都是针对实物进行拆卸操作,而在计算机平台上实现这些却并不多见。这里介绍一种在Quest3D上实现的方法,面临的问题是,怎样通过编程实现一步步的拆装操作,拆卸的先后逻辑顺序如何控制,以及工具的动作,被拆卸部件的动作等的控制。该文主要以船用二级空气压缩机为例,介绍利用Quest3D实现虚拟拆装的编程方法。

    关键词:Quest 3D;虚拟拆装;船用二级空气压缩机;编程方法

    中图分类号:TP391.9 文献标识码:A 文章编号:1009-3044(2014)14-3441-04

    Abstract: Nowadays, assessment of dismantling for marine equipments are to be finished on the actual objects, and implementing these on a computer platform is not that common. Here put forward a method implementing these on Quest3D.The problems faced are how to achieve disassembly operations through programming step by step, and how to control the logical sequence, the action of tools and the action of the parts. Taking the dual stage marine compressor as example,the paper describes the programming and implementation process to achieve virtual dismantling with the use of Quest 3D.

    Key words: Quest 3D; virtual dismantling; dual stage marine air compressor; programming

    1 建立场景

    将建好的模型(.max),包括被拆装设备、拆装所需工具及拆装的场地等导入到Quest 3D 中,然后加入渲染通道进行渲染。如图1所示。

    1.1 拆装界面的建立

    建立拆装过程中所需要的引导模块,如开始、重置、拆、装、工具栏、时间、进度等模块。如图1所示。

    2 编程

    2.1 编程思路简介

    每一个部件的拆装都是根据一定的触发条件实现触发后,使工具及部件完成编辑好的动作,以实现拆装。触发条件包括鼠标指针与零件的触碰、外部的输入(键盘、鼠标)及一些通道的值(如时间通道,Value通道等)等。该文拆装过程的编程是通过对工具的逻辑控制实现拆装的先后顺序的,运用到Quest 3D中的ChannelSwitch通道实现不同的触发条件接通相应的通道以实现相应的动作。选用不同类型的工具,进入不同的ChannelSwitch的下接通道,进入通道后,根据触发条件的不同,再次进入不同的ChannelSwitch下接通道实现对不同部件的拆装,需要做的就是根据实际拆装的先后顺序对触发条件进行逻辑编程,以及对工具和被拆部件的动作进行逻辑编程,下面作详细介绍。

    2.2 以船用二级空压机为例的拆装编程

    2.2.1 触发条件

    触发条件运用到的通道通道是UserInput、Mouse Intersection、Trigger、Expression Value等,逻辑编程如图2所示,UserInput为用户输入,双击后显示如图,可选择鼠标或键盘,这里选择鼠标左键,Mouse Intersection下面连接的通道类型为3D Object ,即被触碰的物体,这里连接被拆装的零件通道,Trigger的第二个通道连接一个赋值通道,被赋值后的Value通道通常连接在ChannelSwitch的第一个通道。

    2.2.2 时间模块

    Quest 3D 中物体动作都是通过时间通道来加以控制及实现的,该时间通道即Timer Value,时间的控制是通过Timer Command 通道控制的。Quest 3D中每个物体都有其相应的坐标通道,即Motion,如图,其下面分别连接Position、Rotation、Size等Value Vector类型的通道,其具体的空间坐标则是通过连接在它们下面的Envelope类型的通道控制的,故时间通道连接在这些通道下面,如图3所示。

    2.2.3 ClearScreen通道

    ClearScreen通道的作用是实现物体的显示层次,ClearScreen的设置及使用参考图4。

    2.2.4 鼠标跟随的实现

    鼠标的跟随是通过Set Vector及VectorOperator实现的,具体设置参考图5。

    2.2.5 计时模块

    Quest 3D中并没有自带的计时器,所以要通过逻辑编程建立所需的计时模块【1】,如图6所示,再通过Text Operator及GUI-Button通道将时间以时分秒的形式在一定的位置显示出来,位置就是Button的位置,将Text Operator进行一定设置后的Text格式的通道快捷方式连接在Button下面即可。

    2.2.6 场景相机的选择

    Quest 3D中的Camera是有很多种的,这里根据我们的需求选择漫游相机Walkthrough Camera。漫游相机也称作“步行相机”,它的作用是以观察者的视角在虚拟场景中进行漫游。用户可以控制行走的方向和目的地【2】。

    2.2.7 对工具的控制

    对工具的控制是整个拆装过程的切入点,也是核心。选用不同的工具,加以控制,去拆卸不同的部件,对工具的控制主要是实现工具的鼠标跟随,以及跟相应部件触碰后,让工具产生拆卸的虚拟动作,然后将相应部件拆卸下来,产生形象的视觉效果,达到虚拟的目的。

    对工具的控制,一方面鼠标跟随,上文已作出解释;另一方面实现工具自身的动作。由于某些通用型工具在拆装过程中要重复使用,这就牵涉到工具的动作位置,方向的不同,而在同一拆卸过程中,在Quest 3D中,其3D Object通道只有一个的情况下,就要实现它有很多个Position Vector、Rotation Vector及Size Vector,这一点可以通过ChannelSwitch来实现,具体编程参考图7。而实现工具动作的触发条件包括鼠标和被拆装件的触碰、用户输入(包括键盘、鼠标)以及部件被拆卸完成的状态(这里主要是时间通道Timer Value的值,也可以是其他Value通道的值,视具体情况而定),这样当工具要完成一次动作前,都需要检测以上的拆装步骤是否完成,如果完成,则工具会执行动作,完成下一项拆装,如果没有完成,则工具不能进行拆卸。

    2.2.8 被拆装件的动作

    被拆装的部件要放到指定的位置,因此增加部件的动作,会使拆装看起来更加形象和真实,而部件的动作则在Envelope中编辑。在这些机械设备中,零部件的旋转动作是很常见的,比如螺丝的拆卸,端盖拆卸后旋转后放在木板上等等。旋转就要牵涉到部件的旋转中心,导入Quest 3D的模型并不能保证去旋转中心位于其几何中心处,因此在部件旋转前要修改其坐标轴心,这里介绍Quest 3D中修改物体轴心的方法,首先在物体下面添加一个Motion通道,选中Position、Rotation下面的X、Y、Z等Envelope类型的通道,在Quest 3D中切换到Animation窗口,选择Sliders板块,点击Add/Restore按钮,进行一步步调整,直至将将其调整到物体的几何中心。如图8所示。

    2.2.9 拆装的先后顺序

    上文已提到过,利用ChannelSwitch通道加以实现,工具的选择利用GUI模块来实现,点击工具按钮后,相应的Button进行一次赋值操作,赋值1给ChannelSwitch的Value通道后进入如图所示的“huokoubanshou”,进入“huokoubanshou”后,根据不同的触发条件,再次进入不同的ChannelSwitch下接通道,通过编程实现工具的工作和部件的拆装。如图9所示。

    3 结论

    本文通过一种控制工具的编程方法实现了空压机的虚拟拆装,即以工具为导向,它类同于实际拆装操作过程中要完成某一项拆装首先要选择正确的工具,然后才能进行下一步的拆装操作,如此反复,直至拆装完毕。在某些程度上,他是很接近于现实的。这种编程思维也同样适用于船上其他设备的虚拟拆装。

    参考文献:

    [1] 路朝龙.Quest 3D从入门到精通[M].北京:中国铁道出版社,2012.

    2.2.7 对工具的控制

    对工具的控制是整个拆装过程的切入点,也是核心。选用不同的工具,加以控制,去拆卸不同的部件,对工具的控制主要是实现工具的鼠标跟随,以及跟相应部件触碰后,让工具产生拆卸的虚拟动作,然后将相应部件拆卸下来,产生形象的视觉效果,达到虚拟的目的。

    对工具的控制,一方面鼠标跟随,上文已作出解释;另一方面实现工具自身的动作。由于某些通用型工具在拆装过程中要重复使用,这就牵涉到工具的动作位置,方向的不同,而在同一拆卸过程中,在Quest 3D中,其3D Object通道只有一个的情况下,就要实现它有很多个Position Vector、Rotation Vector及Size Vector,这一点可以通过ChannelSwitch来实现,具体编程参考图7。而实现工具动作的触发条件包括鼠标和被拆装件的触碰、用户输入(包括键盘、鼠标)以及部件被拆卸完成的状态(这里主要是时间通道Timer Value的值,也可以是其他Value通道的值,视具体情况而定),这样当工具要完成一次动作前,都需要检测以上的拆装步骤是否完成,如果完成,则工具会执行动作,完成下一项拆装,如果没有完成,则工具不能进行拆卸。

    2.2.8 被拆装件的动作

    被拆装的部件要放到指定的位置,因此增加部件的动作,会使拆装看起来更加形象和真实,而部件的动作则在Envelope中编辑。在这些机械设备中,零部件的旋转动作是很常见的,比如螺丝的拆卸,端盖拆卸后旋转后放在木板上等等。旋转就要牵涉到部件的旋转中心,导入Quest 3D的模型并不能保证去旋转中心位于其几何中心处,因此在部件旋转前要修改其坐标轴心,这里介绍Quest 3D中修改物体轴心的方法,首先在物体下面添加一个Motion通道,选中Position、Rotation下面的X、Y、Z等Envelope类型的通道,在Quest 3D中切换到Animation窗口,选择Sliders板块,点击Add/Restore按钮,进行一步步调整,直至将将其调整到物体的几何中心。如图8所示。

    2.2.9 拆装的先后顺序

    上文已提到过,利用ChannelSwitch通道加以实现,工具的选择利用GUI模块来实现,点击工具按钮后,相应的Button进行一次赋值操作,赋值1给ChannelSwitch的Value通道后进入如图所示的“huokoubanshou”,进入“huokoubanshou”后,根据不同的触发条件,再次进入不同的ChannelSwitch下接通道,通过编程实现工具的工作和部件的拆装。如图9所示。

    3 结论

    本文通过一种控制工具的编程方法实现了空压机的虚拟拆装,即以工具为导向,它类同于实际拆装操作过程中要完成某一项拆装首先要选择正确的工具,然后才能进行下一步的拆装操作,如此反复,直至拆装完毕。在某些程度上,他是很接近于现实的。这种编程思维也同样适用于船上其他设备的虚拟拆装。

    参考文献:

    [1] 路朝龙.Quest 3D从入门到精通[M].北京:中国铁道出版社,2012.

    2.2.7 对工具的控制

    对工具的控制是整个拆装过程的切入点,也是核心。选用不同的工具,加以控制,去拆卸不同的部件,对工具的控制主要是实现工具的鼠标跟随,以及跟相应部件触碰后,让工具产生拆卸的虚拟动作,然后将相应部件拆卸下来,产生形象的视觉效果,达到虚拟的目的。

    对工具的控制,一方面鼠标跟随,上文已作出解释;另一方面实现工具自身的动作。由于某些通用型工具在拆装过程中要重复使用,这就牵涉到工具的动作位置,方向的不同,而在同一拆卸过程中,在Quest 3D中,其3D Object通道只有一个的情况下,就要实现它有很多个Position Vector、Rotation Vector及Size Vector,这一点可以通过ChannelSwitch来实现,具体编程参考图7。而实现工具动作的触发条件包括鼠标和被拆装件的触碰、用户输入(包括键盘、鼠标)以及部件被拆卸完成的状态(这里主要是时间通道Timer Value的值,也可以是其他Value通道的值,视具体情况而定),这样当工具要完成一次动作前,都需要检测以上的拆装步骤是否完成,如果完成,则工具会执行动作,完成下一项拆装,如果没有完成,则工具不能进行拆卸。

    2.2.8 被拆装件的动作

    被拆装的部件要放到指定的位置,因此增加部件的动作,会使拆装看起来更加形象和真实,而部件的动作则在Envelope中编辑。在这些机械设备中,零部件的旋转动作是很常见的,比如螺丝的拆卸,端盖拆卸后旋转后放在木板上等等。旋转就要牵涉到部件的旋转中心,导入Quest 3D的模型并不能保证去旋转中心位于其几何中心处,因此在部件旋转前要修改其坐标轴心,这里介绍Quest 3D中修改物体轴心的方法,首先在物体下面添加一个Motion通道,选中Position、Rotation下面的X、Y、Z等Envelope类型的通道,在Quest 3D中切换到Animation窗口,选择Sliders板块,点击Add/Restore按钮,进行一步步调整,直至将将其调整到物体的几何中心。如图8所示。

    2.2.9 拆装的先后顺序

    上文已提到过,利用ChannelSwitch通道加以实现,工具的选择利用GUI模块来实现,点击工具按钮后,相应的Button进行一次赋值操作,赋值1给ChannelSwitch的Value通道后进入如图所示的“huokoubanshou”,进入“huokoubanshou”后,根据不同的触发条件,再次进入不同的ChannelSwitch下接通道,通过编程实现工具的工作和部件的拆装。如图9所示。

    3 结论

    本文通过一种控制工具的编程方法实现了空压机的虚拟拆装,即以工具为导向,它类同于实际拆装操作过程中要完成某一项拆装首先要选择正确的工具,然后才能进行下一步的拆装操作,如此反复,直至拆装完毕。在某些程度上,他是很接近于现实的。这种编程思维也同样适用于船上其他设备的虚拟拆装。

    参考文献:

    [1] 路朝龙.Quest 3D从入门到精通[M].北京:中国铁道出版社,2012.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 4:38:11