信息化 频道

基于KF的特征识别技术研究

1 前言
     特征建模是在几何造型的基础上发展起来的,几何造型经历了二维线框造型、三维线框造型、曲面造型、实体造型、特征造型的演变过程。特征是构成产品的基础,是现代三维建模不可缺少的工具。在UGNX中,特征种类有:体素特征、形体特征、功能特征、参考特征、阵列特征。通过特征建模,可以使三维模型具有如下特点:

  •     参数化设计和尺寸驱动
  •     智能约束管理机制
  •     特征重排时序
  •     先进的模型编辑:删除、替代、移动等
  •     支持非参数化、非特征实体和曲面

     在工程应用中,有时要求直接从非参数化的三维模型中抽取出相关的特征信息,用于后续的操作。如从其它的CAD系统转换到UG中的三维模型,这时,相关的特征信息就会丢失,相应的三维模型就成为所谓的非参数化模型,无法直接用UG的相关工具来生成加工信息,此时就需要用特征识别的方法从现有的几何元素(点、线、面)之间的拓扑关系来分析得到特征信息。


     孔类特征在UG模型中是一种常见的基本特征,在加工过程中,对孔类特征生成加工代码也是一种基本操作。对于UG系统生成的特征,UG已经提供相关工具来自动生成加工代码。但是如果从其他CAD系统的模型,如Pro/E的三维模型,转换到UG中的时候,自动控制转换所需的相关信息就会丢失,此时,就需要用二次开发工具开发相应的应用程序来进行特征识别,用特征识别的方法来获取生成后续操作所需的信息。


     每一类特征都有其特定的模式,特征识别的一种方法就是搜索零件模型,寻找符合特征模式的区域,进行识别出零件中所包含的特征[1]。这种方法被称为基于边界匹配的特征识别方法,其基本步骤如下:

  •     搜索零件的边界表示,并将其与每一类特征的模式进行匹配
  •     确定已识别的特征的参数,并构造相应的几何模型
  •     对能合并成组合特征的基本特征进行组合

     本文论述的方法即是一种基于边界的特征识别,首先要建立特征的模式,也就是特征库,然后从零件模型中检索特征信息,与特征库中的模式进行匹配,被匹配特征就是被识别出来的特征,最后通过获取的孔的特征数据生成孔的加工代码。

    2 建立三维特征识别的知识库
    在UGNX中,孔特征有三种:简单孔,台阶孔,沉头孔。
    孔特征的信息包括:特征参数和定位参数。
    首先,建立孔特征的特征库,从三种孔特征又可以引申出通孔与非通孔。因此,共有6种相关的特征模式:

  •     通的简单孔
  •     通的台阶孔
  •     通的埋头孔
  •     非通的简单孔
  •     非通的台阶孔
  •     非通的埋头孔

     如果要考虑孔特征的安置面、穿透面的类型,又有平面与非平面的区别,这里只涉及以平面为安置面、穿透面的孔特征。因此,得出下列6个孔特征的示例图:
 
     每个特征都拥有特定的几何元素,这些几何元素都有特定的拓扑关系,这些就构成了每个特征区别于其它特征的属性,也就是依赖这种特定的属性才能进行特征识别。
    对于每个特征都有相应的特征参数,它们分别为:
    1)通的简单孔:孔直径,孔深度
    2)通的台阶孔:台阶孔直径,台阶孔深度,孔直径,孔深度
    3)通的沉头孔:埋头孔直径,埋头孔角度,孔直径,孔深度
    4)非通的简单孔:孔直径,孔深度,顶端角
    5)非通的台阶孔:台阶孔直径,台阶孔深度,孔直径,孔深度,顶端角
    6)非通的沉头孔:埋头孔直径,埋头孔角度,孔直径,孔深度,顶端角
    通过对孔的特征识别,可以获得以上各种类型孔的参数,用这些获得的参数可以重建特征,也可以用来生成孔特征的加工代码。


    3 用KF语言实现推理机制
    KF语言是UG提供的知识熔接工具,通过使用KF可以进行UG的二次开发工作。KF语言提供了一系列获取UG三维模型几何数据的方法,按几何类型分类有:
    1) 获取线信息的函数
     ug_curve_askStartPoint
     ug_curve_askEndPoint
     ug_curve_askArcLength
     ug_curve_askPointOnCurve
    2) 获取面信息的函数
    ug_face_askType
    ug_face_askNormal
    ug_face_askTangents
    3) 获取体信息的函数
    ug_body_askFaces
    ug_body_askEdges
     使用KF提供的函数,首先获得几何元素的形状,位置,方向的信息,然后,通过这些离散的信息来构建几何元素之间的拓扑关系,最后,通过与知识库中的特征模式进行匹配,就可以识别特征。如非通的简单孔,是由孔的安置平面,孔的圆柱面以及一个锥形顶面构成的。它们的链接关系为:

     孔的安置平面与孔的圆柱面通过孔的圆柱面的一条边相接,孔的顶锥面与孔的圆柱面通过孔的圆柱面的另一条边相接,同时,孔的安置平面与孔的圆柱面的交线在孔的安置面应该是一个封闭Loop,孔的圆柱面与孔的顶锥面应该是同轴。


     确定了特征所具有的属性后,就可以来确定搜索顺序:
    1)搜索平面上所有的封闭Loop,对只拥有一条边的Loop,进行下一步骤。
    2)从安置面出发,确定Loop的另一个相连面是一个而且仅是一个圆柱面。如果是圆柱面则进行下一步骤。
    3)找出圆柱面的另一个相对的Loop,此时记下,两个Loop之间沿圆柱面轴向的距离H。
    4)如果与第3)步中确定的Loop相连的面是圆锥面,则可以确定这三个面构成了一个简单的非通孔,H就是孔的深度,圆柱面的直径就是孔的直径,否则,进行其它特征的识别。
    以上的算法只是针对简单的非通孔,遵循同样的原则也可以确定其它几种孔的特征识别算法。


    4 结论
    在UG平台上开发特征识别的功能,可以解决从其它CAD系统转换到UG中的模型的非参数化问题,为加工过程提供必要的数据。本文提出的特征识别算法主要针对一些独立的简单特征进行识别,如果要对复杂特征,如用简单特征进行布尔操作之后产生的特征进行识别,就要在此方法基础上进行改进。(E-works)

0
相关文章