NX二次开发 UFUN分离表达式的名称和值 UF_MODL_dissect_exp_string

NX二次开发 UFUN分离表达式的名称和值 UF_MODL_dissect_exp_string

//NX8.0+VS2010
#include 
#include 
#include 
#include extern DllExport void ufsta(char* param, int* returnCode, int rlen)
{if (UF_initialize())return;int number_of_exps = 0;tag_t* exps = NULL;tag_t body_tag = NULL;double point[3] = { 0.0, 0.0, 0.0 };char* edgeLen[3] = { "5.0", "10.0", "15.0" };UF_MODL_create_block1(UF_NULLSIGN, point, edgeLen, &body_tag);/*获取实体模型表达式 number_of_exps表达式数量 exps表达式标识*/UF_MODL_ask_exps_of_part(body_tag, &number_of_exps, &exps);char* string = "";char* lhs_str = "";char* rhs_str = "";tag_t exp_tag = NULL;char* name[3];name[0] = "block_l";name[1] = "block_w";name[2] = "block_h";double exp_value = 0.0;char buffer[100] = "";UF_UI_open_listing_window();for (int i = 0; i < number_of_exps; ++i){/*利用表达式标识获得表达式字符串*/UF_MODL_ask_exp_tag_string(exps[i], &string);/*分离表达式的名称和数值*/UF_MODL_dissect_exp_string(string, &lhs_str, &rhs_str, &exp_tag);/*表达式重命名*/UF_MODL_rename_exp(lhs_str, name[i]);UF_UI_write_listing_window(lhs_str);UF_UI_write_listing_window("=");/*计算表达式*/UF_MODL_eval_exp(name[i], &exp_value);sprintf(buffer, "%.3f\n", exp_value);UF_UI_write_listing_window(buffer);}UF_terminate();
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部