NX二次开发-UFUN体找面函数UF_MODL_ask_body_faces

NX9+VS2012

#include <uf.h>
#include <uf_modl.h>
#include <uf_obj.h>
#include <uf_ui.h>


UF_initialize();

//创建圆柱
UF_FEATURE_SIGN Sign = UF_NULLSIGN;
double Origin[3] = {0.0, 0.0, 0.0};
char *Height = "100";
char *Diam = "50";
double Direction[3] = {0.0, 0.0, 1.0};
tag_t CylTag = NULL_TAG;
UF_MODL_create_cyl1(Sign, Origin, Height, Diam, Direction, &CylTag);

//特征找体
tag_t BodyTag = NULL_TAG;
UF_MODL_ask_feat_body(CylTag, &BodyTag);

//体找面
uf_list_p_t FaceList;
UF_MODL_ask_body_faces(BodyTag, &FaceList);

//获取链表数量
int Count;
UF_MODL_ask_list_count(FaceList, &Count);

UF_UI_open_listing_window();
//获取链表里的tag
for (int i = 0; i < Count; i++)
{
	tag_t FaceTag = NULL_TAG;
	UF_MODL_ask_list_item(FaceList, i, &FaceTag);

	//获取面的法向
	int Type;
	double Point[3];
	double Dir[3];
	double Box[6];
	double Radius[3];
	double RadData[3];
	int NormDir;
	UF_MODL_ask_face_data(FaceTag, &Type, Point, Dir, Box, Radius, RadData, &NormDir);

	//找圆柱侧面
	if (Type == 16)//对比面的类型
	{
		//对圆柱侧面设置颜色
		UF_OBJ_set_color(FaceTag, 186);

		//打印面的法向方向
		char msg[256];
		sprintf_s(msg, "面的法向方向为:\nX:%.0f\nY:%.0f\nZ:%.0f\n", Dir[0], Dir[1], Dir[2]);			
		UF_UI_write_listing_window(msg);			
	}
}

//释放内存
UF_MODL_delete_list(&FaceList);

UF_terminate();

Caesar卢尚宇  [email protected]

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lu1287580078/article/details/84258785