|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。5 z0 q; b- l( s% a& X# G9 D
2 c$ \( t/ [ a0 ]( F0 e6 V. q
, M4 A4 @7 J. b0 {* f$ t查询CATIAttributesDescription接口" g" V+ ]- ]% O7 j8 N- N
! p D- X7 z, s& B! v9 A8 e) J
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。
/ s M: L7 j9 Y6 w$ Y
. \0 y9 \- {( _2 o$ k' Y) c, gCATListValCATAttributeInfos attrInfoList;
, B4 f6 T. N# j3 TpiAttrDesc->List(&attrInfoList);
0 V- S$ k( u. Tfor (int i = 1; i <= attrInfoList.Size(); i++)
* c' O6 {. g7 _' J/ ?& f" V8 |{
% g# r1 O; ?8 m5 M$ N! |1 I CATAttributeInfos attrInfo = attrInfoList[i];7 |- m2 ]) V+ I& |; x8 M9 P/ M
const CATUnicodeString& propertyName = attrInfo.Name(); //属性名
6 M% F# H+ n+ j ~: p6 F8 I; G0 E const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型+ v8 o3 k, p" I; \' o* c$ U
cout << propertyName << "-" << valueType << endl;
+ a, p0 _2 `/ |}1 J' E1 M7 c! N, M6 a* g) m" F# ?+ I
获取属性的属性值
# p- s: Z# f+ K% s) D1 A, r( x4 c( m( Y! C; y3 D/ v1 z
获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。
4 ~' a8 l, |4 u6 q r
" [8 o" w) A; ?7 R' }//获得对应属性名的属性值* t2 R/ ^8 [9 [1 ~6 s7 o$ r
CATIValue *pValue = piInstance->GetValue(propertyName); 2 R) R6 x+ o- v
CATUnicodeString value = "";
' l( Y' x. Z( J# ApValue->AsString(value); |
|