|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。
/ C& T1 x" T* D: \, T& Q2 p* F$ E5 O& p% ^8 v1 q, Q4 X5 B
" E0 s, }) T O; J( {
查询CATIAttributesDescription接口
4 w* q9 a1 I4 t3 r- l: D& G- \9 L9 I/ D& s, M+ v
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。 L' {. y! d( j( {4 ~
" K/ b0 p# N1 q. K9 R* E u
CATListValCATAttributeInfos attrInfoList; ! L# z7 } `, V X9 ?: G; ^8 w0 l
piAttrDesc->List(&attrInfoList);
( Y# R7 L- b9 P2 rfor (int i = 1; i <= attrInfoList.Size(); i++)2 ^1 V! V; } H8 _! S k" f/ d/ k
{* v1 Q! |3 T+ D% ]- Y! Y
CATAttributeInfos attrInfo = attrInfoList[i];
1 y3 B' e" e" J+ {0 M const CATUnicodeString& propertyName = attrInfo.Name(); //属性名
! t0 B- Y2 A9 O* j" B# C const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型
4 @ k% p- o! x4 h9 `* A: ^) y0 e cout << propertyName << "-" << valueType << endl;7 E5 u7 b! b/ v) ?/ I- u6 n0 j
}+ I& o5 I! M) n- f
获取属性的属性值+ I* T) s4 g( e: t( F8 p
/ ?7 g$ j3 u0 A; v3 o获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。/ V2 |% {) a+ F: H l8 }9 Y, U1 E5 @# v$ Y
' a3 y* S( _% h n, z
//获得对应属性名的属性值
. U$ Q. b2 t% O0 _' f4 l5 q; PCATIValue *pValue = piInstance->GetValue(propertyName); * U) R1 V& \; d% Y
CATUnicodeString value = "";
! M% M( z1 L) E1 [& B$ ]4 K# [pValue->AsString(value); |
|