NX二次开发常用函数——获取边对应的面 UF_MODL_ask_edge_faces

使用UF_MODL_ask_edge_faces()函数可以获得以下几种常见面的类型:

UF_MODL_CYLINDRICAL_FACE 16 //圆柱面

UF_MODL_CONICAL_FACE 17 //圆锥面

UF_MODL_SPHERICAL_FACE 18 //球面

UF_MODL_TOROIDAL_FACE 19 //环形面

UF_MODL_SWEPT_FACE 20 //扫略面

UF_MODL_PLANAR_FACE 22 //平面

UF_MODL_BLENDING_FACE 23 //面倒圆

UF_MODL_PARAMETRIC_FACE 43 //参考面

UF_MODL_OFFSET_FACE 65 //偏移面

//判断两个边是否在同一面上

cpp 复制代码
//判断两个边是否在同一面上
BOOL NXOpen_LongRoundHole::IsEdgeOnFace()
{
	try
	{
		////获得选中面的标识
		//PropertyList*  faceSelectProps = face_select0->GetProperties();
		//std::vector<NXOpen::TaggedObject *> face = faceSelectProps->GetTaggedObjectVector("SelectedObjects");
		//delete faceSelectProps;
		//faceSelectProps = NULL;

		//获得选中边的标识
		PropertyList*  edgeSelectProps = edge_select0->GetProperties();
		std::vector<NXOpen::TaggedObject *> edges = edgeSelectProps->GetTaggedObjectVector("SelectedObjects");
		delete edgeSelectProps;
		edgeSelectProps = NULL;

		//通过边查询面的TAG,进行比较
		std::vector<tag_t> faces;
		for (int i = 0; i < (int)edges.size(); i++)
		{
			uf_list_p_t listFace = NULL;
			UF_MODL_create_list(&listFace);
			UF_MODL_ask_edge_faces(edges[i]->Tag(), &listFace);
			for (uf_list_p_t temp = listFace; temp != NULL; temp = temp->next)
			{
				int type = 0;
				UF_MODL_ask_face_type(temp->eid, &type);
				if (type == UF_MODL_PLANAR_FACE)
				{
					faces.push_back(temp->eid);
				}
			}
			UF_free(listFace);
			listFace = NULL;
		}
		/*
        UF_MODL_CYLINDRICAL_FACE     16 //圆柱面
        UF_MODL_CONICAL_FACE         17 //圆锥面
        UF_MODL_SPHERICAL_FACE       18 //球面
        UF_MODL_TOROIDAL_FACE        19 //环形面
        UF_MODL_SWEPT_FACE           20 //扫略面
        UF_MODL_PLANAR_FACE          22 //平面
        UF_MODL_BLENDING_FACE        23 //面倒圆
        UF_MODL_PARAMETRIC_FACE      43 //参考面
        UF_MODL_OFFSET_FACE          65 //偏移面
		*/
		if (faces[0]== faces[1])
		{
			return 1;
		}
	}
	catch (exception& ex)
	{
		//---- Enter your exception handling code here -----
		NXOpen_LongRoundHole::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
	}
	return 0;
}
相关推荐
白雪公主的后妈2 天前
NX二次开发——NX二次开发-检查点是否在面上或者体上
nx二次开发
白雪公主的后妈2 个月前
NX二次开发——设置对象的密度(UF_MODL_set_body_density)
nx二次开发·常用函数
白雪公主的后妈2 个月前
NX二次开发——BlockUI 弹出另一个BlockUI对话框
c++·nx二次开发·block ui
青云交4 个月前
大数据新视界 -- 大数据大厂之 Hive 函数库:丰富函数助力数据处理(上)(11/ 30)
大数据·数据库·sql·数据处理·自定义函数·函数分类·常用函数·hive 函数库
南风与鱼9 个月前
自动化测试常用函数:弹窗、等待、导航、上传与参数设置
自动化测试·弹窗·常用函数·等待·浏览器导航
bobo-rs10 个月前
MySQL数据库SQL语句和常用函数大全
数据库·sql·mysql·常用函数
难搞靓仔10 个月前
C# NX二次开发-获取对象名称
c#·.net·nx二次开发
难搞靓仔10 个月前
C# NX二次开发-获取体全部面
c#·.net·nx二次开发
社恐猫1 年前
【UG\NX二次开发】部件间表达式 (字符串类型的) 问题记录
nx二次开发