一、创建圆弧
在NX上通过代码画出圆弧,定义起始和终止位置,还有圆心位置和半径
创建圆弧,需要获取CSYS的矩阵ID,通过UF_CURVE_create_arc函数进行创建
//定义参数
UF_CURVE_arc_t arc;
arc.start_angle = 0.0;
arc.end_angle = 225 * DEGRA;//DEGRA=PI/180
//中心坐标
arc.arc_center[0] = 0.0;//X坐标
arc.arc_center[1] = 0.0;//Y坐标
arc.arc_center[2] = 0.0;//Z坐标
arc.radius = 50.0;//半径
//得到CSYS的矩阵ID
tag_t wcsTAG = NULL_TAG;
UF_CSYS_ask_wcs(&wcsTAG);
UF_CSYS_ask_matrix_of_object(wcsTAG, &arc.matrix_tag);
//创建圆弧
tag_t arcTAG = NULL_TAG;
UF_CURVE_create_arc(&arc, &arcTAG);
运行结果:
二、与图层操作相关函数的用法
1.查询图层的分类、名字、描述及分类的成员
在NX里找到图层设置,我的是NX12.0,图层设置在视图里,在图层设置里显示选择所有图层,就可以看到所有的图层信息
//获取一个图层类别的TAG
tag_t catgoryTAG = NULL_TAG;
UF_LAYER_ask_category_tag("01_BODY", &catgoryTAG);
//获取图层类别的信息
UF_LAYER_category_info_t info;
UF_LAYER_ask_category_info(catgoryTAG, &info);
UF_UI_open_listing_window();
UF_UI_write_listing_window(info.name);
UF_UI_write_listing_window("\n");
UF_UI_write_listing_window(info.descr);
查询图层状态
int layerStatus;
UF_LAYER_ask_status(2, &layerStatus);
//重新设置图层状态
//UF_LAYER_set_status(2, 1);
//设置所有图层
UF_LAYER_set_all_but_work(3);
//转换数据
char msg[256];
sprintf(msg, "%d", layerStatus);
//打印
UF_UI_write_listing_window(msg);
UF_terminate();
2.创建或者编辑图层类别,名字,描述及分类成员
UF_LAYER_category_info_t category;
strcpy(category.name, "图层类别名字");
strcpy(category.descr, "图层类别描述");
for (int i = 0; i < 256; i++)
{
if (i > 0 && i < 5)
category.layer_mask[i] = true;
else
category.layer_mask[i] = false;
}
tag_t categoryTAG = NULL_TAG;
UF_LAYER_create_category(&category, &categoryTAG);