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]
NX二次开发-UFUN创建圆柱UF_MODL_create_cyl1
猜你喜欢
转载自blog.csdn.net/lu1287580078/article/details/84258758
今日推荐
周排行