|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。
$ Y" F" _0 E0 r! c
& i1 T9 w$ L$ Y: ~, r6 t$ l W$ {
查询CATIAttributesDescription接口+ H& f, u0 e$ V8 i( i
2 F: [5 Y5 P# L* L6 [) JCATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。! j+ v5 u: p# Q
! n: }' J8 B* ~3 m: _CATListValCATAttributeInfos attrInfoList;
0 V& b/ U# d* P- IpiAttrDesc->List(&attrInfoList);
7 V( W2 j2 {5 F' N5 I* m+ g5 [for (int i = 1; i <= attrInfoList.Size(); i++): z1 ~8 l$ ^$ P- Q/ B1 [
{
/ E8 O. J' {: H/ h( S9 a CATAttributeInfos attrInfo = attrInfoList[i];8 a( e; C. a0 e8 j1 B8 M1 j
const CATUnicodeString& propertyName = attrInfo.Name(); //属性名
i. Z: G5 T( G' a, [) N* e+ _% N const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型2 H3 M" Y0 O: {' _4 C, S4 e
cout << propertyName << "-" << valueType << endl;
y2 i7 M9 @: [9 V. ~* g& @}
9 t2 v, M% a1 r- ~4 P0 T) {; Z获取属性的属性值- v1 m% ^4 D# A i
* [* E* ?# p& J8 l: L j7 x获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。$ ?" ^- ^" R7 b# e( A% t
7 I. _4 g2 Y6 a2 f$ h
//获得对应属性名的属性值
2 r# U \! S6 }! |) gCATIValue *pValue = piInstance->GetValue(propertyName);
" j: z; j8 ?0 i$ ^1 sCATUnicodeString value = "";
! M$ |3 O4 t4 R0 \pValue->AsString(value); |
|