NX Open允许用户创建和查询所有基本体素特征,通过API函数建立基本体素特征返回的是相应的特征标识,如果需要可以通过函数UG_MODL_ask_feat_body()获得特征对应的实体对象标识。基本体素特征的参数是通过字符串输入的。我们可以直接输入数值,或者输入表达式,例如下面的例子中,球的直径我们可以设置输入参数 cDiam[] = "8" 或者 cDiam[] = "D=8" 。与体素特征相关的函数如下:

//块
UF_MODL_create_block1()
UF_MODL_ask_block_parms()
//圆柱
UF_MODL_create_cyl1()
UF_MODL_ask_cylinder_parms()
//圆锥
UF_MODL_create_cone1()
UF_MODL_ask_cone_parms()
//球
UF_MODL_create_sphere1()
UF_MODL_ask_sphere_parms()

函数例子:

 1 #include "Text.h"
2 extern DllExport void ufsta(char *param, int *returnCode, int rlen)
3 {
4 UF_initialize();
5 //创建块
6 UF_FEATURE_SIGN sign = UF_NULLSIGN;
7 double block_orig[3] = { 0.0,0.0,0.0 };//起点相对于ABS
8 char *block_len[3] = { "1", "2", "3" };//方向相对于WCS
9 tag_t blk_obj;//体特征
10 UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);
11
12 int iEdit = 0; //这是一个未使用的标志。它用于确定是返回表达式的右边还是两边。目前,表达式的两边都返回。
13 char *size[3];
14 UF_MODL_ask_block_parms(blk_obj, iEdit, size);
15 list("%s,%s,%s\n", size[0], size[1], size[2]);//输出: p9=1,p10=2,p11=3
16
17 //创建圆柱
18 UF_FEATURE_SIGN sign1 = UF_NULLSIGN;
19 double origin[3] = { 0.0,0.0,10.0 };
20 char height[] = "20";
21 char diam[] = "10";
22 double direction[3] = {0,0,1};//方向
23 tag_t cyl_obj_id;
24 UF_MODL_create_cyl1(sign1, origin, height, diam, direction, &cyl_obj_id);
25
26 int iEdit2 = 0; //这是一个未使用的标志。它用于确定是返回表达式的右边还是两边。目前,表达式的两边都返回。
27 char *cDiameter;
28 char *cHeight;
29 UF_MODL_ask_cylinder_parms(cyl_obj_id, iEdit2, &cDiameter, &cHeight);
30 list("%s,%s\n", cDiameter, cHeight);//输出:p8=10,p9=20
31 UF_free(cDiameter);
32 UF_free(cHeight);
33
34 //创建圆锥
35 UF_FEATURE_SIGN sign2 = UF_NULLSIGN;
36 double origin2[3] = { 0.0,0.0,10.0 };
37 char height2[] = "20";
38 char *diam2[2] = { "10" ,"5" };
39 double direction2[3] = { 0,0,1 };//方向
40 tag_t cone_obj_id;
41 UF_MODL_create_cone1(sign2, origin2, height2, diam2, direction2, &cone_obj_id);
42
43 int iEdit3 = 0; //这是一个未使用的标志。它用于确定是返回表达式的右边还是两边。目前,表达式的两边都返回。
44 char *cD1;
45 char *cD2;
46 char *cH;
47 char *cAngle;
48 UF_MODL_ask_cone_parms(cone_obj_id, iEdit3, &cD1, &cD2, &cH, &cAngle);
49 list("%s,%s,%s,%s\n", cD1, cD2, cH, cAngle);//输出:p8=10,p9=5,p10=20,p11=7.1250163489018
50 UF_free(cD1);
51 UF_free(cD2);
52 UF_free(cH);
53 UF_free(cAngle);
54
55 //创建球
56 UF_FEATURE_SIGN sign3 = UF_NULLSIGN;
57 double douCenter2[3] = { 0.0,0.0,30.0 };
58 char cDiam[] = "8";
59 tag_t sphere_obj_id;
60 UF_MODL_create_sphere1(sign3, douCenter2, cDiam,&sphere_obj_id);
61
62 int iEdit4 = 0; //这是一个未使用的标志。它用于确定是返回表达式的右边还是两边。目前,表达式的两边都返回。
63 char *cDiam_parm;
64 UF_MODL_ask_sphere_parms(sphere_obj_id, iEdit4, &cDiam_parm);
65 list("%s\n", cDiam_parm);//输出:p9=8
66 UF_free(cDiam_parm);
67
68 UF_terminate();
69 }
70
71 extern int ufusr_ask_unload(void)
72 {
73 return (UF_UNLOAD_IMMEDIATELY);
74 }

最新文章

  1. UC浏览器 分享到朋友圈和微信好友 分类: JavaScript 2015-04-28 14:45 615人阅读 评论(1) 收藏
  2. Delphi XE5教程10:Delphi字符集
  3. leetcode@ [91] Decode Ways (Dynamic Programming)
  4. PHP学习心得(七)——常量
  5. python 统计单词个数
  6. [转]Windows7 64bit下配置Apache+PHP+MySQL
  7. spring 重定向以及转发 乱码问题解决
  8. UNIX域协议(无名套接字)
  9. 废旧鼠标先别丢,用来学习nRF52832 的QDEC
  10. 1.redis安装
  11. Spring的jdbcTemplate操作-未完整
  12. scrapy--分布式爬虫
  13. Maven传递依赖的范围
  14. 11、Redis的持久化(RDB、AOF)
  15. 关于ngModelOptions用法总结 让校验不过的验证绑定ngModel
  16. python selenium 常见问题列表
  17. ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN
  18. Python基础学习笔记,进阶学习笔记 出处
  19. (最小生成树) Networking -- POJ -- 1287
  20. Oracle数据库中的分页--rownum

热门文章

  1. 19.Quick QML-GroupBox自定义
  2. SparkSQL电商用户画像(二)之如何构建画像
  3. JavaI/O流汇总
  4. MySQL修改账号密码方法大全
  5. Unity shader 护盾shield的简单实现
  6. 【BUAA软工】团队任务拆解
  7. 『动善时』JMeter基础 — 16、JMeter配置元件【HTTP信息头管理器】
  8. [linux] Git基本概念&操作
  9. [bug] TypeError : unsupported operand type(s) for += : 'NoneType' and 'int'
  10. [Web] 计算机网络课程(一)