NXOpenC属性操作

1.属性基本介绍

查看属性,文件->属性

使用VS创建项目,找到do_it(),在do_it()里面进行修改

删除属性,使用UF_ATTR_delete(),第一个参数是部件的TAG,第二个参数是属性的类型,第三个属性名字。

下标是属性类型

类型
整型UF_ATTR_integer
实数类型UF_ATTR_real
时间类型UF_ATTR_time
空类型UF_ATTR_null
字符串类型UF_ATTR_string
任意类型UF_ATTR_any
引用类型UF_ATTR_reference
布尔类型UF_ATTR_bool
	UF_initialize();
	//获取当前部件的TAG
	tag_t WorkPartTAG = UF_ASSEM_ask_work_part();
	//删除指定属性
	UF_ATTR_delete(WorkPartTAG, UF_ATTR_any, "APPROVER");

运行结果:

删除所有属性,有一些属性是不能删除的

	//删除所有属性
	UF_ATTR_delete_all(WorkPartTAG, UF_ATTR_any);

运行结果:

创建或修改属性

使用UF_ATTR_assign()创建,第一个参数是部件的TAG值,第二个是属性名称,第三个是UF_ATTR_value_t类型,用于存储属性的类型和值

	//获取部件属性的TAG
	tag_t attr = NULL_TAG;
	UF_ATTR_ask_part_attribute(&attr);
	//创建bool属性
	UF_ATTR_value_t value;
	value.type = UF_ATTR_bool;
	value.value.boolean = false;
	UF_ATTR_assign(attr, "布尔型", value);
	//创建整型
	value.type = UF_ATTR_integer;
	value.value.integer = 12;
	UF_ATTR_assign(attr, "整型", value);
	//创建实数型
	value.type = UF_ATTR_real;
	value.value.real = 50.3;
	UF_ATTR_assign(attr, "实数型", value);
	//创建空类型
	value.type = UF_ATTR_null;
	UF_ATTR_assign(attr, "空类型", value);
	//创建字符串类型
	value.type = UF_ATTR_string;
	value.value.string = "内容";
	UF_ATTR_assign(attr, "字符串类型", value);
	//创建应用类型
	value.type = UF_ATTR_reference;
	value.value.reference = "<X0.3@a>";//a=100.5,a是表达式
	UF_ATTR_assign(attr, "引用型", value);
	//创建时间类型
	value.type = UF_ATTR_time;
	uc4583("", "", value.value.time);
	UF_ATTR_assign(attr, "时间", value);

查找属性

使用UF_ATTR_find_attribute(),第一个是部件的TAG,第二个是类型,第三个是属性名,第四个是输出一个int类型的变量

	//得到部件的TAG
	tag_t WorkPartTAG = UF_ASSEM_ask_work_part();
	//查找属性
	int title_type;
	UF_ATTR_find_attribute(WorkPartTAG, UF_ATTR_any, "字符串类型", &title_type);
	//转换
	char msg[256];
	sprintf(msg, "%d", title_type);
	//打印
	UF_UI_open_listing_window();
	UF_UI_write_listing_window(msg);

输出的是一个int,对应类型

类型 编号
整型UF_ATTR_integer 1
实数类型UF_ATTR_real 2
时间类型UF_ATTR_time 3
空类型UF_ATTR_null 4
字符串类型UF_ATTR_string 5
任意类型UF_ATTR_any 6
引用类型UF_ATTR_reference 7
布尔类型UF_ATTR_bool 8
没有找到 0

 遍历属性,字符串类型并输出

	//打开信息窗口
	UF_UI_open_listing_window();
	//遍历属性
	int index = 0;
	char title[UF_ATTR_MAX_TITLE_BUFSIZE + 1];
	UF_ATTR_value_t value;
	UF_ATTR_cycle(WorkPartTAG, &index, UF_ATTR_any, title, &value);

	while (index)
	{
		if (value.type==UF_ATTR_string)
		{
			UF_UI_write_listing_window(title);
			UF_UI_write_listing_window("=");
			UF_UI_write_listing_window(value.value.string);
			U
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值