APP下载

包容盒干涉检查方法在Pro/E下的实现*

2010-09-11周尔民

制造技术与机床 2010年2期
关键词:规整射线顶点

周尔民

(华东交通大学研究生处,江西南昌 330013)

包容盒干涉检查方法在Pro/E下的实现*

周尔民

(华东交通大学研究生处,江西南昌 330013)

碰撞干涉检查在产品装配仿真中起着重要作用,包容盒方法可以有效地解决干涉检查固有的计算复杂性。根据产品零部件不同类型提出了三级精度包容盒相结合的快速干涉检查算法,并在Pro/ENGINEER环境下加以实现。通过人机交互界面应用于汽车变速器装配仿真过程中零部件之间的碰撞干涉检查。

包容盒 干涉检查 Pro/E 装配仿真

1 干涉检查的几种方法

干涉检查是产品装配仿真中的关键环节。干涉检查算法的效率高低直接关系到装配仿真系统的运行速度。

目前干涉检查算法主要有以下几种[1~4]:

(1)几何分析法 分析装配中任意两个零件之间各面间的关系,得到零件间的连接关系及运动自由度,基于运动自由度判别无冲突装配路径。

(2)扫描法 可用于两个零件间无冲突装配路径的检测,根据两个零件在一个装配方向上的投影及投影区域间的距离,判断是否存在无冲突装配路径。

(3)包容盒法 适用复杂环境中的碰撞干涉检查。通过建立对象的层次包容盒来逐渐逼近对象的几何模型,从而用体积略大而形状简单的包容盒代替复杂的几何对象参加碰撞干涉检查。通过包容盒间的相交测试快速地排除不相交的基本几何元素对,以减少相交测试的次数。若包容盒不相交,则零部件也不发生干涉。

(4)移动增量干涉检验法 是将扫描方法的空间进行分解,得到多段扫描区间。对每一步进行判断,如果在整个过程中所有的段均无干涉,则认为装配路径上无干涉。

其中包容盒干涉检查方法一是要求包容盒具有简单性,即应该是简单的几何体,至少应该比被包容的几何对象简单。不仅表现为几何形状简单、易于计算,而且包括相交测试算法的快速简单;二是要求包容盒具有紧密型,即应该尽可能地贴近被包容的几何对象。可以用包容盒与被包容对象之间的距离来衡量,距离越小,紧密性越好。紧密性直接关系到需要进行相交测试的包容盒的数目。

2 基于包容盒的干涉检查方法

根据复杂装配体不同的零部件类型,本文提出了一种三级精度包容盒相结合的快速定性干涉检查方法:

(1)沿全局坐标系规整包容盒干涉检查算法;

(2)方向包容盒干涉检查算法;

(3)规整包容盒再分割算法。

第一种方法计算量小、效率较高,但是包容盒经过规整后并入了一些非实体空间使精度有所下降;第二种方法不受包容盒规整的影响,精度较高,其计算量较前者要大一些;而对于不太规则的零件可采用第三种方法,对三维零件包容盒再进行分解。将以上三种算法结合起来就能在不过多增加计算量的同时,大大地提高检查精度。

2.1 沿全局坐标系规整包容盒干涉检查算法

沿全局坐标系规整包容盒算法是在装配仿真环境中将各个零部件都置于一个包容盒中,不管零部件的形状如何。也就是在装配坐标系内能够包容所有装配体几何特征的长方体,长方体的各面与坐标系的坐标轴平行或垂直,可以用两个点来表达,一个是左下角P0,一个是右上角 P1,数学表达为:E={P0,P1};

由于全局坐标系规整包容盒的各面与坐标系的坐标轴平行或垂直,可以利用两待检零件包容盒顶点的相互关系来判断零件间的干涉状况。

两包容盒分别为 Box1:P0(x0,y0,z0),P1(x1,y1,z1);Box2:P2(x2,y2,z2),P3(x3,y3,z3),如图 1 所示[5]。如果Box1的右上角顶点在Box2的左下角顶点之下,即 x1x3,y0>y3,z0>z3,满足以上三个条件的任意一个,则Box1,Box2不相交;反之则可能相交。

2.2 方向包容盒干涉检查算法

在装配中是沿斜对角方向放置的瘦长形几何体,如果采用上述全局坐标系规整包容盒,将留下很大的边角空隙,从而导致大量冗余的包容盒相交检查。

对此类零件可采用方向包容盒干涉检查算法。就是在零件坐标系内建立包容所有零件几何特征的长方体,且长方体的各面与零件坐标系的坐标轴平行或垂直。其最大特点就是它的方向的任意性,这使得它可以根据被包容对象的形状特点尽可能紧密地包容零件。方向包容盒干涉检查算法相对复杂一些,其关键是寻找最佳方向,并确定在该方向上包容零部件包容盒的最小尺寸。由于零件在装配过程中经历了平移和旋转运动,包容盒的各面已不与装配体的全局坐标系平行或垂直,因此不能用两个点来表达,而是由包容盒的8个顶点坐标来表达。数学表达为:E={P0,P1,P2,P3,P4,P5,P6,P7,PC},其中 PC 为各顶点间的连结关系,如图 2 所示[5]。

