遍历part表达式,返回指定表达式的值
//遍历part表达式,返回指定表达式的值
void twb_xd_std::cycle_part_exp( tag_t part_tag, string lelfvalue, double &rightvalue )
{
try
{
int number_of_exps = 0;//表达式数量
tag_t * exps ;
UF_MODL_ask_exps_of_part ( part_tag, &number_of_exps, &exps );//返回part表达式数量与标识
char * exp_string ;
char *exp_l;
char *exp_r;
tag_t exp_tag = NULL_TAG;
for (int i = 0; i < number_of_exps; i++)//循环表达式标识,获取表达式string
{
UF_MODL_ask_exp_tag_string( exps[i], &exp_string );//返回表达式string
UF_MODL_dissect_exp_string(exp_string, &exp_l, &exp_r, &exp_tag);//分割表达式
if ( !strcmp( lelfvalue.c_str(), exp_l ) )//对比表达式与输入的一致
{
UF_MODL_ask_exp_tag_value( exps[i], &rightvalue );//返回表达式的值
}
}
UF_free( exps );
UF_free( exp_string );
UF_free( exp_l );
UF_free( exp_r );
}
catch(exception& ex)
{
//---- Enter your exception handling code here -----
twb_xd_std::theUI->NXMessageBox()->Show("遍历part表达式", NXOpen::NXMessageBox::DialogTypeError, ex.what());
}
}