iCAx开思工具箱

标题: 【求助】如何修改特征参数 [打印本页]

作者: haiying    时间: 2004-7-22 17:09
标题: 【求助】如何修改特征参数
我想通过下面的程序修改特征的参数,可是程序运行时出错!
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{
     /* Initialize the API environment */
     int errorCode = UF_initialize();
  
     if ( 0 == errorCode )
     { //打开部件
      
char part_name[133]="d:\\pm drawing\\canshu.prt";
     tag_t part;
     int unit=1;
       UF_PART_load_status_t  error_status;
       UF_PART_open (part_name, [$part, &error_status )]
  
//查询物体的特征
      
   uf_list_p_t  feature_tag_list;
   tag_t object;
   UF_MODL_ask_body_feats (part,  [$feature_tag_list )]
   tag_t feature_tag=feature_tag_list->eid;
   
  
     tag_t *exps;
     int number_of_exps=0,i;
     UF_UI_open_listing_window();
//获得参数
    UF_MODL_ask_exps_of_feature(feature_tag, [$number_of_exps , &exps)]
   char *string;
   for (i=0;i<number_of_exps;i++)
   { //根据参数的标识获得 参数字符串
       UF_MODL_ask_exp_tag_string(exps,[$string)]
       UF_UI_write_listing_window(string);
      UF_UI_write_listing_window("\n");
       UF_free(string);
     }
   UF_free(exps);
     string="p0=90";
   //string[1]="p0=12";
   UF_MODL_edit_exp(string);
   UF_MODL_update();
      
  
   string="p1=20";
     //string[1]="p0=12";
   UF_MODL_edit_exp(string);
   UF_MODL_update();
      string="\0";
    UF_MODL_ask_exps_of_feature(feature_tag, [$number_of_exps, &exps)]
   
   for (i=0;i<number_of_exps;i++)
   {  
       UF_MODL_ask_exp_tag_string(exps,[$string)]
       UF_UI_write_listing_window(string);
       UF_UI_write_listing_window("\n");
       UF_free(string);
     }
   UF_free(exps);
  
         /* Terminate the API environment */
         errorCode = UF_terminate();
     }
  
     /* Print out any error messages */
     PrintErrorMessage( errorCode );
}
  
拜托各位高手帮看看啊!
是不是通过UF_MODL_ask_body_feats (part,  [$feature_tag_list )]
   tag_t feature_tag=feature_tag_list->eid;
得到feature_tag不对啊!
作者: guxiongfei    时间: 2004-7-23 09:17
UF_MODL_ask_body_feats (part, [$feature_tag_list )]  
用part做它的参数不对吧,要求的是obj
作者: haiying    时间: 2004-7-23 10:55
谢谢guxiongfei!
想再请教一下,UF_MODL_edit_exp(string); 这个函数中的 string能设成变量吗?还是只能设为 string="p0=100";这种形式。就是说右边只能是实数的形式,我试过了其他的,好像不行。
麻烦版主及高手指导一下,谢谢。
作者: goodluckwu    时间: 2004-7-26 14:03
haiying wrote:
谢谢guxiongfei!  
  想再请教一下,UF_MODL_edit_exp(string); 这个函数中的 string能设成变量吗?还是只能设为 string="p0=100";这种形式。就是说右边只能是实数的形式,我试过了其他的,好像不行。  
  麻烦版主及高手指导一下,谢谢。

  
我记得是也可以设成p1,就是说只能用p0=p1之类的表达(前提是这个p1=...的表达式已经存在)。
顺便提一下:就我个人的感觉如果不是十分必要的话,尽可能的多使用tag来对表达式进行操作,知道了一个表达式的tag,对它进行任何操作都是十分方便的。
作者: haiying    时间: 2004-7-26 15:09
谢谢:goodluckwu, 这个我已经实现了,是先将string分成两部份,然后通过strcat连接就可以了。
作者: goodluckwu    时间: 2004-7-26 16:08
你到底是已知什么要求什么呢?干什么还要分开了又合在一起呢?
作者: tari    时间: 2004-7-26 16:11
我猜他的意图可能是先把string分开,然后对右边的字符串进行修改,再把两部分合起来,达到修改的目的
作者: goodluckwu    时间: 2004-7-26 16:22
哦。
作者: haiying    时间: 2004-7-26 20:32
呵呵!tari 说的没错




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3