2.3 规整包容盒再分割算法

对于不规则的零部件,即非凸几何体,碰撞干涉检查的误差比较大。当凸凹零部件之间相交时,按照一般包容盒法已经发生了干涉,但实际上两个零部件并没有发生干涉碰撞。

对此类零件可采用规整包容盒再分割算法。虚拟环境下,假定每个零部件均有一个规整包容盒,在进行包容盒分割之前,对三维几何体用边界法B-Rep表示其各个顶点,并分别向X、Y、Z三个坐标轴投影,分别得到m、n、p个点,对这些点进行编号,记作xi(i=1,2,…,m),yj(j=1,2,…,n),zk(k=1,2,…,p),然后根据各个顶点的投影,对包容盒尺寸进行分割,并将编号进行排序。这样对应于三个坐标轴上的投影形成x、y、z三个独立数据链表。对数据点进行判断,可以组成有效数据对,通过该数据对的最高坐标和最低坐标可以组成一个小的包容盒,然后进行干涉检查判断[6]。

将上述三种算法结合起来用于产品零部件的干涉检查,能在不过多增加计算量的情况下提高检查精度。

3 算法在Pro/E环境中的具体实现

纵观以上的算法,干涉检查的求取实际上是先对包容盒的顶点的求取。由于在Pro/Engineer中,是以特征建模为基础,所以对于任意点的选取是很困难的,必须找出有效的方法来求取包容盒的顶点。

对于初级的包容盒,在Pro/Toolkit中有这样的函数ProSolidOutlineGet(),此函数的定义如下:

ProSolid为要计算其轮廓的实体,是输入参数;Pro3dPnt为在零件坐标系下得出的包容盒的两个对角线的顶点。此函数得到的顶点坐标是相对于缺省坐标系的。另外一个函数ProSolidOutlineCompute()通过输入一个变换矩阵,可以得到相对于任何位姿的坐标系的顶点坐标,其定义如下。

ProSolid为要计算其顶点坐标的实体;ProMatrix表示一个矩阵,是相对于基础坐标系的,得到的顶点方位是相对于这个矩阵位姿的;ProSolidOutlExclTypes是一个数组,为不考虑的外形特征,比如一些非几何的特征,他包括以下几种类型:PRO_OUTL_EXC_NOT_USED,PRO_OUTL_EXC_DATUM_PLANE,PRO_OUTL_EXC_DATUM_POINT,PRO_OUTL_EXC_DATUM_CSYS,PRO_OUTL_EXC_DATUM_AXES;Int为数组中被排除的类型的个数;Pro3dPnt为在特定位姿时的物体外形包容盒的两个顶点的坐标。

通过得到的两个对角线顶点就可以确定包容盒的8个顶点,并将其转换到装配坐标系下。遍历这8个顶点的x、y、z值,得到新的包容盒的对角线顶点。根据运动关系求出运动后的包容盒并进行干涉检查。通过此种方法得到的包容盒只能作为初级的包容盒检查,要得到精确度更高一级的包容盒,就需要得到更加精确的或者是更加紧密的包容盒的对角线顶点。在Pro/Toolkit中,有一种得到特征实体顶点的方法,叫做“射线求交法”。射线是由一个起始点和一个方向向量决定的,同时还有一个半径决定这束射线的照射半径。当射线穿过或碰到模型的某一个特征,那么这个特征就被选择,其函数的定义如下。

ProMdl为射线照射的零件或部件;射线的半径为double类型;ProRay*指向由起始点和照射方向决定的射线,ProSelection**为ProSlection类型的数组,为被照射到的几何特征,为输出参数;射线和实体几何特征相交的次数为int型。

然后通过另外一个函数ProSelectionPoint3dGet得到交点的坐标,其定义如下:

ProSelection**为所选择的物体;ProPoint3d表示一个点的坐标,是一个三维数组,是输出参数。

得到实体上点的坐标后,通过适当的筛选、转换得到描述这个实体的有效点,构建实体的较精确的包容盒。

射线的生成程序和点的求取程序此处省略。

对于零件级的包容盒,可以采用Pro/Engineer中提供的静态干涉检查的函数来进行,具体方法为:当规划零件的路径时,在关键点处,重设组件的位置,应用的函数如下:

其中,ProAsmcomppath为此零件的路径;ProBoolean为一个布尔类型。当为PRO_B_TRUE时表示路径变换是自零部件到装配体,否则的话为PRO_B_FALSE;ProMatrix为表示设定零件新位姿的矩阵。这种设定是在程序运行时期才有效。重设零件的位置,也就是零件的位置Pro/Engineer的内存中的位置得到改变,可利用函数pro_compute_interference来进行干涉检查。检查的结果可得到代表干涉曲面项的句柄的数目和干涉量。同时,可以多次运用此函数检查出零部件和周围其他的零件相干涉的情况。

