|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。# i4 m) N3 [* Q% M# \
* Y- |8 n) o% \6 o2 z) Z; w6 l$ i. r" z* O" g* ?6 \
查询CATIAttributesDescription接口( Q0 Y5 Z+ a, |) Q8 w( |# `9 R
/ g9 [& ^3 h* n3 I
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。
! X0 ] w* e/ I. z
. Q# V' a2 o* ?CATListValCATAttributeInfos attrInfoList; ' S6 P( |% @+ T7 s, f; ? f
piAttrDesc->List(&attrInfoList);1 k. h7 ], K; k0 ^/ K7 S
for (int i = 1; i <= attrInfoList.Size(); i++)% D* y4 T0 B9 G% r, H
{
! p0 z2 {; i% [6 n CATAttributeInfos attrInfo = attrInfoList[i];
( Y2 k2 x4 B D, t4 k4 M+ Z4 U+ t5 ? const CATUnicodeString& propertyName = attrInfo.Name(); //属性名# V: ?8 `# [$ a& E% `9 G
const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型
# [" y/ M/ S) q: _ r4 g1 l cout << propertyName << "-" << valueType << endl;0 z+ B9 K: g% R, X- P, u8 O' a( i
}
}% l! C/ b9 T" t* l% ] x获取属性的属性值+ t0 B* E7 I! L
) y1 C i7 z4 M" B* a获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。
2 Y, m! I6 d; R. F+ Q) x( W
* E, [& V2 ^2 e: Q1 Y# X8 U1 o//获得对应属性名的属性值
& E' |" T' @7 @7 A! vCATIValue *pValue = piInstance->GetValue(propertyName);
+ o2 ~, p! m8 m, XCATUnicodeString value = "";4 W/ e" _9 x% R5 {) c) N1 _, |
pValue->AsString(value); |
|