#include <uf_obj.h>
#include <uf_setup.h>
#include <uf_ncgroup.h>
static logical cycelGenerateCb(tag_t tag, void* data)
{
logical is_group;
char name[133];
UF_CALL(UF_NCGROUP_is_group(tag, &is_group));
UF_CALL(UF_OBJ_ask_name(tag, name));
UF_UI_write_listing_window(name);
UF_UI_write_listing_window("\n");
return TRUE;
}
static void do_it(void)
{
UF_UI_open_listing_window();
tag_t setup_tag;
tag_t program_group;
UF_CALL(UF_SETUP_ask_setup(&setup_tag));
UF_CALL(UF_SETUP_ask_program_root(setup_tag, &program_group));
UF_CALL(UF_NCGROUP_cycle_members(program_group, cycelGenerateCb, NULL));
}
其中,有几点注意一下:
1) 将UF_SETUP_ask_program_root换成UF_SETUP_ask_geom_root或UF_SETUP_ask_mthd_root或UF_SETUP_ask_mct_root,则UF_NCGROUP_cycle_members转而对几何体、加工方法、刀具遍历;
2) 刀具tag的获取也可以用UF_OBJ_cycle_objs_in_part来获得,估计其它项也可以;