APP下载

基于Mel的仿真模型干涉检测方法研究*

2018-10-09库祥臣张国庆

组合机床与自动化加工技术 2018年9期
关键词:面片交点四边形

库祥臣,张国庆,梁 怡

(河南科技大学 机电工程学院,河南 洛阳 471003)

0 引言

生产线设计过程中引入虚拟仿真技术,在虚拟环境下建立生产线相关设备模型并进行虚拟布局,可以快速确定设备的相互位置关系、优化生产流程、缩短生产线设计周期;改善二维图纸化生产线设计方法直观效果差、较为依赖设计经验、存在成本高及周期长等问题[1]。

据相关数据显示,部分企业生产线空间规划不合理,导致物料运输距离过长、空间利用率低,降低了生产效率,压缩了企业的效益空间,因此企业对于生产线设计质量提出了更高的要求[2]。铺设生产线所需要的空间包括设备各自的工作空间、设备间的隔离空间、改造及维护空间等。利用仿真软件Maya进行生产线虚拟布局,能够对生产线设计方案进行优化,在保证生产线设备具有足够的冗余空间的同时,提高生产线空间的利用率[3]。生产线仿真过程中设备数量较多且位置关系复杂,设备的工作空间普遍存在交叉情况,压缩生产线建设空间的同时,需要对设计方案中设备分配空间进行干涉检验,避免在生产线建设过程中出现空间不足使设备难以安装或生产线建设完成后出现工作空间交叉导致设备无法正常使用,造成人力、物力的损失。

基于对象分解的干涉检测算法,将实体模型分解为组成模型的子级元素,对子级元素进行相交测试,进而判断原始模型实体是否存在干涉现象[4-5],该算法检测准确率高且实现过程简单,但需要对所有组成元素进行相交测试。针对对象分解干涉检测算法在子级元素较多时,运算量大导致算法性能急剧下降的问题[6-7],在实体模型分离之后,根据子级元素与实体空间距离对子级元素集合进行筛选,对筛选出的子集进行干涉检测,减少了检测过程的计算量,可以有效提高检测效率。

1 生产线虚拟仿真

Maya作为市场上常用的计算机图形创建工具之一,在实体模型建立、虚拟场景制作、动画仿真、个性化功能扩展等方面较常用的工业建模软件在生产线仿真应用中有着明显优势[8]。

多边形建模作为Maya中常用的建模方法,采用多段直线拟合实体边,对实体造型具有更强的控制能力;将实体分为点、线、面等子对象,对子对象进行编辑可以实现对实体模型的修改。采用多边形建模时,首先分析目标设备造型,将设备模型分割为近似的基本多边形实体,建立初步模型;然后利用辅助多边形实体,通过布尔交、差、并等操作完成模型主要特征,进行模型的细节修改形成最终实体造型;最后调整多边形面片的UV、法向等,对设备模型进行渲染,输出最终模型文件。

完成生产线设备模型建立之后,新建Maya场景文件,将模型文件导入(Import)到场景中,在模型属性对话窗口中设置位姿相关属性(Translate、Rotate),调整至场景中的目标位置。依次将完成的生产设备模型导入到布局场景后,完成生产线的虚拟布局如图1、图2所示。

图1 控制平台模型 图2 生产线虚拟布局

在生产线虚拟布局的基础上进行生产过程仿真,主要包括场景设置、关键帧序列的编辑、仿真结果的渲染输出等。采用基于关键帧编辑模式的Mel Script动画技术[9],在脚本编辑器(Script Editor)中完成关键帧序列的制作。关键帧编辑完成后,将仿真结果渲染并输出为扩展名为.avi的文件。对生产过程仿真的主要步骤如图3所示。

图3 生产过程仿真流程

2 模型干涉检测算法

虚拟环境下,模型间的位置关系存在交叉、分离、包容三种情况。在模型间距离或干涉集较小时,需要对模型间是否产生干涉进行准确检测。

2.1 模型实体的分解

实体模型存着干涉时,组成实体的面片必定存在相交情况[10]。采用对象分解的干涉检测方法,将组成两实体的面片分为两个四边形面片集合,对集合中的面片与另一集合中的所有面片进行相交测试,若两测试面片存在相交情况,可以判断两实体相交;若所有面片均不相交,则说明两实体相互分离[11]。当两个面片集合分别含有m、n个面片时,最坏情况下需要进行m×n次面片相交测试,面片较多时算法效率急剧下降。

生产线设备模型多为规则表面,采用基于实体距离的筛选条件对两个面片集合进行筛选,可以有效提高检测效率。面片与实体均为空间结构,通过式(1)所示对面片与实体各个顶点的坐标求平均值,作为实体与面片的中心坐标;通过式(2)计算中心点的距离作为实体间距离的近似表达。

(1)

式中,vi(x,y,z)为实体的各个顶点坐标。

(2)

图4 实体干涉检测过程

2.2 四边形面片相交测试

两面片相交时,组成面片的边与另一面片存在公共点。面片相交测试可转换为面片组成边与另一面片的公共点的求解,若边线与面片存在公共点,则两面片相交;若所有边线与面片不存在公共点,则两面片不相交。面片相交检测步骤如图5所示。

图5 面片相交检测过程

在判定面片相交过程中,首先要求得面片所在平面方程、面片组成线段所在的直线方程。设需要进行判定相交的面片为S1(p1,p2,p3,p4),S2(q1,q2,q3,q4),面片S1的顶点坐标矩阵A1如下:

面片S1的组成边所在直线的向量矩阵B1为:

面片S1上点p1、p2边所在直线L12方程如式(3)所示,其他边所在的直线方程具有类似形式。

(3)

式中,k为任意实数,Bij为矩阵B1中第i行第j列元素。

求解齐次方程组B1·λ=0,可得面片S1所在平面的法向量λ。四边面片S1的四条边线在同一平面内,向量矩阵B1的秩为2。假定矩阵B1第1、2行元素不对应成比例,将矩阵B1对角化为矩阵C:

取λ3=1,根据对角阵C有:

向量λ=(λ1,λ2,λ3)即为S1所在平面的一个法向量,S1所在的平面方程为:

λ1x+λ2y+λ3z-λ1p1x-λ2p1y-λ3p1z=0

(4)

类似有面片S2所在的平面方程为:

γ1x+γ2y+γ3z-γ1q1x-γ2q1y-γ3q1z=0

(5)

式中,γ=(γ1,γ2,γ3)为S2所在平面的一个法向量。

求得直线向量及平面法向量后,若点积γ(B11,B12,B13)=0,则直线与平面平行,此时两面片处于临界位置,视为线段与面片不相交;若γ(B11,B12,B13)≠0,则进一步求解边线与平面的交点。联立式(3)、式(5)并求解方程组,可以得到直线方程L12中的参数k。

直线L12与平面S2的交点P坐标为:

P(B11·k+p1x,B12·k+p1y,B13·k+p1z)

2.3 交点位置判定

判断线段与面片是否存在公共点,需要根据线段所在直线与面片所在平面的交点位置进行判断。若交点在线段上且在面片内时,线段与面片相交,即两面片相交;若交点不在线段上或不在面片内,线段与面片不相交,所有边线与均面片不相交时,两面片不相交。

判断交点P是否在线段L12内,可根据线段两端点所确定的坐标范围,当交点坐标满足式(6)时点在线段上。

(6)

采用面积算法判断点是否在四边面片S2区域内时,需要计算四边面片S2的面积。将空间四边面片按点q1,q3所在对角线划分为两个三角形面片F1(q1,q2,q3)和F2(q2,q3,q4),计算两个三角形面积f1,f2,面积f1可由公式(7)求得。按照q2,q4所在对角线划分,可得f3,f4。

(7)

建模过程中对模型点、边的调整,四边形面片形状复杂,组成模型的面片存在部分凹四边形。如图6所示,当面片为凹四边形时,选择不同对角线面积的计算结果不同,计算四边形面积,分为两种情况:

(1)当f1+f2=f3+f4时,四边形面片S2的面积f=f1+f2,将交点P与四边形S2四条边线组成四个三角形并计算面积和f′,面积和等于四边形面积f时,点在面片区域内,面积和f′大于四边形面积f时,交点在面片区域外。

(2)当f1+f2≠f3+f4时,面片为凹四边形,四边面片S2的面积为f=min(f1+f2,f3+f4)。选择划分后面积和较小的对角线,将四边面片划分为两个三角形,判断点P是否在两个三角形区域内,进而判断点是否在该面片区域内。判断点在三角形区域内方法,与情况1相同。

图6 凹、凸四边形面片

3 Mel Script干涉检测

Mel是Maya的内嵌脚本语言,语法类似于C、C++等,包含丰富的指令系统,可以获取实体的相关信息,对实体进行位置、渲染等属性进行设置,能够以更加强大的方式对Maya进行控制。

Mel Script通过丰富的指令系统,以模型实体名称为参数,获取面片包含顶点数、顶点坐标等模型统计信息;采用特殊数据类型martrix定义参数矩阵,求解各个参数矩阵,进行组成实体模型面片的相交检测;检测完成后,利用渲染指令对存在相交的面片高亮显示。

在Maya软件中建立200×200×200的基本立方体pCube1,设置平移矢量为(200,-170,-100)、坐标方向细分数均为4;φ200×300的基本圆柱体pClinder1,设置中心坐标为(50,30,20)、轴向细分数为20、高度细分数为4、端面细分数为3。对实体pCube1、pClinder1进行干涉检测,结果如图7所示。

图7 干涉检测示例

对模型进行干涉检测的仿真结果表明:采用基于Mel Script的对象分离干涉检测方法,在经过筛选的面片子集上能准确检测出实体干涉现象,提高了干涉检测计算效率,较好的满足了生产线设备在Maya仿真软件中进行虚拟布局时干涉检测的需要;对实体的干涉部分面片进行高亮显示,增强了生产线虚拟仿真的真实性有效性。

4 结束语

在仿真软件Maya中,采用多边形建模方法,完成了生产线设备模型建立并进行布局仿真,实现生产线的设计方案的可视化表达,改善了二维图纸化生产线设计方案可视化效果不明显的问题。基于对象分解的干涉检测理论,将模型实体分解为组成模型实体的四边形面片集合,根据子级对象与目标实体间的距离对离散集合进行筛选,利用Mel Script实现对生产线布局中模型实体的干涉检测,解决了虚拟仿真过程中设备工作空间难以检验的问题。仿真结果表明,该检测方法可以快速准确的完成实体干涉的检测,对Maya环境下生产线的虚拟仿真有重要的参考价值。

猜你喜欢

面片交点四边形
三维模型有向三角面片链码压缩方法
初次来压期间不同顶板对工作面片帮影响研究
圆锥曲线内接四边形的一个性质
阅读理解
四边形逆袭记
借助函数图像讨论含参数方程解的情况
试析高中数学中椭圆与双曲线交点的问题
甜面片里的人生
青海尕面片
指数函数与幂函数图象的交点的探究性学习