|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。
b% x. Q/ m ^* f) o% p f2 B) d V/ w9 [
7 B2 [5 w7 D6 Y/ u9 {" t6 w5 `) N/ K
查询CATIAttributesDescription接口# s7 F5 o. D5 v
8 _2 v! i0 ~5 e4 F9 tCATIAttributesDescription是CAA中用来获取属性的接口,其包含FindByNLSName、FindByName和List三个方法。最常用的是通过List方法一次性获取所有的属性,此方法只能获取属性的名称和类型。4 S+ j, l; U# M$ D+ Z( e6 p p
) O4 Y" [/ ^! g3 K, e8 j% B, \- @CATListValCATAttributeInfos attrInfoList;
9 k3 H$ @* A; X! _& ]piAttrDesc->List(&attrInfoList);3 c4 h! v$ F* Q
for (int i = 1; i <= attrInfoList.Size(); i++)6 ~1 R5 \. e0 c6 H/ b
{
" \2 f* @- U5 p* B! R2 m6 e CATAttributeInfos attrInfo = attrInfoList[i];
% o" u% ?& }! i3 L- S! ? const CATUnicodeString& propertyName = attrInfo.Name(); //属性名
# S( Z! i5 g4 J# N4 T const CATUnicodeString& valueType = attrInfo.Type()->Name(); //属性类型) E; P6 s3 O% Y6 k* S
cout << propertyName << "-" << valueType << endl;' E' a7 [; _/ E+ s7 T% l2 Z
}
. N; M. H* k+ a9 Y5 H获取属性的属性值) \5 d# a( Y. R4 t. O5 _/ H2 z
) K- G% z. f8 ?: e获取属性值的方法GetValue被定义在CATIInstance接口下,一般可以直接从对象查询接口获得。# a5 j2 ~9 v9 L# h5 j
) u' y1 i; O* n; K2 x( C//获得对应属性名的属性值
3 i# }5 S6 i7 Q. J: \( P) WCATIValue *pValue = piInstance->GetValue(propertyName);
$ w! \4 i; t0 {* rCATUnicodeString value = "";
1 U5 |4 _5 c( `4 U: j- fpValue->AsString(value); |
|