在UG CAM开发中,我们经常需要获得当前工序导航器选择的某一个或几个操作(如下图),然后进行批量修改参数(比如批量修改余量、进给率等)。
而要如何来获取到当前选中的这些操作呢?
这里通过 UF_UI_ONT_ask_selected_nodes 函数就可以。
其函数原型如下:
UF_UI_ONT_ask_selected_nodes
(
int * count,
tag_t * * objects
)
函数用法:
1,首先在UG界面中通过鼠标选中一个或几个工序操作
2,然后调用此函数,会返回选中的数量(count)和选中的全部选项的TAG数组(objects)
3,通过循环数组,可以得到每一个选项的TAG
4,然后对TAG进行其他操作,比如改名、修改参数等等
提示:
1,此函数不单能获取到选择的操作,对于当前选中的程序组、几何体、刀具组、方法组都可以获取到
2,如果对于工序导航器进行了操作,需要调用 UF_UI_ONT_refresh() 刷新才会显示最新结果
示例代码:
//获得工序导航器选择的选项
int count = 0;
tag_t * objects = NULL;
UF_UI_ONT_ask_selected_nodes(&count, &objects);
if(count<=0)
{
uc1601("没有选择工序导航器选项", 1);
}
else
{
//循环得到每一个选项的TAG,输出名字,并改名
UF_UI_open_listing_window();
for(int i=0; i<count; i++)
{
//得到操作的名字
char name[UF_OBJ_NAME_LEN+1];
UF_OBJ_ask_name(objects[i], name);
//打印输出操作名字
UF_UI_write_listing_window(name);
UF_UI_write_listing_window("\n");
//修改操作的名字
UF_OBJ_set_name(objects[i], "胡君");
}
}
//刷新导航器显示
UF_UI_ONT_refresh();
//释放内存
UF_free(objects);
演示效果动画: