|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。
3 x8 n/ G6 i; c+ t; }" n; e0 G2 z# \7 P0 S9 Y, y7 }
7 r" J6 h9 |. t% j. I$ \2 q( l" g查询CATIAttributesDescription接口4 h# ~! \- e. L3 m1 @8 _
0 }$ m& G2 s. v8 B+ r
CATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。
+ o9 N3 q3 S% n4 o6 `8 t' C0 z" g) l8 R" f0 Z6 u" P6 g& L! r
CATListValCATAttributeInfos attrInfoList;
. b6 r+ u# b- gpiAttrDesc->List(&attrInfoList);
) Z( S5 i3 o8 N8 T6 F$ M! Tfor (int i = 1; i <= attrInfoList.Size(); i++)) c) R3 Q) s. I+ @& r, ~" n6 h8 ]
{0 N! t/ _9 j7 l, ?& ]/ }8 u
CATAttributeInfos attrInfo = attrInfoList[i];
* p' [3 e! I: v5 l& R/ V2 D const CATUnicodeString& propertyName = attrInfo.Name(); //属性名. G1 O1 q8 z. W0 v
const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型
0 ^/ j. V1 o) \, \/ y. Q6 x, ` cout << propertyName << "-" << valueType << endl;
# F- [ J$ e1 l& W}
' M) a6 d' g' Q% I! M8 u获取属性的属性值% p/ ~5 ]8 h, s0 H8 C, k* l! l
' f6 o. `# G( W" Q: r9 L
获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。# Z. e; J) t9 l2 s7 B: a, M1 e
% Q2 m9 U3 H! C& r) Z, v/ b//获得对应属性名的属性值* G( s% C' N: ]( F7 P1 V; `
CATIValue *pValue = piInstance->GetValue(propertyName);
" F2 [* L* o& ^+ `6 \! {CATUnicodeString value = "";
/ c5 ?' S% k& e1 L- A7 }6 I2 {pValue->AsString(value); |
|