|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。
/ c* x% @- }% W |
0 }/ S3 r) i" W9 k9 d" j6 {, a4 `4 B+ R( ?
查询CATIAttributesDescription接口0 `: G# L. J0 x) c- t
1 |- m# C" Z. `
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。
% k; \ E* }/ H1 |% P4 h
6 L6 [4 p( K5 u! W$ e& aCATListValCATAttributeInfos attrInfoList; * u+ N! C5 u5 |; _
piAttrDesc->List(&attrInfoList);8 [ H7 Z- d+ ]0 X& J
for (int i = 1; i <= attrInfoList.Size(); i++)
" Y" A5 \0 q% t{
# E8 ?7 i* t8 b4 n _5 v& i CATAttributeInfos attrInfo = attrInfoList[i];3 S/ F' \* E ~- _+ Q; R7 e4 F
const CATUnicodeString& propertyName = attrInfo.Name(); //属性名
2 {1 f' E' I( R+ x7 T const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型4 N/ Z$ i8 N* V8 h5 Y3 h0 D- w& ~0 }/ ^4 h
cout << propertyName << "-" << valueType << endl;
- [1 D$ H/ p' s}2 R, _/ H4 X# {' c: |( O7 j1 D
获取属性的属性值0 _! a) r% w; J1 Y8 F
2 j# M3 D" B) ^# b) n" `. e! u
获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。
0 A, C4 x& y: I4 ~4 h8 S) s+ p; d! g0 N$ b+ Y
//获得对应属性名的属性值/ b4 r4 C0 @- U, H; T+ M
CATIValue *pValue = piInstance->GetValue(propertyName);
+ H" m: _9 H( B" g/ A! [CATUnicodeString value = ""; A- q# U# T- J7 A6 Y
pValue->AsString(value); |
|