首先创建一个长方体,然后利用函数UF_MODL_ask_exps_of_feature访问长方体特征中的所有表达式的个数和标识,利用函数UF_MODL_ask_exp_tag_string获得表达式字符串,并用函数UF_MODL_dissect_exp_string分离表达式的名称和数值,最后利用函数UF_MODL_rename_exp对表达式重命名,并利用函数UF_MODL_eval_exp计算表达式的值;通过函数UF_MODL_edit_exp修改表达式的值,然后利用函数UF_MODL_update来更新模型。

​
int modelTe::update_cb(NXOpen::BlockStyler::UIBlock* block)
{try{if(block == button0){char *block_len[3] = {"1", "2", "3"};            //长宽高double block_orig[3] = {0.0, 0.0, 0.0};           //原点tag_t blk_obj;                                  //长方体特征的标识int number_of_exps = 0, i;                       //部件中所有表达式的个数tag_t *exps;                                   //部件中所有表达式的标识char buffer[MAX_STRING_LEN];char *string;                                  //表达式的字符串char *lhs_str, *rhs_str;                       //表达式中等号左边的字符串和右边的字符串tag_t exp_tag;                                 //对应的表达式的标识char *name[3];                                   //新的表达式的名称name[0] = "l";name[1] = "w";name[2] = "h";double exp_value;                              //表达式等号右边的值UF_UI_open_listing_window();                 //打开文本//第一个参数:创建新的几何实体//第二个参数:长方体的原点//第三个参数:长宽高//第四个参数:输出参数,长方体的特征标识UF_MODL_create_block1(UF_NULLSIGN, block_orig, block_len, &blk_obj); //创建一个长方体//第一个参数:长方体特征标识//第二个参数:输出参数,返回查询到的特征表达式的个数//第三个参数:输出参数,当前特征的所有表达式的标识,最后需要UF_free释放UF_MODL_ask_exps_of_feature(blk_obj, &number_of_exps, &exps);      //获得长方体特征所包含的表达式的个数及标识sprintf(buffer, "number_of_exps = %d\n", number_of_exps);UF_UI_write_listing_window(buffer);                                   //显示文本//表达式的操作for (i = 0; i < number_of_exps; i++){//第一个参数:表达式标识的值//第二个参数:输出参数,查询到的表达式字符串,需要UF_free释放UF_MODL_ask_exp_tag_string(exps[i], &string);                    //利用表达式的标识获得表达式的字符串//第一个参数:表达式的字符串//第二个参数:输出参数,表达式的左值,即名称,需UF_free释放//第三个参数:输出参数,表达式的右值,需UF_free释放//第四个参数:输出参数,表达式的标识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, "%f\n", exp_value);UF_UI_write_listing_window(buffer);                       //显示文本buffer[0] = '\0';                                      //清空UF_free(lhs_str);UF_free(rhs_str);UF_free(string);}UF_free(exps);string = "\0";                                              //清空UF_MODL_ask_exps_of_feature(blk_obj, &number_of_exps, &exps);       //获得长方体特征所包含的表达式的个数及标识//修改表达式for (i = 0; i < number_of_exps; i++){UF_MODL_ask_exp_tag_string(exps[i], &string);                   //利用表达式的标识获得表达式的字符串UF_UI_write_listing_window(string);                              //显示文本UF_UI_write_listing_window("\n");                               //显示文本if (strcmp(string, "l=1") == 0){strcpy(string, "l=5");UF_MODL_edit_exp(string);}else if (strcmp(string, "w=2") == 0){strcpy(string, "w=5");UF_MODL_edit_exp(string);}else if (strcmp(string, "h=3") == 0){strcpy(string, "h=5");UF_MODL_edit_exp(string);}UF_free(string);}UF_free(exps);UF_MODL_update();                                    //更新模型}}catch(exception& ex){modelTe::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());}return 0;
}​

表达式的操作(UF函数)相关推荐

  1. c语言字符串字节数函数,C语言字符,字符串,字节操作常用函数

    strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...

  2. 【Kotlin】Kotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )

    文章目录 一.函数头声明 二.函数参数 1.默认参数值 2.具名参数 三.Unit 函数 四.TODO 函数抛出异常返回 Nothing 类型 五.反引号函数名 六.匿名函数 七.匿名函数的函数类型 ...

  3. 二file操作、函数

    <1>文件操作 open函数打开文件 f=open("rhello.txt","r") 打开模式: read()操作: f.read() #读取文件 ...

  4. day3 集合、文件操作、函数、局部变量

    文章目录 1.集合 2.文件操作 3.函数 4.局部变量 1.集合   集合是一个无序的,不重复的数据组合,它的主要作用如下:   1)去重,把一个列表变成集合,就自动去重了   2)关系测试,测试两 ...

  5. R 语言常用操作与函数汇总

    总结了一下 R 语言中常用的一些操作与函数使用,抛砖引玉,分享一下给大家,如有错误的地方欢迎留言指正. 怎样显示 R 软件中某个包中包含的全部数据集? > library(MASS)> d ...

  6. Util应用程序框架公共操作类(八):Lambda表达式公共操作类(二)

    前面介绍了查询的基础扩展,下面准备给大家介绍一些有用的查询封装手法,比如对日期范围查询,数值范围查询的封装等,为了支持这些功能,需要增强公共操作类. Lambda表达式公共操作类,我在前面已经简单介绍 ...

  7. Python开发【第三篇】:文件操作与函数

    内容概要 文件操作 初始函数 函数定义与调用 函数的返回值 函数的参数 函数进阶 函数参数--动态传参 名称空间 作用域 函数的嵌套 函数名的运用 gloabal,nonlocal 关键字 1.文件操 ...

  8. Objective-C:Objective-C:文件中一些对目录进行操作的函数

    IO文件中,一些对目录进行操作的函数:获取.切分.组合 一些对目录进行操作的函数: 获取用户的姓名:(NSString*)NSUserName() ;    --->NSString *Str ...

  9. 继承关系中的拷贝构造函数和赋值操作重载函数分析

    文章目录 1 继承关系中的拷贝构造函数和赋值操作重载函数分析 1 继承关系中的拷贝构造函数和赋值操作重载函数分析 在继承关系中,如果子类未实现拷贝构造函数,那么在子类进行拷贝构造操作时,会直接调用父类 ...

