一种动态层进式装备零部件分解的实现方法与流程

文档序号:17924779发布日期:2019-06-15 00:20阅读:261来源:国知局

本发明涉及虚拟现实技术领域,具体而言,涉及一种动态层进式装备零部件分解的实现方法。



背景技术:

近年来,随着机械电子技术以及制造技术的发展,各种装备的复杂程度越来越高,从而导致对装备进行认知的难度越来越大。一种合理的装备认知方式可以提高工作人员的装备认知效率。传统的装备认知实现方法是针对装备的每个零部件分别编写分解动画脚本,然后同时执行所有零部件的分解脚本,从而将装备分解为多个零部件,来实现装备认知。但这种方法存在工作量大、操作复杂、不具备通用性的缺点。



技术实现要素:

本发明的主要目的在于提供一种动态层进式装备零部件分解的实现方法,以解决现有技术中工作量大、操作复杂、不具备通用性的问题。

为了实现上述目的,本发明提供了一种动态层进式装备零部件分解的实现方法,包括以下步骤:

步骤一,定义装备零部件:将装备的单个零部件或含多个子部件的组合定义为一个part,part具有deploy、deploy_direction_start、deploy_direction_end、positive_children和negitive_children属性;

deploy为布尔型,当part为含多个子部件的组合时,deploy的值为真,表示part有子部件需要分解,当part为单个零部件时,deploy的值为假,表示part无子部件需要分解;

deploy_direction_start和deploy_direction_end是用户定义的两组空间坐标,用于表示part在分解时的分解向量,(deploy_direction_end-deploy_direction_start)是part的正分解向量,(deploy_direction_start-deploy_direction_end)是part的负分解向量;

positive_children是part自根部件起沿正分解向量排列的n个子部件对应的子part数组part(1)、part(2)……part(n);

negitive_children是part自根部件起沿负分解向量排列的m个子部件对应的子part数组part(1)、part(2)……part(m);

步骤二,将步骤一所定义的多个part按照父子关系组合为装备分解树,则装备分解树包括父part和子part;

步骤三,按照递归法依次从装备分解树的父part到子part进行分解:指定装备分解树父part的一个部件为活动部件,父part的各子part按照定义的正分解向量/负分解向量进行分解;在父part完成分解的基础上,指定子part的一个部件为活动部件,子part的各子part按照定义的正分解向量/负分解向量进行分解,直到所有part都分解为单个零部件为止;

进一步地,活动部件为part的最外侧部件;

进一步地,part还具有deploy_zoom属性,deploy_zoom用于控制part的分解速度,当deploy_zoom>1时,分解速度加快,当0<deploy_zoom<1时,分解速度减慢;

进一步地,分解part时,part包含的各子part的位移不同,定义分解因子f(0<f<1),则在正分解向量上的子part的位移spart(n)为:

spart(n)=(deploy_direetion_end-deploy_direetion_start)f(a-n)

其中,n为正整数,a为常数;

在负分解向量上的子part的位移spart(m)为:

spart(m)=(deploy_direetion_end-deploy_direetion_start)f(a-m)

其中,m为正整数,a为常数。

应用本发明的技术方案,通过递归法对装备进行动态层进分解,解决了现有技术中工作量大、操作复杂、不具备通用性的问题。动态层进式装备零部件分解方法作为一种可以展示部件分解过程的认知方式,比静态分解更直观、更形象,可以大大提高部件认知效率。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面结合实施例来详细说明本发明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

现在,将更详细地描述根据本申请的示例性实施方式。然而,这些示例性实施方式可以由多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施方式。应当理解的是,提供这些实施方式是为了使得本申请的公开彻底且完整,并且将这些示例性实施方式的构思充分传达给本领域普通技术人员。

本发明提供了一种动态层进式装备零部件分解的实现方法,以unity插件(deploy)的形式给出了其实现程序进行实现,具体方法包括以下步骤:

步骤一,定义装备零部件:将装备的单个零部件或含多个子部件的组合定义为一个part,part具有deploy、deploy_direction_start、deploy_direction_end、positive_children和negitive_children属性;

