内容包括:
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. [LeetCode每日一题]153.寻找旋转排序数组中的最小值

    [LeetCode每日一题]153.寻找旋转排序数组中的最小值 问题 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组.例如,原数组 nums = [0,1, ...

  2. 【python】Leetcode每日一题-丑数

    [python]Leetcode每日一题-丑数 [题目描述] 给你一个整数 n ,请你判断 n 是否为 丑数 .如果是,返回 true :否则,返回 false . 丑数 就是只包含质因数 2.3 和 ...

  3. dubbo服务暴露原理-远程暴露

    1.与本地暴露相比,远程暴露也大同小异 我们已经到了第三个关键词Procotol我们来看看他的继承体系图 按照经典图的路线,我们下一个关键词应该就是Server了,从方法名openServer(url ...

  4. spring中注解@Resource 与@Autowire 区别

    ① .@Resource 是根据名字进行自动装配:@Autowire是通过类型进行装配. ②. @Resource 注解是 jdk 的:@Autowire 是spring的.

  5. 关于有符号数和无符号数的转换 - C/C++

    转载自:http://www.94cto.com/index/Article/content/id/59973.html 1.引例: 今天在做了一道关于有符号数和无符号数相互转换及其左移/右移的问题, ...

  6. 消息队列RabbitMQ(二):RabbitMQ的系统架构概述

    前言 RabbitMQ是基于AMQP协议的,要想深入理解RabbitMQ,就必须先了解AMQP是个什么东东? AMQP协议 AMQP即Advanced Message Queuing Protocol ...

  7. 优启通-PE启动盘制作工具 原版Win7系统安装超详细教程!!!!!

    https://www.jianshu.com/p/cd4abc9889b6 前期准备 原版Win7系统ISO映像文件 PE启动U盘或系统光盘(本教程以纯净无捆绑的优启通PE为示例) 优启通v3.3下 ...

  8. Docker Swarm(十一)生产环境使用的一些建议

    一.Docker Swarm上的容器选择 并非所有服务都应该部署在Swarm集群内.数据库以及其他有状态服务就不适合部署在Swarm集群内. 理论上,你可以通过使用labels将容器部署到特定节点上, ...

  9. HAProxy之三----keepalived配合脚本对HAProxy、ping网关实现高可用检测

    调用脚本参数含义 vrrp_script<SCRIPT_NAME> { #定义一个检测脚本,在global_defs之外配置 script <STRING>|<QUOTE ...

  10. # useradd -u 700 -g users vbird2

    [root@linux ~]# ls -l /homedrwxr-xr-x 3 vbird1 vbird1 4096 Aug 30 17:33 vbird1[root@linux ~]# grep v ...