|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。: }. V! o0 y4 K& z2 ?, m
* h2 @/ m. H4 s& |& D7 h
3 P" q8 o9 P- \9 N `查询CATIAttributesDescription接口
; [' o {( O- L' K- S/ D# p7 |# I. S7 L) }3 s
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。
8 g6 U4 }; O, `4 ]; a/ C4 a& F& n- n9 Z) b" w2 c- P, S
CATListValCATAttributeInfos attrInfoList;
" C, G3 Y Z K( k! JpiAttrDesc->List(&attrInfoList);
! e6 c' p: R. K) L' i' g% k' Qfor (int i = 1; i <= attrInfoList.Size(); i++)
4 D1 T: s, v7 [& R' v{
3 ?4 @& B" T; H* ^9 c CATAttributeInfos attrInfo = attrInfoList[i];
m, T( m+ }* u: l1 ? const CATUnicodeString& propertyName = attrInfo.Name(); //属性名
$ ~4 H5 ~# U9 e& x: J4 p6 S const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型
1 |8 i& ]) c! N0 T( ]( N! O cout << propertyName << "-" << valueType << endl;+ q& `4 n% e6 B8 O4 [
}5 k1 _+ m# n/ Z0 a1 P
获取属性的属性值9 s* Q/ @3 H$ m
; r$ {; p. x o$ o* D9 n* \5 N
获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。
6 h& Q7 X6 V+ y* ]5 i! }5 V- d$ {% M0 I$ ?) D
//获得对应属性名的属性值
$ P" I: c4 Y' iCATIValue *pValue = piInstance->GetValue(propertyName); * ?9 R4 P* B R9 g& Y" G" T
CATUnicodeString value = "";
3 K w' Y6 l/ j/ }9 F" YpValue->AsString(value); |
|