发布企业信息

基于特征抑制的UG CAD模型自动简化技术(下)

作者:  信息来源:模具  2006-9-11

字体大小:  网友评论  进入论坛  

…… (式2-1) 对于每一类建模特征,都有多个控制参数用于控制该类特征,例如,对于倒角特征来说,有图4所示的多种建模方法和多个控制参数[5]。简化误差控制参数阀值对每类可简化特征的各种具体的建模方法计算相应的控制参数阀值。 ...
                             

……  (式2-1)
   

    对于每一类建模特征,都有多个控制参数用于控制该类特征,例如,对于倒角特征来说,有图4所示的多种建模方法和多个控制参数[5]。简化误差控制参数阀值对每类可简化特征的各种具体的建模方法计算相应的控制参数阀值。

图4 倒角特征的三种建模方法及其控制参数

    2.3 简化规则构造及实现

    通过对机械类产品UG模型的理解和分析并结合UGII中建模特征,总结出以下模型简化规则,可以看到,这些可简化特征基本都属于UG主建模特征中的细节特征。

 抑制倒角(对应于Chamfer建模特征)
 抑制倒圆角(对应于Blend建模特征)
 抑制螺纹(对应于Thread建模特征)
 抑制退刀槽(对应于Groove建模特征)
 抑制小孔(对应于Hole建模特征)
 抑制凸台(对应于Pad、Boss建模特征)
 抑制凹槽(对应于Pocket、Slot建模特征)

    简化规则的实现采用函数对应的方式,一条简化规则对应于一个简化函数。这样的构造方法有利于简化规则库的扩展和更改,一旦重新加入另一条简化规则,就可以很容易的对现有模块进行扩充而加以实现。

    简化函数采用UG OPEN API函数以及C语言构造,简化函数的实现中的最重要的问题是UG模型中对象的提取与匹配,UG模型中包含的对象包括几何实体对象和非实体对象。几何实体对象包括实体、面、线、点等。非几何对象包含坐标系对象、对象尺寸、颜色、线型、属性对象等等。每个UG对象都可以通过唯一的对象标识(tag)来引用。如下的代码段用于获取一个UG CAD文件中所有的建模特征标识以及特征名称:

tag_t part1;//打开零件模型的标识
 UF_PART_load_status_t error_status;
 int type=UF_feature_type;//需要遍历的对象类型 
tag_t feature=NULL_TAG;//定义特征标识
tag_t * fea_tags=0;//定义特征标识指针
int I_count=0,feature_count;//用于获取模型中的特征数量
 UF_PART_open(partname,&part1,&error_status);//打开模型文件
 UF_OBJ_cycle_objs_in_part(part1,type,&feature);
 while(feature!=NULL_TAG)
 {  I _count++;
  UF_OBJ_cycle_objs_in_part(part1,type,&feature); }
feature_count=I_count;//得到模型中的所有建模特征的数量
fea_tags =new tag_t[feature_count]; //为指针分配空间
char* fea_names[500];//定义指针,假定文件中特征数量不大于500个
{for(int i=0;i< feature_count;i++)
 fea_names[i]=new char[133]; //为指针分配空间 }
 {  feature=NULL_TAG;
  for (int i=0;i< feature_count;i++)
  {
 UF_OBJ_cycle_objs_in_part(part1,type,&feature); //获取文件中每一个特征的标识
 fea_tags[i]=feature; //把特征标识存入数组
 UF_MODL_ask_feat_name(feature,&feature_name);//获取文件中每一个特征的名称
 strcpy(fea_names[i],feature_name);//把特征名称存入数组
  }
 }
  
    图5的程序框图用于删除UG CAD模型中的倒角半径小于误差控制阀值的所有倒圆角特征。

图5 抑制倒圆角特征算法程序框图

    2.4 特征间的父子关系

    UG模型中的几何对象是有序的,它们一一对应于涉及零件形体改变的每一步操作,系统根据对象间的依赖关系给出对象间的父子关系,所有特征节点都是依赖于其父特征节点作为其定位或其它操作的依据,一定删除某个父节点特征,那么该特征所属的所有子节点特征就会失去参考依据,从而引起模型更新的错误或该节点所有子特征信息的丢失,图6是一个倒圆角特征在某个模型中的父子依赖关系示例,该特征依赖于一个立方体特征,一旦删除该立方体特征,该倒圆角特征就会丢失。

    在进行特征抑止的时候应充分考虑特征间的父子关系,如果某个可被抑止的特征是作为其它不可抑止特征的父特征存在的时候,那么该特征应该从可抑止特征列表中移除,如下函数用于获取某个建模特征的父子依存关系:

extern int UF_MODL_ask_feat_relatives (
tag_t feature_tag,
int * num_parents,
tag_t ** parent_array,
int * num_children,
tag_t ** children_array );

    3 结论

    在实际应用中,经常需要把CAD模型转换输出作为VR模型的输入来源,我们采用VC6和UG OPEN API开发了一个CAD模型简化模块,该模块采用MFC对话框进行界面设计,图7是其运行主界面,该模块在UG内部环境下(Internal)运行,运行时输入UG CAD文件所在文件夹及其它设置,系统自动对该文件夹下所有UG CAD文件进行模型简化,从而大大提高工作效率。

    图8中a)是对每条边倒圆角半径为2的10*10*10mm3的立方体直接进行三角剖分的效果,共有108个三角形组成。b)是该立方体进行模型简化以后(倒圆角特征被抑制了)的三角剖分效果,仅需12个三角形就完成了描述。对上述两图的三角剖分的表面距离容差、曲线距离容差均为1mm。图9是对一个盖子模型的处理结果比较,表面距离容差为2mm。

    CAD模型的简化可以大大减少模型中的细节特征,减少模型中参数曲面和公共边界曲线的数量,由于这些细小特征所在的区域通常是模型离散和三角剖分以后三角形密度比较集中的区域,因此,本文提出的方法可以大大减少最终模型的三角形面片数量。

    本方法实用性强、操作方便,可以大大减少模型简化的工作量,并可以把简化误差严格控制在用户的指定范围内,目前已经在多个项目中取得了较好的使用效果,相信本技术会得到越来越广泛的应用。
 

分页:
Google


推荐图文

广告

机械热点图文

  • 数控车床加工编程典型实例分析2
  • 内螺纹车削加工——数控车床编程实例42
  • 子程序编程方法-数控车床编程实例36
  • 塑料模具动画演示

机械风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》