|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。1 K* y* s/ X" X9 ?( e
/ b) N& E; C3 o( ~8 E
* i( y0 I* E; }6 ~- G' {$ T3 z. f查询CATIAttributesDescription接口
* R; }4 w. _1 _2 u# \" D7 E& x. v: L* T; t3 \' o1 k8 H" r. f
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。
- g3 f! ?8 W7 k$ G$ f
1 d1 G9 a! H( E R, U7 J fCATListValCATAttributeInfos attrInfoList;
5 Q. b" {$ ~& H- T8 K; t* H2 tpiAttrDesc->List(&attrInfoList);( H/ a1 n F/ {
for (int i = 1; i <= attrInfoList.Size(); i++)
7 q# V( W3 Q2 t* L{
+ x4 W3 M. }" z CATAttributeInfos attrInfo = attrInfoList[i];
" j3 n/ z4 s; a+ Q. x# f& v& d4 k; [ const CATUnicodeString& propertyName = attrInfo.Name(); //属性名
9 i2 B" Y. K3 C* a+ v, H8 _ const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型
! ^% F* w, x8 @% G, s1 S cout << propertyName << "-" << valueType << endl;0 p( f/ ~6 u' l- ]/ Y
}( `+ b; c# l6 j* T( }3 `7 t# E
获取属性的属性值3 x7 U9 A8 s4 K x* S# }' X; U4 p
8 Q$ {' O- s4 m
获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。
+ A8 x& k& t/ s6 @5 a3 N* O2 [1 ~4 L3 Y$ t- ~5 S; W
//获得对应属性名的属性值
% R5 {# ?: z/ A3 W! k% H6 uCATIValue *pValue = piInstance->GetValue(propertyName);
+ l6 g/ Z6 G( I" U( s9 x* uCATUnicodeString value = ""; {* g4 D; _! n9 B6 |" A3 d8 T1 V% c
pValue->AsString(value); |
|