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 }

【NX二次开发】体素特征相关函数(块、柱、锥、球)的更多相关文章

  1. NX二次开发-UFUN特征找体UF_MODL_ask_feat_body

    NX11+VS2013 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN ...

  2. NX二次开发-UFUN特征找xxx UF_MODL_ask_feat_xxx等函数(待补充)

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...

  3. NX二次开发-UFUN发射线函数UF_MODL_trace_a_ray的用法

    今天是国庆节,放假休息懒得动,没有出去玩,在家研究一下发射线函数UF_MODL_trace_a_ray.小弟以前在软件公司混的时候,当时我做的那个项目就用到了UF_MODL_trace_a_ray,当 ...

  4. NX二次开发-NX+VS写代码设断点调试技巧

    在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对. ...

  5. NX二次开发-C#使用DllImport调用libufun.dll里的UF函数(反编译.net.dll)调用loop等UF函数

    在写这篇文章的时候,我正在头晕,因为下班坐车回家,有些晕车了.头疼的要死.也吃不下去饭. 版本:NX11+VS2013 最近这一年已经由C++过度到C#,改用C#做应用程序开发和NX二次开发. C#在 ...

  6. 【NX二次开发】Block UI 目录

    Block UI 目录  基本   标签/位图   切换开关   枚举   字符串   多行字符串   操作按钮   列表框   分割线   对象颜色选择器   RGB颜色选择器   绘图区   图层 ...

  7. NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

    NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...

  8. NX二次开发-基于MFC界面对话框与NX交互的开发

    打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...

  9. NX二次开发-UDO用户自定义对象(UFUN)【持续完善】

    每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...

  10. NX二次开发-UFUN拉伸函数UF_MODL_create_extruded

    NX9+VS2012 //NX二次开发中常用拉伸函数为UF_MODL_create_extruded2,但是此函数不能拉伸片体, //想要拉伸片体用函数UF_MODL_create_extruded. ...

随机推荐

  1. WPF之自定义委托命令

    常用命令 WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的是RoutedCommand类,还可以使用自定义命令. RoutedCommand只负责跑腿,并不对命名目标做任何操作,实 ...

  2. 学习Python一年,这次终于弄懂了浅拷贝和深拷贝

    官方文档:copy主题 源代码: Lib/copy.py 话说,网上已经有很多关于Python浅拷贝和深拷贝的文章了,不过好多文章看起来还是决定似懂非懂,所以决定用自己的理解来写出这样一篇文章. 当别 ...

  3. [LeetCode每日一题]80. 删除有序数组中的重复项 II

    [LeetCode每日一题]80. 删除有序数组中的重复项 II 问题 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外 ...

  4. 『政善治』Postman工具 — 8、Postman中Pre-request Script的使用

    目录 1.Pre-request Script介绍 2.常用SNIPPETS(片段)说明 (1)获取变量脚本: (2)设置变量脚本: (3)清空变量脚本: (4)Send a request代码片段 ...

  5. 【BUAA软工】结对编程作业

    项目 内容 课程:2020春季软件工程课程博客作业(罗杰,任健) 博客园班级链接 作业:BUAA软件工程结对编程项目作业 作业要求 课程目标 学习大规模软件开发的技巧与方法,锻炼开发能力 作业目标 完 ...

  6. Tomcat&Http协议-授课

    1 企业开发简介 1.1 JavaEE规范 JavaEE规范是J2EE规范的新名称,早期被称为J2EE规范,其全称是Java 2 Platform Enterprise Edition,它是由SUN公 ...

  7. Django(32)自定义过滤器

    前言 虽然DTL给我们内置了许多好用的过滤器.但是有些时候还是不能满足我们的需求.因此Django给我们提供了一个接口,可以让我们自定义过滤器,实现自己的需求. 自定义过滤器 首先在某个app中,创建 ...

  8. JMeter四种参数化方式

    JMeter参数化是指把固定的数据动态化,这样更贴合实际的模拟用户请求,比如模拟多个不同账号.JMeter一共有四种参数化方式,分别是: CSV Data Set Config Function He ...

  9. Win7通过cmd进入d盘的方法

    Win7通过cmd进入d盘的方法 时间:2016-05-13 15:06:03 作者:yunchun 来源:系统之家  手机查看 评论 我们在使用Win7系统过程中,对于经常使用DOS程序的朋友们来说 ...

  10. [python3.7]列表

    >>> a['aaa']>>> b=['aasd','sss','cc']>>> a.extend(b)>>> a['aaa', ...