内容包括:
1.属相创建
2.判断属性是否存在
3.读取属性值
4.时间属性转换成字符串
5.统计属性的数量
6.删除指定属性
7.删除全部属性

源码:

  1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <uf.h>
4 #include <uf_attr.h>
5 #include <uf_cfi.h>
6 #include <uf_curve.h>
7
8 #define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
9 static int report(char *file, int line, char *call, int irc)
10 {
11 if (irc)
12 {
13 char messg[133];
14 printf("%s, line %d: %s\n", file, line, call);
15 (UF_get_fail_message(irc, messg)) ?
16 printf(" returned a %d\n", irc) :
17 printf(" returned error %d: %s\n", irc, messg);
18 }
19 return(irc);
20 }
21 static void do_ugopen_api(void)
22 {
23 //声明变量
24 tag_t pnt;
25 double zero[3] = { 0,0,0 };
26 UF_ATTR_value_t value;
27 //创建一个点来分配属性
28 UF_CALL(UF_CURVE_create_point(zero, &pnt));
29 //分配一个“整型”属性给对象
30 value.type = UF_ATTR_integer;
31 value.value.integer = 1;
32 UF_CALL(UF_ATTR_assign(pnt, "INTEGER_ATTRIBUTE", value));
33 //分配一个“数字”属性给对象
34 value.type = UF_ATTR_real;
35 value.value.real = 1.5;
36 UF_CALL(UF_ATTR_assign(pnt, "REAL_ATTRIBUTE", value));
37 //分配一个“日期”属性给对象
38 value.type = UF_ATTR_time;
39 //初始化到当前日期和时间
40 //uc4583 将字符串转换为NX能读取的日期格式
41 //第一个参数:输入日期字符串,如果为空则为当前日期(样式有多种)
42 //第二个参数:输入时间字符串,如果为空则为当前日期(样式有多种)
43 UF_CALL(uc4583("", "", value.value.time));
44 UF_CALL(UF_ATTR_assign(pnt, "DATE_AND_TIME_ATTRIBUTE", value));
45 //分配一个“空”属性给对象
46 value.type = UF_ATTR_null;
47 UF_CALL(UF_ATTR_assign(pnt, "NULL_ATTRIBUTE", value));
48 //分配一个“字符串”属性给对象
49 value.type = UF_ATTR_string;
50 value.value.string = "这是个字符串";
51 UF_CALL(UF_ATTR_assign(pnt, "STRING_ATTRIBUTE", value));
52 //分配一个“布尔”属性给对象
53 value.type = UF_ATTR_bool;
54 value.value.string = "这是个布尔";
55 UF_CALL(UF_ATTR_assign(pnt, "BOOL_ATTRIBUTE", value));
56
57 //读取属性值 判断属性是否存在
58 UF_ATTR_value_t valueTemp;
59 int iAttrType = UF_ATTR_any;
60 UF_CALL(UF_ATTR_read_value(pnt, "STRING_ATTRIBUTE", iAttrType, &valueTemp));
61 if (valueTemp.type == 0)
62 {
63 //此属性不存在
64 }
65
66 //valueTemp.type 5
67 //valueTemp.value.string 字符串值abc
68 UF_free(valueTemp.value.string);
69
70 //读取属性值
71 UF_ATTR_value_t valueTemp2;
72 UF_CALL(UF_ATTR_read_value(pnt, "DATE_AND_TIME_ATTRIBUTE", iAttrType, &valueTemp2));
73 char cDate[20] = "";
74 char cTime[20] = "";
75 //uc4582 将NX的日期格式转换为字符串
76 //第一个参数输入{-1,-1}则为当前日期时间
77 //第二个参数为日期样式
78 UF_CALL(uc4582(valueTemp2.value.time, 1, cDate, cTime));
79 //cDate 08/04/20
80 //cTime 15:48
81
82 //按类型统计属性的数量
83 int iAttrCount = 0;
84 UF_CALL(UF_ATTR_count_attributes(pnt, UF_ATTR_any, &iAttrCount));
85
86 return;
87 //删除指定属性
88 UF_CALL(UF_ATTR_delete(pnt, iAttrType, "STRING_ATTRIBUTE"));
89
90 //删除所有属性
91 UF_CALL(UF_ATTR_delete_all(pnt, iAttrType));
92 return;
93 }
94
95 void ufusr(char *param, int *retcode, int param_len)
96 {
97 if (!UF_CALL(UF_initialize()))
98 {
99 do_ugopen_api();
100 UF_CALL(UF_terminate());
101 }
102 }
103 int ufusr_ask_unload(void)
104 {
105 return (UF_UNLOAD_IMMEDIATELY);
106 }