4 应用实例

以某一型号汽车变速器操纵盖为应用对象,判断其装配仿真过程中零部件之间的碰撞干涉。

采用Pro/E二次开发模块Pro/Toolkit提供的菜单技术,制作与Pro/E风格一样的菜单。在Pro/E的装配模

式(Assembly Mode)启动后,出现主菜单和仿真菜单等,如图3所示。

“装配仿真”的功能是执行装配过程仿真操作。“装配规划”是一个下级菜单,其功能是对系统进行装配序列与路径的规划,点击这个菜单以后,会出现它的下级菜单如图4所示。点击“初步干涉检查”,系统会提示用户选择两个零部件,进行干涉检查。如果出现干涉,系统会询问是否展示干涉报告,回答“yes”,系统会给出干涉检查报告,如图5所示。

如果没有干涉,用户点击“选择装配计划”,系统要求用户选择一个零部件之后,消息栏会出现要求用户输入仿真的帧数,也即仿真的步长。当用户输入帧数以后,屏幕上就会按照用户的规定的步长和方向来演示该零部件的拆卸过程。

当该零部件的拆卸运动演示完毕之后,消息栏又会出现提示信息:Do you want interference detecting?(yes or no)。当用户输入yes之后,系统会提示选择要与之进行干涉检查的零部件,并在屏幕上显示这两个部件的包容盒,如图6所示。

系统会判断两个包容盒是否相交。如果相交,则系统会提示发生干涉,并给出相应的干涉报告。此时并不代表这两个零件真的干涉,还要进行下一级的干涉检查。这时系统会要求用户继续选择这两个零部件,进行零件级的干涉检查。如果此时还干涉,系统会给初干涉报告,同时退出装配规划;如果不相交,系统会记录下该零件的拆卸路径和拆卸距离。然后系统会提示用户继续选择下一零部件,并对其进行装配路径的规划。这样逐一对零件进行规划。规划完成后,信息文件将记录下刚才规划的结果。最后可将零件的可行装配路径输入到装配仿真模块中,作为装配仿真的输入信息。

5 结语

本文针对产品零部件的不同类型所提出的三级精度包容盒相结合的快速干涉检查算法,通过Pro/ENGINEER环境下的具体实现,能够方便快捷地判断产品装配仿真过程中零部件之间的干涉。并以某一型号汽车变速器的操纵盖为例进行印证,进而实现了汽车变速器虚拟装配仿真过程中所有零部件之间的碰撞干涉检查。

1 Stephane Redon,Abderrahaane Kheddat.Hierarchical Back-Face Culling for Collision Detection.IEEE,2002:3036 -3041

2 James T.Klosowski,Martin Held,Joseph S.B.Mitchell.Efficient Collision Detection Using Bounding Volume Hierarchies of κ-Dops.IEEE Transaction on Visualization and Computer Graphics,1998,4(1):21 -36

3 A.Iones,S.Zhukov,A.Krupkin.On Optimality of OBBs for Visibility Tests for Frustum Culling,Ray Shooting and Collision Detection.IEEE,2003:1078-1085

4 Kai POUTRAIN,Magali CONTENSIN.Dual Brep-CSG collision Detection for General Polyhedra.IEEE,2003.

5 高峰,吴俊军等.基于包容盒分解的快速干涉检验算法.计算机辅助设计与图形学学报,2000,12(6):435~440

6 王太勇,王国锋.基于HV分割的精确碰撞检测在虚拟设计中的应用.机械设计,2000,12(6):435~440

作者:周尔民,男,1962年生,教授,主要研究方向为CAD/CAM、虚拟制造技术。

(编辑 周富荣)(收修改稿日期:2009-08-10)

如果您想发表对本文的看法,请将文章编号填入读者意见调查表中的相应位置。

Implementation of Bounding Box Interference Checking Based on Pro/E

ZHOU Ermin
(Graduated Department,East China Jiaotong University,Nanchang 330013,CHN)

Collision and interference detection plays an important role in virtual assembly of mechanical product.This method can decrease the intrinsic computational complexity of Collision and interference detection effectively.According to different type of product parts,a fast algorithm combined plain grade and bounding box for detecting collision and interference is introduced and implemented in Pro/ENGINEER this paper.It is applied to the collision interference detection between the parts of automobile transmission in the process of virtual assembly by method of man-machine interface.

Bounding Box;Interference Checking;Pro/E;Assembly Simulation

* 江西省教育厅重点科技项目:汽车变速箱虚拟制造技术 (赣教20020804)

10234

猜你喜欢

规整射线顶点
“教学做合一”在生成课程背景下构建区角游戏开展
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
“直线、射线、线段”检测题
300kt/a硫酸系统规整填料使用情况简介
『直线、射线、线段』检测题
赤石脂X-射线衍射指纹图谱
提高日用玻璃陶瓷规整度和表面光滑度的处理方法
电梯的建筑化艺术探索
γ射线辐照改性聚丙烯的流变性能研究