iCAx开思网
标题:
【求助】UF_UI_select_with_class_dialog的用法!!!
[打印本页]
作者:
lknoodle
时间:
2004-4-4 22:21
标题:
【求助】UF_UI_select_with_class_dialog的用法!!!
我按例子调用UF_UI_select_with_class_dialog,为什么总不弹出对话框??
望各位告手帮帮忙!!
作者:
zzz
时间:
2004-4-5 09:19
你的回调函数允许打开对话框吗?
作者:
goodluckwu
时间:
2004-4-5 11:01
how?
版主给个例子吧
作者:
lknoodle
时间:
2004-4-5 11:16
怎样才能让回调函数允许打开对话框?
作者:
lknoodle
时间:
2004-4-5 11:18
我调用时出现错误对话框
作者:
zzz
时间:
2004-4-5 11:46
把你的代码发上来看一下
作者:
lknoodle
时间:
2004-4-5 20:00
int MOLDWIZARD_select_apart_line_cb ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
char cue[] = "cue message";
char title[] = "请选择要实体!";
int response = 0;
tag_t tag_object = NULL_TAG;
tag_t tag_view = NULL_TAG;
double cursor[3];
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG );
/* ---- Enter your callback code here ----- */
UF_CALL(UF_UI_select_with_single_dialog(cue,title,
UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
[$response, &object, cursor, &view))]
if(object != NULL_TAG)
{
UF_CALL(UF_MODL_ask_feat_body (object, [$body_tag))]
}
else
{
uc1601("请选择实体!",1);
return (UF_UI_CB_CONTINUE_DIALOG);
}
UF_terminate ();
/* Callback acknowledged, do not terminate dialog */
return (UF_UI_CB_CONTINUE_DIALOG);
/* or Callback acknowledged, terminate dialog. */
/* return ( UF_UI_CB_EXIT_DIALOG ); */
}
作者:
lknoodle
时间:
2004-4-5 20:02
以上是调用UF_UI_select_with_single_dialog的代码
作者:
lknoodle
时间:
2004-4-5 20:02
调用UF_UI_select_with_class_dialog也如此。
作者:
lknoodle
时间:
2004-4-5 22:10
多谢版主的提示,不是代码的问题,是对话框的设置问题。现在已经解决了。谢谢!!
作者:
maomao521
时间:
2006-6-26 09:56
Sample Text
版主你好!我的出现: error C2065: 'UF_CALL' : undeclared identifier这个错误,下面是我得改回调函数内添加的程序:
int J_apply_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;
int num_u,num_v; //网格数控制
char* option_string;
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG );
data.item_id="NUM_U";
data.item_attr=UF_STYLER_VALUE;
UF_STYLER_ask_value(dialog_id,&data);
num_u=data.value.integer;
data.item_id="NUM_V";
data.item_attr=UF_STYLER_VALUE;
UF_STYLER_ask_value(dialog_id,&data);
num_v=data.value.integer;
data.item_id="OPTION";
data.item_attr=UF_STYLER_SUBITEM_VALUES;
UF_STYLER_ask_value(dialog_id,&data);
option_string=data.value.string;
// UF_STYLER_free_value;
//#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
char cue[] = "Select Objects";
char title[] = "User Title";
int response, count, i;
double face_param[2],face_point[3],face_u_deriv1[3],face_v_deriv1[3],face_u_deriv2[3];
double face_v_deriv2[3],face_normal[3],face_radii[2];
double face_max_curva[4],face_range[4];
int face_curva_type[4];
int p,j,k,m,n,h;
int tt1=1;
double mincvt,maxcvt,gauscvt;
double uv_min_max[4];
int uv_flag;
int isocurve_cnt;
double parameter;
double dist_tol=0.001;
tag_t *isocurve_id;
tag_t point;
double u[1000],v[1000]; //划分网格的最大个数
// int num_knot_u,num_knot_v,num_poles;
tag_p_t objects;
UF_MODL_bsurface_t bsurf;
char buffer[133];
int ii,jj,off=0;
for(i=1;i<= num_u;i++) //控制U向网格个数
{
u[0]=0;
u
=u[i-1]+(double)1/num_u;
}
for(i=1;i<= num_v;i++) //控制V向网格个数
{
v[0]=0;
v
=v[i-1]+(double)1/num_v;
}
if((UF_CALL(UF_UI_select_with_class_dialog(
cue, title, UF_UI_SEL_SCOPE_WORK_PART,
NULL, NULL, &response, &count, &objects))) == 0)
{
UF_UI_open_listing_window();
// sprintf(buffer,"response= %d, object count= %d\n",response,count);
// UF_UI_write_listing_window(buffer);
if (response == UF_UI_OK && count > 0)
{
for (p=0; p<count; p++)
{
UF_CALL(UF_MODL_ask_bsurf( objects[p], &bsurf ));
/* sprintf(buffer,"bsurf.order_u=%d,bsurf.order_v=%d,bsurf.num_poles_u=%d,bsurf.num_poles_v=%d,bsurf.is_rational=%d",
bsurf.order_u,bsurf.order_v,bsurf.num_poles_u,bsurf.num_poles_v,bsurf.is_rational);
UF_UI_write_listing_window(buffer);
UF_UI_write_listing_window("\n");
*/
/* validate the surface */
for(m=0;m<=num_u;m++)
{
face_param[0]=u[m];
for(k=0;k<=num_v;k++)
{
tt1=tt1+1;
face_param[1]=v[k];
UF_MODL_ask_face_props(objects[p],
face_param,
face_point,
face_u_deriv1,face_v_deriv1,
face_u_deriv2,face_v_deriv2,
face_normal,face_radii);
//***********************************添加求取曲率代码
face_range[0]=u[k];
face_range[1]=v[k];
UF_MODL_ask_max_curvature (
objects[p],
face_range,
response,
face_max_curva,
face_curva_type);
作者:
maomao521
时间:
2006-6-26 15:01
我把UF_call去掉之后能够通过,但是在UG里面点击菜单没有反应阿
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3