iCAx开思工具箱
标题:
请教有关ug函数参数的问题?
[打印本页]
作者:
zxdawn
时间:
2005-12-31 15:01
标题:
请教有关ug函数参数的问题?
static void do_ugopen_api(void)
{
char cue[] = "cue message";
char title[] = "dialog title";
int response;
tag_t object, view;
double cursor[3];
if(!UF_CALL(UF_UI_select_with_single_dialog(cue,title,
UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
&response, &object, cursor, &view)))
{
if (response == UF_UI_OBJECT_SELECTED ||
response == UF_UI_OBJECT_SELECTED_BY_NAME)
{
printf("object tag = %d\n", object);
if (response == UF_UI_OBJECT_SELECTED)
{
printf("view = %d\n", view);
printf("cursor position = %f %f %f\n",
cursor[0], cursor[1], cursor[2]);
}
}
/* unhighlight selected object */
UF_DISP_set_highlight(object,0);
}
}
/* selection initialization procedure */
static int init_proc(
UF_UI_selection_p_t select,
void* user_data)
{
num_triples = 2;
UF_UI_mask_t mask_triples[] = {
UF_line_type, 0, 0,
UF_solid_type, 0, UF_UI_SEL_FEATURE_ANY_EDGE};
UF_UI_mask_s只有三个数据成员object_type、object_subtype、solid_type,但是这个例子里面确是6个,搞不懂怎么回事?特此请教
/* enable only lines and edges */
if((UF_CALL(UF_UI_set_sel_mask(select,
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
num_triples, mask_triples))) == 0)
{
return (UF_UI_SEL_SUCCESS);
}
else
{
return (UF_UI_SEL_FAILURE);
}
}
作者:
zxdawn
时间:
2005-12-31 15:05
这是一个选择line的程序,我想改为既可以选择line又可以选择face的程序,不知如何实现?
作者:
supergirl
时间:
2005-12-31 15:24
int num_triples = 2;
UF_UI_mask_t mask_triples[] = {
{UF_line_type, 0, 0},
{UF_face_type, 0,0}};
实际上有点像是两维数组,每三个一组,所以叫triples,每一组是你可以选的类型。
以上那个就是又可以选线,又可以选face的。它有两组,所以num_triples 是2
作者:
zxdawn
时间:
2005-12-31 15:36
to supergirl
我按照你说的改了,但还是只能选择line不能选择face
作者:
supergirl
时间:
2005-12-31 15:49
我刚试过了,是没有问题的,line和face都可以选的,以下是我的code,你参考一下。
你确定你要选的东东是face而不是什么sheet body之类的?经常有人搞错的说
int error = 0;
UF_UI_mask_t face_line_mask[2] = { { UF_line_type, 0, 0 },
{ UF_face_type, 0, 0 } };
UF_STYLER_item_value_type_t sel_data;
/* get dialog selection item */
sel_data.item_id = UF_STYLER_DIALOG_INDEX;
sel_data.item_attr = UF_STYLER_SELECTION;
error = UF_STYLER_ask_value( dialog_id, &sel_data );
/* set selection type */
UF_UI_set_sel_type( sel_data.value.selection, UF_UI_SEL_TYPE_SINGLE_SELECTION );
/* set selection mask */
error = UF_UI_set_sel_mask( sel_data.value.selection, /* selection */
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC, /* all type in mask are allowed */
2, /* number of mask */
face_line_mask ); /* mask types */
作者:
zxdawn
时间:
2005-12-31 15:55
好的,我去试试,谢谢你啊
作者:
深夜摔键盘
时间:
2005-12-31 17:32
一直在UF_obj_types.h里找类型,一个对象类型也找不到。仔细看了看文档,才知道都在UF_object_types.h中。
感觉这头文件,弄的有些乱了。
作者:
supergirl
时间:
2005-12-31 18:07
UG的object感觉是有些乱,好像什么东东,只要它有个tag都是object,真是搞得人晕晕的。
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3