UG二次开发中,如何遍历得到面的tag

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UG二次开发中,如何遍历得到面的tag相关的知识,希望对你有一定的参考价值。

请教各位高手一个问题:比如说,我在UG中建立了一个简单的长方体,我现在想通过自己写一个二次开发的小程序通过这个程序,为这个长方体的6个面,自动添加属性要实现这个功能,应该是需要遍历得到各个面的tag,然后通过循环为各个面创建属性并赋值现在的问题是,我不知道使用什么函数可以遍历得到面UF_OBJ_cycle_objs_in_part(partTag,UF_face_type,&cycleTag);这个函数好像不可以请问大家有知道的吗?谢谢了~

你先建的长方体,可以得到长方体features的tag; 需要根据特征的tag找到对应的body的tag;然后通过遍历body,找到所有的面;以下是参考函数:int UF_MODL_ask_feat_body(tag_t feature_obj_id, tag_t * body_obj_id )int UF_MODL_ask_body_faces(tag_t body, uf_list_p_t * face_list )通过面的类型type可以筛选出需要的面 参考技术A 先建长方体,得到长方体features的tag; 需要根据特征的tag找到对应的body的tag;然后通过遍历body,找到所有的面;以下是参考函数:int UF_MODL_ask_feat_body(tag_t feature_obj_id, tag_t * body_obj_id )int UF_MODL_ask_body_faces(tag_t body, uf_list_p_t * face_list )通过面的类型type可以筛选出需要的面 。 参考技术B 先建长方体,得到长方体features的tag; 需要根据特征的tag找到对应的body的tag;然后通过遍历body,找到所有的面;以下是参考函数:int UF_MODL_ask_feat_body(tag_t feature_obj_id, tag_t * body_obj_id )int UF_MODL_ask_body_faces(tag_t body, uf_list_p_t * face_list )通过面的类型type可以筛选出需要的面 。 参考技术C UF_MODL_ask_body_faces 首先通过这个函数获得所有面,会得到一个面的链表,再用UF_MODL_ask_list_item语句获得各个面,用一个循环语句,赋予属性即可(from kmold.cn)

UG NX二次开发(C#)--建模--识别曲面类型(圆柱面)

获取所有圆柱面

简介

我们以一个获取所有圆柱面的例子来说明如何获取某一类型的曲面。圆柱面是比较典型的曲面,比如倒圆曲面就是圆柱面,如果想删除自动识别倒圆曲面并删除这个曲面,则必须要识别出圆柱面。我们设计一个小界面,按钮“获取所有圆柱面”执行遍历所有圆柱面的代码,如下图所示。

识别曲面类型代码

在按钮的响应中,添加如下代码:

List<Face> cylinderFaceList = new List<Face>();  //定义圆柱面的链表,并初始化
BodyCollection bodyCollection = workPart.Bodies;         //获得工作部件的体集合
Body[] bodies = bodyCollection.ToArray();        //将体集合转换为体数组
//对每个体进行遍历操作
foreach(var bd in bodies)

	//获得体的所有曲面
	Face[] faces = bd.GetFaces();
	//对买个面进行遍历操作
	foreach(var fc in faces)
	
		//判断这个面是不是圆柱面
		if(fc.SolidFaceType==Face.FaceType.Cylindrical)
		
			//将圆柱面存储在链表中
			cylinderFaceList.Add(fc);
		
	

//输出圆柱面的个数
MessageBox.Show("圆柱面的个数为:" + cylinderFaceList.Count.ToString());

生成dll,并运行程序,对于UG NX视图区的模型(如下图所示):

点击“识别所有圆柱面”按钮,则识别结果如下:

以上是关于UG二次开发中,如何遍历得到面的tag的主要内容,如果未能解决你的问题,请参考以下文章

UG NX二次开发(C#)--建模--识别曲面类型(圆柱面)

UG NX二次开发(C#)--建模--识别曲面类型(圆柱面)

UG NX二次开发(C#)-分析-测量曲面的面积

UG NX二次开发(C#)-分析-测量曲面的面积

UG NX二次开发(C#)-建模-获取圆柱面信息(轴向半径深度)

ug二次开发,grip获取圆柱面直径的函数?