|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX二次开发源码分享:判断当前工作部件是否为CAE的类型
2 ?' P8 P: B: l: o1 |6 z$ Y# A) V9 |5 ]3 y! G/ t1 d
一个很好的方法是通过typeid去判断对应的类,直接方便。
6 n* U8 w- Y: i! L, x( p" ]( m' x另一个方法其实就是转换,使用dynamic_cast 如果转换成功,也能说明是对应的类型6 u3 ~/ i5 L7 U ]
[mw_shl_code=cpp,true]void MyClass::do_it()
# X2 x- r( T" Z: ^: v3 q7 h{
% \- i3 A( t/ }* O3 ~6 e# O BasePart* wp = theSession->Parts()->BaseWork();( h# a, J4 `& J2 ]7 V( E4 S
$ H+ c* v m7 J+ ?1 b6 a if (typeid(*wp) == typeid(NXOpen::CAE::SimPart))
2 _! I F# D) ?. Z/ d6 \ {6 R' k8 a+ e. E4 i$ O
print("SimPart");
. N* R; }# G T( G; d/ q2 [ }
5 J2 m4 ^1 V5 \9 W: M- v Z else if (typeid(*wp) == typeid(NXOpen::CAE::FemPart))
5 @: B0 h5 O4 g* S* K9 O! d {- f4 A4 L( C% n* I) D
print("FemPart");
- X4 j+ O: r/ e& r H) o }, m0 v9 {; y2 x% b8 n8 c/ w
else if (typeid(*wp) == typeid(NXOpen::Part))
* J. }# N6 K4 e" v/ A, k+ n {
1 T/ g5 ~& R' t print("Part");9 w7 Z; r5 A+ A/ U. B" }- |; n9 B: u
}) J$ a6 `1 y3 c" V' t
else
$ X, M- g$ R6 `, N print("Something else");
. L& {4 {% O1 N) Z/ M9 z0 L3 I+ S! g3 F+ ]3 {' H8 a9 I# ?
}[/mw_shl_code] |
|