NX二次开发——读取指定部件或者对象的属性
NX二次开发中我们为了后续出程序单,往往需要读取当前部件的属性,或者创建部件的属性。下面是关于读取指定部件或者对象的属性,当然增加了我个人的观点,主要应用于[案例一]一种自动输出数控程序清单的NX二次开发方法中的读取部件属性导出至Excel中。
下面是读取指定部件或者对象的属性具体代码:
void MyClass::do_it()
{
// TODO: add your code here
UF_initialize();
//对的当前部件属性的Tag
tag_t AttrTag = NULL_TAG;
UF_ATTR_ask_part_attribute(&AttrTag);
//查找属性
vector<string> AttrValue;
int title_type;
UF_ATTR_find_attribute(AttrTag, UF_ATTR_any, "编制人员", &title_type);
if (title_type== UF_ATTR_string)
{
//读取指定部件的某一属性
UF_ATTR_value_t value;
UF_ATTR_read_value(AttrTag, "编制人员", UF_ATTR_any, &value);
AttrValue.push_back(value.value.string);
UF_free(value.value.string);
}
else
{
uc1601("编制人员属性未定义",1);
}
int title_type2;
UF_ATTR_find_attribute(AttrTag, UF_ATTR_any, "编制日期", &title_type2);
if (title_type2 == UF_ATTR_string)
{
//读取指定部件的某一属性
UF_ATTR_value_t value;
UF_ATTR_read_value(AttrTag, "编制日期", UF_ATTR_any, &value);
AttrValue.push_back(value.value.string);
UF_free(value.value.string);
}
else
{
uc1601("编制日期属性未定义", 1);
}
int title_type3;
UF_ATTR_find_attribute(AttrTag, UF_ATTR_any, "校对人员", &title_type3);
if (title_type3 == UF_ATTR_string)
{
//读取指定部件的某一属性
UF_ATTR_value_t value;
UF_ATTR_read_value(AttrTag, "校对人员", UF_ATTR_any, &value);
AttrValue.push_back(value.value.string);
UF_free(value.value.string);
}
else
{
uc1601("校对人员属性未定义", 1);
}
int title_type4;
UF_ATTR_find_attribute(AttrTag, UF_ATTR_any, "校对日期", &title_type4);
if (title_type4 == UF_ATTR_string)
{
//读取指定部件的某一属性
UF_ATTR_value_t value;
UF_ATTR_read_value(AttrTag, "校对日期", UF_ATTR_any, &value);
AttrValue.push_back(value.value.string);
UF_free(value.value.string);
}
else
{
uc1601("校对日期属性未定义", 1);
}
int title_type5;
UF_ATTR_find_attribute(AttrTag, UF_ATTR_any, "审核人员", &title_type5);
if (title_type5 == UF_ATTR_string)
{
//读取指定部件的某一属性
UF_ATTR_value_t value;
UF_ATTR_read_value(AttrTag, "审核人员", UF_ATTR_any, &value);
AttrValue.push_back(value.value.string);
UF_free(value.value.string);
}
else
{
uc1601("审核人员属性未定义", 1);
}
int title_type6;
UF_ATTR_find_attribute(AttrTag, UF_ATTR_any, "审核日期", &title_type6);
if (title_type6 == UF_ATTR_string)
{
//读取指定部件的某一属性
UF_ATTR_value_t value;
UF_ATTR_read_value(AttrTag, "审核日期", UF_ATTR_any, &value);
AttrValue.push_back(value.value.string);
UF_free(value.value.string);
}
else
{
uc1601("审核日期属性未定义", 1);
}
for (int i = 0; i < (int)AttrValue.size(); i++)
{
print(AttrValue[i]);
}
UF_terminate();
}