效果:

【NX二次开发】属性操作总结的更多相关文章

  1. NX二次开发-克隆操作

    模板文件: 克隆替换字符串: 1 #include "Text.h" 2 extern DllExport void ufsta(char *param, int *returnC ...

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

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

  3. NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

    在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...

  4. C# NX二次开发环境搭建

    在网上看到一篇C#二次开发环境搭建的文章:NX二次开发-使用NXOPEN C#手工搭建开发环境配置 ,写得非常好.我按照文章操作,过程中遇到几个问题,把问题分享给大家,希望对各位有帮助. 注意三点: ...

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

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

  6. NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条

    半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...

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

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

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

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

  9. 【NX二次开发】Block UI 指定点

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  10. 【NX二次开发】Block UI 指定矢量

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

随机推荐

  1. (邹博ML)数学分析与概率论

    机器学习入门 深度学习和机器学习? 深度学习在某种意义上可以认为是机器学习的一个分支,只是这个分支非常全面且重要,以至于可以单独作为一门学科来进行研究. 回忆知识 求解S. 对数函数的上升速度 我们使 ...

  2. gitlab + php自动部署

    功能简介 本地往服务器推送代码之后,触发web钩子,服务器拉取刚刚推送的代码 步骤 1.在gitlab后台配置钩子 项目->编辑项目->Web钩子->新增钩子 2.在服务器端为www ...

  3. 【TensorFlow】Win7下使用Object Detection API 训练自己的数据集,并视频实时检测

    说明: 图片:自己开的摄像头,截取的图片.选择了200张图片.下面会有截取的脚本. 使用labelImg工具进行图片进行标注.产生PascalVOC格式的XML文件.[labelImg工具的安装和使用 ...

  4. layui中的多图上传

    效果展示: 1.html部分: 注:<input> 作为隐藏域,用于保存多图上传的资源数组,方便后期进行 form 表单的提交 <input type="hidden&qu ...

  5. 如何在centos上配置802.1Q VLAN标记,linux单网卡多vlan多网段Ip配置案例

    介绍 VLAN使将大型网络分成较小且易于管理的网络成为可能.802.1Q是所有供应商都在其网络设备中实施的标准.某些交换机能够将多个VLAN分配给单个网络端口.使用此功能,您可以将多个VLAN分配给单 ...

  6. 简单聊聊VisualStudio的断点调试

    这节聊聊如何使用VisualStudio进行断点调试. 在debug过程中,我们有时需要查看程序在运行到某一行代码时,上下文中的变量或者一些其他的数据是什么样的,我们就要设置断点(Breakpoint ...

  7. 推荐一个不得不知道的 Visual Studio 快捷键

    不得不说,Visual Studio 内置了很多非常棒的快捷键,借助于这些快捷键我们甚至不需要再使用鼠标,就可以快速高效的编写代码,因此学习和熟悉这些快捷键是值得的. 其中有一个快捷键是我非常喜欢,也 ...

  8. Codeforces Round #697 (Div. 3)

    A.Odd Divisor 题意:问一个数是不是含有奇数因子 思路:就直接给这个数循环除以2,看看最后剩下的数是不是0,如果不是就有奇数因子,如果是就没有 想不到:1)当时想着用log2来解决问题,后 ...

  9. Java on Visual Studio Code的更新 – 2021年4月

    杨尧今 from Microsoft VS Code Java Team 欢迎来到这一期的VS Code Java更新.又是一个忙碌而富有成效的月份. Java调试器和Java测试扩展获得了新功能.在 ...

  10. [DB] Spark Core (1)

    生态 Spark Core:最重要,其中最重要的是RDD(弹性分布式数据集) Spark SQL Spark Streaming Spark MLLib:机器学习算法 Spark Graphx:图计算 ...