deploy为布尔型,当part为含多个子部件的组合时,deploy的值为真,表示part有子部件需要分解,当part为单个零部件时,deploy的值为假,表示part无子部件需要分解;

deploy_direction_start和deploy_direction_end是用户定义的两组空间坐标,用于表示part在分解时的分解向量,(deploy_direction_end-deploy_direction_start)是part的正分解向量,(deploy_direction_start-deploy_direction_end)是part的负分解向量;

positive_children是part自根部件起沿正分解向量排列的n个子部件对应的子part数组part(1)、part(2)……part(n);

negitive_children是part自根部件起沿负分解向量排列的m个子部件对应的子part数组part(1)、part(2)……part(m);

步骤二,将步骤一所定义的多个part按照父子关系组合为装备分解树,则装备分解树包括父part和子part;

步骤三,按照递归法依次从装备分解树的父part到子part进行分解:指定装备分解树父part的一个部件为活动部件,父part的各子part按照定义的正分解向量/负分解向量进行分解;在父part完成分解的基础上,指定子part的一个部件为活动部件,子part的各子part按照定义的正分解向量/负分解向量进行分解,直到所有part都分解为单个零部件为止;

part的deploy函数代码如下所示:

这里将装备树上的一个部件定义为活动部件,用户可以在定义的分解向量上移动活动部件,活动部件移动的距离即为装备分解树的分解进度。活动部件移动距离越大,装备分解树分解的越松散。通常情况下,定义part的最外侧部件为活动部件,每一个deploy值为true的part都可以执行以上deploy函数进行分解。每一个part的分解运动都是相对父part的运动,这样子part才能在父part分解的基础上继续分解。

由于种种原因(某个部件需要着重强调,或大小、形状特殊),一个part可以自定义分解距离。part带有deploy_zoom属性,默认为1,用户可以根据实际情况设置。当part的deploy_zoom>1时,分解速度加快;当0<deploy_zoom<1时,分解速度减慢。用户可以调整不同part的deploy_zoom来设置合理的分解样式。

为了实现装备分解树分解后的合理性和美观性,在分解父part时,不同子part在分解向量上的移动距离是不同的,一般外层的子part移动距离大,内层的子part移动距离小,也就是说,分解父part时,父part包含的各子part的位移不同,且从外层到内层位移逐渐减小。这时需要引入分解因子f来实现,在本实施例里,定义分解因子0<f<1,则在正分解向量上的子part的位移spart(n)为:

spart(n)=(deploy_direetion_end-deploy_direetion_stsrt)f(a-n)

其中,n为正整数,a为常数;

在负分解向量上的子part的位移spart(m)为:

spart(m)=deploy_direetion_end-deploy_direetion_start)f(a-m)

其中,m为正整数,a为常数。

本发提的动态层进式装备零部件分解的实现方法以unity插件(deploy)的形式给出了其实现。

动态层进式装备零部件分解方式是一种能够根据装备层级关系,动态地展示不同层级上的部件分解过程以及分解进度可调节的零部件分解方式。本发明给出的实现方法,在装备分解树构建完成前提下,根据用户配置的分解属性,采用递归的方式对装备的所有零部件分解。同时装备的分解进度是用户可控制的,这样的分解方式更有利于用户的认知。

本发明给出的deploy插件,操作简单、灵活,上手容易,交互体验友好,无需二次编程。用户只需根据分解层级关系,构建装备分解树,并根据具体装备情况配置分解属性,就可以快速、便捷制作合理、美观的虚拟现实应用。deploy插件的应用可以大大提高装备零部件的分解效率。

从以上的描述中,可以看出,本发明上述的实施例实现了如下技术效果:

通过递归法对装备进行动态层进分解,解决了现有技术中工作量大、操作复杂、不具备通用性的问题。动态层进式装备零部件分解方法作为一种可以展示部件分解过程的认知方式,比静态分解更直观、更形象,可以大大提高部件认知效率。

需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施方式例如能够以除了在这里描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1