|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。
# C+ b. X7 P& l
' y# @- q: h$ ]3 v) i) A$ G; T3 e! h3 @& M
查询CATIAttributesDescription接口
' s; i+ K: b- C: r+ T( A& m+ e/ c9 g9 J) ~
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。 ~$ e) |0 C! ^# |# u" l
# G8 c1 S' K+ A( F! HCATListValCATAttributeInfos attrInfoList; % N: x1 k1 j; d# x& |4 B+ a
piAttrDesc->List(&attrInfoList);
0 P; V, q% I8 q( Qfor (int i = 1; i <= attrInfoList.Size(); i++)
3 a* u* w, c, ?$ r. w3 u$ ~0 q S{( g: [7 ]6 O7 h% T$ B! L: q3 ^
CATAttributeInfos attrInfo = attrInfoList[i];) t) h# q2 m8 j+ U4 H" K
const CATUnicodeString& propertyName = attrInfo.Name(); //属性名/ s# ]* |; n' y
const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型
5 P, Y( b' }& Y6 N2 }* {: z& Y1 v cout << propertyName << "-" << valueType << endl;
) Y, J. U2 [, U4 z& |. ^}
6 y% S+ w$ y/ ]2 |4 j1 u获取属性的属性值
) g z R$ H; v& u: O; h
+ j' R. z$ e; I, c- J, @9 @7 F获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。
" c! l1 o: M" t' d' c
; m4 o9 T& F7 `5 a//获得对应属性名的属性值
# m# e. D$ u! n4 Z- p1 OCATIValue *pValue = piInstance->GetValue(propertyName);
6 z+ i2 c% `, E$ gCATUnicodeString value = "";* {' X0 k) a; b/ \+ ~* z0 H6 F
pValue->AsString(value); |
|