最新文章

  1. JAVA字符串格式化-String.format()的使用
  2. linux按顺序运行命令,linux – 安排cron作业打开终端并按顺序运行命令
  3. 关于Excel和Csv导入和导出工具使用
  4. 交易猫鸿蒙空间,回收站是指
  5. 遵循Java EE标准规范的开源GIS服务平台之三:数据发布与访问
  6. Windows下Android开发环境搭建和配置
  7. python自动化框架(unnitest+selenium+htmlreport)
  8. Oracle Goldengate在HP平台裸设备文件系统OGG-01028处理
  9. iOS基础 - UIScrollView
  10. centos 安装jenkins
  11. 大一python简答题_大学moocPython编程基础答案大全
  12. 【小墩墩学Android】开发环境(一)
  13. 淘宝APP用户行为数据分析
  14. PCB寄生电容和寄生电感的计算
  15. python3中英文混合字符串的分离
  16. hbuilderx制作简单网页_普通网站如何制作一个网站?
  17. 《SICP》习题第1章
  18. css-reset样式重置
  19. RuntimeError: Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
  20. linux命令总结1129

热门文章

  1. jQuery点击按钮新增dom
  2. 灵飞经4 西城八部 第十八章 暗通款曲(三)
  3. 若在矩阵A中存在一个元素Aij,该元素是第i行元素中最大值并且又是第j列元素中最小值,则称此元素值为该元素的一个鞍点。假设以二维数组存储矩阵A,求该矩阵中的所有鞍点。
  4. 数据分析--DataFrame(4)
  5. 回归年、恒星年、太阳日、恒星日和闰秒相关知识
  6. Git 提交规范之GIt工作流规范(Husky+eslint+stylelint+pretty+Commitlint+ lint-staged)
  7. Linux系统安装jdk17
  8. FPGA专题-相位累加器(DDS)
  9. 使用Java编写《拳皇97》,致敬经典,还原八神庵大战草稚京
  10. Redis存key出现\xAC\xED\x00\x05t\x00\x14