首页 > 其他分享 >ZW3D二次开发_文件_操作用户属性

ZW3D二次开发_文件_操作用户属性

时间:2024-04-07 17:29:23浏览次数:28  
标签:attr ZW3D 用户 label VX userAttrs 二次开发 属性

1.什么是文件用户属性?

文件用户属性是指用户保存在ZW3D文件内的自定义属性。

如下图打开ZW3D文件用户属性界面可查看用户属性:

2.如何使用代码操作文件用户属性?
1)添加用户属性
    //添加用户属性
	const int number = 5;
	svxAttribute userAttrs[number] = { 0 };

	strcpy_s(userAttrs[0].label, "字符串");
	userAttrs[0].type = VX_ATTR_STRING;//字符串类型
	strcpy_s(userAttrs[0].data, "字符串用户属性值");

	strcpy_s(userAttrs[1].label, "布尔");
	userAttrs[1].type = VX_ATTR_BOOL;//布尔类型
	userAttrs[1].dValue = TRUE;//布尔值

	strcpy_s(userAttrs[2].label, "整数");
	userAttrs[2].type = VX_ATTR_INT;//整数类型
	userAttrs[2].dValue = 666;//整数值

	strcpy_s(userAttrs[3].label, "数字");
	userAttrs[3].type = VX_ATTR_REAL;//数字类型(实数)(常量、无单位)
	userAttrs[3].sub_type = VX_UNDEF;//常量
	userAttrs[3].dValue = 1000.66;//值

	strcpy_s(userAttrs[4].label, "质量");
	userAttrs[4].type = VX_ATTR_REAL; //数字类型(实数)(非常量、有单位)
	userAttrs[4].sub_type = VX_MASS;//质量
	userAttrs[4].unit = VX_UNIT_KG;//质量单位
	userAttrs[4].dValue = 1000.66;//值
	int delOrgAt = FALSE;//不删除原有的所有用户属性
	ZF_CALL(cvxPartUserAtSet(fileName, rootName, delOrgAt, number, userAttrs));

添加后效果如下图:

2)获取用户属性
    //获取特定名称的用户属性 | Get the user attribute for a specific name
	svxAttribute attr;
	strcpy_s(attr.label, "字符串");
	ZF_CALL(cvxPartAtItemGetInFile(fileName, rootName, evxAtItemId::VX_AT_USER, &attr));
	WriteMessage("用户属性[%s] = %s", attr.label, attr.strValue);

    //获取所有用户属性 | Get all user attributes
	int userAttributeListCount = 0;
	svxAttribute* pUserAttributeList = NULL;
	ZF_CALL(cvxPartUserAtGet(fileName, rootName, &userAttributeListCount, &pUserAttributeList));
	WriteMessage("共读到了[%d]个用户属性", userAttributeListCount);
	for (int i = 0; i < userAttributeListCount; i++) {
		WriteMessage("用户属性[%d] = [%s]", i, pUserAttributeList[i].label);
	}
	ZF_VOID(cvxMemFree((void**)&pUserAttributeList));
3)修改用户属性
	//建议先获取后修改,不容易出错。也可直接修改
    //获取特定名称的用户属性 | Get the user attribute for a specific name
	svxAttribute attr;
	strcpy_s(attr.label, "字符串");
	ZF_CALL(cvxPartAtItemGetInFile(fileName, rootName, evxAtItemId::VX_AT_USER, &attr));
	WriteMessage("用户属性[%s] = %s", attr.label, attr.strValue);

	//修改特定名称的用户属性
	strcpy_s(attr.data, "新字符串值");
	ZF_CALL(cvxPartAtItemSetInFile(fileName, rootName, evxAtItemId::VX_AT_USER, &attr));

修改后效果如下图:

4)删除用户属性
    //删除用户属性
	vxLongName deleteItemlabel = "质量";
	ZF_CALL(cvxPartAtItemDel(evxAtItemId::VX_AT_USER, deleteItemlabel));
	WriteMessage("已删除用户属性:[%s]", deleteItemlabel);

删除后效果如下图:

标签:attr,ZW3D,用户,label,VX,userAttrs,二次开发,属性
From: https://blog.csdn.net/weixin_38877807/article/details/137470649

相关文章

  • qt Qml qml MouseArea的属性和信号方法
    Mousearea属性:​acceptedButtons:​接受的鼠标按键,默认是左键Qt.LeftButton|Qt.RightButton|Qt.AllButtons等等​pressedButtons:​按下的是什么键?左键or右键等Rectangle{color:"yellow"anchors.centerIn:parentwidth:200hei......
  • 软件系统质量属性_2.面向架构评估的质量属性
        为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。1.性能     性能(Performance)是......
  • 强制设置和恢复依赖属性值(类似WPF内置的Style.Trigger和Template.Trigger)
    WPF元素的依赖属性的值由众多规则决定,最高优先级的规则决定依赖属性的最终当前值。如本地值>继承值>默认值。可以临时忽略一切规则,强制为依赖属性指定一个值,相当于强行插入一个最高优先级规则,后续可以删除此强制值(最高优先级规则),将依赖属性的值恢复成原来的计算规则。这个......
  • C# 属性与结构
    C#属性C#属性,属性是一种特殊的类成员。我们使用预定义的set和get方法来访问和修改它们。属性读取和写入会转换为获取和设置方法调用。与使用自定义方法调用(例如object.GetName())相比,使用字段符号(例如object.Name)访问变量更容易。但是,就属性而言,我们仍然具有封装和信息......
  • Property属性使用
    ★基本定义一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法★property属性的两种方式装饰器=>在方法上应用装饰器类属性=>在类中定义值为property对象的类属性★装饰器方式代码示例classGoods(object):def__init__(self):......
  • 第三个OpenGL程序,shaders _ 后续 之 moreAttribute (设置顶点位置属性 颜色位置属性),从
    效果: 代码main.cpp#include<iostream>#include<glad/glad.h>#include<glfw3.h>#include<math.h>usingnamespacestd;//回调函数,每当窗口改变大小,视口大小也跟随改变voidframebuffer_size_callback(GLFWwindow*window,intwidth,intheight){glV......
  • day18java学习打卡:类中属性的使用
    /* *类中属性的使用: *  *属性(成员变量) vs 局部变量 *1.相同点: * 1.1定义变量的格式:数据类型变量名=变量值; * 1.2先声明,后使用 * 1.3变量都有其对应的作用域 *  *  *2.不同点: * 2.1在类中声明的位置不同 *   属性:直接......
  • 网页前端之html表单相关属性
                      表单input标签和表单相关属性        学习过HTML的朋友都会了解到,想要制作一个表单,我们首先要有一个最外层的容器来容纳我们用HTML所写的编程语句,所以今天我们所学的第一个HTML标签就是<form>标签。  ......
  • HTML标签属性
    ​ HTML(超文本标记语言)标签的属性为网页元素定义了额外的信息,用于调整元素的行为或外观。每个HTML标签都可以有多个属性,但某些属性只适用于特定的标签。属性提供了丰富的方式来控制HTML元素的行为和表示,是Web开发中不可或缺的部分。通过合理使用这些属性,可以提升网页的功能性、......
  • nextjs 的函数,参数,属性装饰器的使用
    //属性装饰器constdoc1:PropertyDecorator=(target:any,val:string|symbol)=>{console.log(target);console.log(val);val="覆盖";}//方法装饰器constdoc2:MethodDecorator=(target:any,val:string|symbol,desc:any)=>{cons......