……
(式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模型的简化可以大大减少模型中的细节特征,减少模型中参数曲面和公共边界曲线的数量,由于这些细小特征所在的区域通常是模型离散和三角剖分以后三角形密度比较集中的区域,因此,本文提出的方法可以大大减少最终模型的三角形面片数量。
本方法实用性强、操作方便,可以大大减少模型简化的工作量,并可以把简化误差严格控制在用户的指定范围内,目前已经在多个项目中取得了较好的使用效果,相信本技术会得到越来越广泛的应用。

[摘要]针对级进模排样的特点以及人...

您知道全球最小的机器人到底有多小呢。这么小的机器人到底有什么样的法宝呢。中国台湾...

前言 线切割加工通过电极丝与导电工件之间放电腐蚀成型来完成工件加工,由于是非接触加...

方亨志:迦南科技集团有限公司董事长、政协第八届永嘉县委员会委员、浙江省机械工业协...

浙江德喜阀门有限公司——董事长 浙江德喜农业综合开发有限公司——董事长 永嘉人民政...