|
基于图像空间的数控加工图形仿真
|
|
 图3 边界点的计算
在求Dexel结构时,视线与毛坯求交的位置不同,有可能出现错误(见图3),图3中的3个点是不一样的。点A是毛坯的突出部分,计算涉及两个面,这一点对应柱体的厚度为零;点B属于两个面,但在计算时应看作一个点,柱体的厚度取决于其它面的计算结果;点C是毛坯轮廓上的点,对应柱体的厚度也为零。计算这种边界条件时,须认真控制计算误差,以保证不会出现错误。 2 算法的实现 基本的图像空间算法有很大的局限性。首先,当需要改变视点从另一方向观察时,需要重新计算;第二,它不能很好地推广到验证方面,因为不能充分地确定容差,尤其在工件的尺寸远大于容差或错误落在视区之外时;第三,差异的测量仅与一个任意选择的视线有关,而不是来自设计工件的模型数据。笔者对基本的图像空间算法作了改进,较好地解决了上述问题。 2.1 改变视点 能够改变观察位置,将有助于用户分析加工的正确性。但是,在基本的图像空间算法中,只要视点确定以后,数据结构也就确定了,仿真过程在这个数据结构上执行,即数据结构的生成只与视线方向有关,改变视点需要重新计算数据结构。 经过分析后发现,只要对当前的数据结构和算法稍加改进,就可以实现反向观察。因为每个Dexel结构都包含最远处的颜色信息,如果从反方向观察时,看到的颜色就是链表最后一项的颜色。但是,在切削计算和显示时必须区分当前的观察方向(正向或反向),为了使在反方向观察时依然能进行切削仿真,Dexel结构必须是双向链表。 另外,当保存多个同样的数据结构时,可以定义多个窗口和相应的观察方向,这样,可以向用户提供同时从几个方向观察加工过程的能力。事实上,如果定义两个窗口,并允许反向观察时,切削的大部分情况就可以表示出来了。在这种情况下,需要的存储空间和仿真时间都要多一些,因为需要保存和显示两套Dexel结构。 2.2 剖切观察 平行剖切是非常容易实现的,根据视线的方向和剖切平面(平行于任一个坐标平面),为每一个像素生成一个判定值,即Z值,在显示该像素时,将其Dexel结构中的Z值与判定值比较,以决定毛坯的哪一部分被显示出来。 用户选择任意剖切时,要求用户指定剖切平面和方向,同样需要根据视线的方向为每一个像素生成判定值,以决定毛坯的显示部位。用户必须用位于毛坯上的3个任意点来定义剖切面,如果用户选择的点不在剖切面上时,可以设定一个缺省值或指出错误。 2.3 数据测量 传统的图像空间离散方法被认为不能用于加工的验证中,因为数据的测量仅与一个任意选择的视线有关。但只要提高离散精度,就可为验证提供足够的信息,因为在毛坯与视线相交的每一点上,刀具的切削是足够精确的。因此可通过在屏幕上拾取点的方法得到毛坯在某一点的加工数据。 拾取点是屏幕上的像素点。利用生成和显示Dexel结构的算法,可以反算屏幕像素点对应的物体空间中的坐标,计算时应注意像素所对应的射线是每一个小正方形的中心。为了区分出当前用户拾取的点,要求将该像素以特殊的颜色显示。 拾取点的精度取决于毛坯的离散精度,即在投影平面上的采样频率。因为切削结果在样本点处是精确的,但在其它地方并没有提供任何信息。所以,增加样本点会提高精度,但这取决于用户对精度的要求。同时,增加样本点要求更多的存储空间和相对较长的仿真时间。因此,用户要在速度与精度之间折衷。 2.4 离散切削 切削的局部性和扫描线的相关性,有助于减少运算和显示的时间。在计算每一步的切削时,可以只考虑投影平面上与刀具有关的那部分Dexel结构。在任一步切削时,毛坯和刀具Dexel结构之间可以使用3种布尔运算的方法: (1)求出每步切削时刀具的扫描体,用扫描体和毛坯的Dexel结构进行布尔运算。但为每步切削求出刀具扫描体的Dexel结构将影响实时效果,同时,当扫描体出现自交时计算将非常复杂。 (2)求出刀具全部切削时形成的扫描体,以这个扫描体的Dexel结构与毛坯进行布尔运算。但是,要求对切削的每一步进行实时显示时,将很难控制。 (3)在两个刀位点之间进行插值,在每一个插值点用毛坯和刀具的Dexel结构进行布尔运算。插值的步长由用户根据精度、时间和空间要求来确定。较之前两者,这种方法简便可靠、易于实现。 2.5 显示颜色值的确定 因为仿真的目的是以色调图的形式将加工过程模拟出来,并不追求图形的真实感效果。所以,笔者忽略光照模型,以减化颜色值的计算,这种忽略大大有助于产生实时效果,且在图形效果方面并未有大的影响。 为更好观察仿真效果,对刀具、夹具、毛坯及毛坯上切削新产生的表面都定义不同的颜色;考虑到刀具可能切削夹具的情况,也需定义一种颜色。同时,每种颜色也须有一定数量的灰度级。 通常设定的毛坯为多面体,在确定不同灰度时,根据法矢方向来计算:某点法矢与视线方向的夹角越小,亮度越大;夹角越小,颜色越暗。刀具可以用圆柱体(平底刀)或加上半球体(球头刀)来表示,确定灰度用与毛坯同样的方法。 切削后新产生的表面是观察的重点,为了表现出刀具(球头刀)在加工表面形成的波浪感,它的灰度级应当是比较多的。确定这种灰度需要刀具信息的帮助,切削后某一点的灰度定义为,切削时与该点接触的刀具上相应点的灰度值。 2.6 缩放 为了实现缩放功能,可以用加大样本点的方法,在求Dexel结构时,并不是按屏幕窗口的分辨率来计算,而是求出更多的Dexel结构,在显示时进行减色处理(见图4)。例如,对于256×256分辨率的窗口按1024×1024生成Dexel结构,通常以256×256显示,需要的时候,就可以将该图的任一部分放大4倍。
搜索更多相关内容:
| |
| 声明:所载此文出于传递更多信息之目的,并不意味赞同其观点或证实其描述。数据仅供参考!
|
|
|
|
|