|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX二次开发源码分享:判断当前工作部件是否为CAE的类型
5 q1 M# l+ a6 I, J( s, E8 _ A
/ _7 X( ]) g4 f# E一个很好的方法是通过typeid去判断对应的类,直接方便。; I! H ?9 l- u. `1 `! ^8 |
另一个方法其实就是转换,使用dynamic_cast 如果转换成功,也能说明是对应的类型
& r: \. x/ @( B( ?9 v- I7 ^[mw_shl_code=cpp,true]void MyClass::do_it()/ ~ `, K2 k4 J3 D) z1 G. Z
{
, V3 [2 ^0 u7 s G5 m4 B- f/ e BasePart* wp = theSession->Parts()->BaseWork();4 G. Z: q2 |- c0 o! n; y3 t
* g" R- v V: |8 `# a9 v$ U9 S if (typeid(*wp) == typeid(NXOpen::CAE::SimPart))
# ]. Z0 g3 X; c" R7 m- P& X: K {! a( x. }5 U" s R$ s8 F9 k6 Y! e
print("SimPart");
/ q' o# {6 E/ V8 N5 K. t- k X }; P" ~( f, z0 K* @& z8 ~7 b
else if (typeid(*wp) == typeid(NXOpen::CAE::FemPart)); `) ~ e5 D& o( G
{6 a- |% f6 c& \8 z/ U8 u
print("FemPart");
/ W. ]7 r, W! E3 s, h4 D* c }$ z; J& g( [3 N. L8 v; E
else if (typeid(*wp) == typeid(NXOpen::Part))
. c5 ?& @7 K& L- c# P: D: k {* o! t5 `1 T& J9 f' I
print("Part");
, N& N4 y# N( A& `! D6 q- n }6 [2 [4 h1 x9 z4 r' Y
else" X2 |5 o6 F) Z2 D
print("Something else");
% m; q0 }. F3 M8 u. z( @* n, `0 e3 N; p: y7 e9 r* m6 h
}[/mw_shl_code] |
|