iCAx开思工具箱
标题:
请教关于Setting Tool Palette Attribute Values的问题
[打印本页]
作者:
SIM
时间:
2005-11-5 21:50
标题:
请教关于Setting Tool Palette Attribute Values的问题
我想在打开对话框的时候,Tool Palette中的第一个图标处于激活状态(第二个没被激活),鼠标同时选择屏幕中的东西。于是在constructor_cb里进行相应的设置,如下:
int HOLE_constructor_cb ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
/* Make sure User Function is available. */
UF_STYLER_item_value_type_t data ;
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG );
/* ---- Enter your callback code here ----- */
data.item_attr = UF_STYLER_SENSITIVITY;
data.item_id = HO_SELECTIONSTEPS;
data.value.integer = FALSE;
data.subitem_index = 1;
UF_STYLER_set_value( dialog_id ,&data );
sel_init_proc( data.value.selection, client_data) ;//用于设置鼠标可以选择的东西
UF_terminate ();
return (UF_UI_CB_CONTINUE_DIALOG);
}
我希望在鼠标选择之后,能激活Tool Palette中的第二个图标,我想是应该设置Setting Tool Palette Attribute Values中的Default Action,但是没知如何添加程序,特别是将这段程序加到哪里?加在sel_init_proc( data.value.selection, client_data) 之后呢,还是在sel_init_proc( data.value.selection, client_data) 里面呢?需要什么条件才能调用这段程序吗?
作者:
Afang
时间:
2005-11-5 22:54
sel_init_proc是你自己定义的函数吧?是不是用了UF_UI_set_sel_procs这个函数,应该在这个函数里的sel_cb设置
作者:
SIM
时间:
2005-11-6 15:02
是的
我用了UF_UI_set_sel_procs这个函数的。我试试看。
谢谢先!
作者:
SIM
时间:
2005-11-8 19:42
但我发现对话框的参数,包括dialog_id, UF_STYLER_item_value_type_t data这两个没有办法传到sel_cb里面去啊!
请问有什么办法吗?
作者:
Afang
时间:
2005-11-9 09:13
用全局变量或者client_data都可以传
作者:
SIM
时间:
2005-11-9 20:52
谢谢。
但我把程序加到sel_cb里面,还是没能激活另一个图标。
下面是我的程序,请看看是什么问题。谢谢!
static int sel_cb (int num_selected,
tag_p_t selected_objects,
int num_deselected,
tag_p_t deselected_objects,
void *user_data,
UF_UI_selection_p_t select)
{
double parm[2] ;
if( num_selected == 1)
Placement_face_tag = selected_objects[ 0 ] ;
UF_DISP_set_highlight(Placement_face_tag, 0);
UF_UI_ask_sel_cursor_pos(select, &cursor_view, cursor_pos);
UF_MODL_ask_face_parm (Placement_face_tag, cursor_pos, parm, face_point);
data1.item_attr = UF_STYLER_DEFAULT_ACTION;
data1.item_id = HOLE_SIM_SELECTIONSTEPS;
data1.subitem_index = 1;
UF_STYLER_set_value( dialog_id1, &data1 );//dialog_id1和data1是全局变量,分别由dialog_id和
//(UF_STYLER _item_value_type_t)data赋予
return (UF_UI_CB_CONTINUE_DIALOG);
}
作者:
Afang
时间:
2005-11-10 11:23
data.item_attr = UF_STYLER_SENSITIVITY;
还要定义data.value.integer,1是可选,0是不可选
作者:
SIM
时间:
2005-11-12 19:34
再次感谢Afang
不过按你所说的,还是没能达到我所想要的效果。
我想要的效果可以用UG里的打孔功能对话框来说明:当选择一个面后,就将第二个图标激活,再次选择一个面后,获得相应的参数。
不知这是怎样实现的?
作者:
Afang
时间:
2005-11-14 09:23
sel_cb就可以实现的……
下面是设置sensitity的函数,subitem_index是从0开始计数的
UF_STYLER_item_value_type_t data;
data.item_attr = UF_STYLER_SENSITIVITY;
data.item_id = item_id;
data.subitem_index =subitem_ index;
data.value.integer = sense_value;
UF_STYLER_set_value ( dialog_id, &data )
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3