iCAx开思网

标题: API调用GRIP时IDENT语句的选择对话框无法显示!求指点 [打印本页]

作者: kanggeng    时间: 2011-11-24 21:30
标题: API调用GRIP时IDENT语句的选择对话框无法显示!求指点
UG中运行时 提示在GRIP中IDENT处无法显示对话框,当时上一个操作对话框还在打开着 但我确实规定了return (UF_UI_CB_EXIT_DIALOG);关闭对话框的命令啊 !请帮我看看程序!!
API中OK按钮的定义:
int BOTTLE_DESIGN_ok_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
     /* Make sure User Function is available. */  
     if ( UF_initialize() != 0)
          return ( UF_UI_CB_CONTINUE_DIALOG );
     /* ---- Enter your callback code here ----- */
    UF_PART_save();
  int scope=0;
  int mode=1;
  tag_t part;
  UF_PART_close(part,scope,mode);     /*蓝色部分是关闭并保存上一个部件,然后再把几个参数给GRIP调用并建模*/
   int i;
     write_para(dialog_id);
  const char env[255]="UGII_USER_DIR";
  char *basedir=NULL;
  basedir=getenv(env);
  
  char dir[100];
  strcpy(dir,basedir);
  strcat(dir,\\grip\\mentou.grx);
   
  char *grip_exe=dir;
  int status;
  int grip_arg_count=4;
     UF_args_t grip_arg_list[4];

     grip_arg_list[0].type=UF_TYPE_DOUBLE;
     grip_arg_list[0].length=0;
     grip_arg_list[0].address=&data[0].value.real;
  grip_arg_list[1].type=UF_TYPE_DOUBLE;
     grip_arg_list[1].length=0;
     grip_arg_list[1].address=&data[1].value.real;
  grip_arg_list[2].type=UF_TYPE_DOUBLE;
     grip_arg_list[2].length=0;
     grip_arg_list[2].address=&data[2].value.real;
   grip_arg_list[3].type=UF_TYPE_DOUBLE;
     grip_arg_list[3].length=0;
     grip_arg_list[3].address=&data[3].value.real;
      
     status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
     UF_terminate ();
    /* Callback acknowledged, terminate dialog             */
    /* It is STRONGLY recommended that you exit your       */
    /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
    /* return ( UF_UI_CB_EXIT_DIALOG );                    */
    return (UF_UI_CB_EXIT_DIALOG);                           
}
void write_para(int dialog_id)
{
  data[0].item_attr=UF_STYLER_VALUE;
  data[0].item_id=BOTTLE_DESIGN_REAL_DMAX;
     UF_STYLER_ask_value(dialog_id,&data[0]);
  data[1].item_attr=UF_STYLER_VALUE;
  data[1].item_id=BOTTLE_DESIGN_REAL_DMIN;
     UF_STYLER_ask_value(dialog_id,&data[1]);
  data[2].item_attr=UF_STYLER_VALUE;
  data[2].item_id=BOTTLE_DESIGN_REAL_B;
     UF_STYLER_ask_value(dialog_id,&data[2]);
  data[3].item_attr=UF_STYLER_VALUE;
  data[3].item_id=BOTTLE_DESIGN_REAL_HF;
     UF_STYLER_ask_value(dialog_id,&data[3]);
}

GRIP部分代码(打开一个部件,在此部件上减实体添特征,有一个IDENT选择)
number/b,dmax,dmin,df,da,hf
entity/org,org1,org2
ufargs/b,dmax,dmin,hf
da=(dmin+dmax)/2
df=b*da
fetch/part,'D:\\model\\part\\mentou'
l10:
ident/'选择实体',org,resp
jump/l10:,trm:,,resp
org1=solcyl/origin,0,0,0,height,hf,diamtr,df
org2=subtra/org,with,org1
trm:
halt





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3