|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。; z; N* V4 t* ]7 U: }, e: A# g0 S
O) G2 }8 ]6 H8 o& r: l
X$ P; C7 D5 V, ?& h( H查询CATIAttributesDescription接口
0 M# h$ t' y9 {9 s' ?& B7 R
* d' ~! u) T0 y8 j3 i9 h( c' Z8 vCATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。6 U5 D, L [* R7 ~ i5 H% }4 `
9 V2 R# x0 b% l* ~: |9 G7 X9 i: ^CATListValCATAttributeInfos attrInfoList;
: G4 v$ @1 R6 ?4 ?8 BpiAttrDesc->List(&attrInfoList);2 H3 B$ X) B5 \' B9 {$ T! K, z
for (int i = 1; i <= attrInfoList.Size(); i++)
- {) k* Z4 S6 T2 E* j9 _{
9 V* ~- X& t) i' o CATAttributeInfos attrInfo = attrInfoList[i];. X$ K# l" R4 S$ Y
const CATUnicodeString& propertyName = attrInfo.Name(); //属性名& h. t3 q% n$ C- c$ M
const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型6 @% ^$ _/ Y. w g: N0 m) {; Y- g
cout << propertyName << "-" << valueType << endl;
3 C+ E! q" m* J x# o( t( X}# |- ~; z4 T7 e
获取属性的属性值
2 S8 {0 D1 _& w8 `3 N
- `' {+ h) Z9 U9 |6 f! `5 g获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。) x0 P2 v& @) v" j h9 e) T
+ s' g; U* r" H S8 U! l K//获得对应属性名的属性值" W6 m! c! G" g; Z, G6 T* q
CATIValue *pValue = piInstance->GetValue(propertyName);
2 O, E$ C& w' Y% \" E1 L& JCATUnicodeString value = "";
" y# ]0 _) g+ mpValue->AsString(value); |
|