PLM之家PLMHome-工业软件践行者

[二次开发源码] NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态

[复制链接]

2013-12-8 00:59:17 3660 1

mildcat 发表于 2013-12-4 16:36:55 |阅读模式

mildcat 楼主

2013-12-4 16:36:55

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
- S$ K, V2 w& Q/ d/ H* q: k1 O- J
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
' `" b2 \& X  Q# o5 }* u  L" c% B; Q9 A

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
3 d' G& |$ [; Y1 G/ L' S$ v
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)+ s1 e: @: j5 D0 t7 s
  2. {      
    6 {* {5 V. S6 o) h0 n( w
  3.   
    6 s& Q9 u( Y4 \' o
  4.   unsigned int ii;
    # E: J& F7 u6 P/ ~2 B0 Z
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    7 x; X- Y8 b+ M
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");0 G; w* u" O' E/ D. f
  7.   std::vector<Assemblies::Component *>components;
    " h# F* B1 u3 P& P
  8.   Session *theSession = Session::GetSession();1 k& L# Z8 O3 O, k
  9.   ListingWindow *lw = theSession->ListingWindow();
    ; X! D# P- R; B0 B( Y
  10.      lw->Open();
    ) Y4 e9 B; d2 E! j2 ]" N1 ^1 u# Y. W
  11.   components = rootcomponent->GetChildren();
    ( E+ J: n7 L5 ~
  12.       for (int i = 0 ; i <components.size();i++)
    0 H/ x2 ]" W% W5 ?
  13.       {
    3 ^$ X5 n; r/ P" u7 j" [
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    2 p& k; \' b; u$ \
  15.      
    ' Z- e3 h9 H' ^& z: Y: N* o# h
  16.       if(childpart==NULL)
    & s: ]4 O! a& o
  17.        {
    % C$ v8 b0 x2 l4 p
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");; Z9 F- c0 }4 P* @* d" R/ W
  19.         }; I1 H8 E. l/ Z; J& N3 r
  20.        else
    / y9 h- [2 u4 l
  21.        {3 f% S7 o1 h1 F' I$ ?  I( h# G2 C
  22.         if (childpart->IsFullyLoaded())
    8 u0 i- ]" v9 q5 X9 A9 C
  23.          {) s; U( l# Q  ?: ^* o
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");$ u1 \3 s! [" T( U. B" i+ Y
  25.          }
    7 ?; K& N% L6 z; O/ k7 ^3 G% d
  26.         else  " j0 i. N: O. u
  27.          {' O/ r0 l6 t# j# X  `/ b  ^9 Y# ~
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    7 b3 s; g6 o& Q; h+ R: w
  29.          }
    2 U) B  E- t; n3 }  A3 W
  30.         1 o8 y4 ^3 s8 Z. r9 X
  31.       
    1 q3 X3 b7 O" a
  32.         getchildren(components[i],indent+5);
    - h7 I$ v: I: e/ F
  33.       }
    ' E8 o2 F$ j2 y1 ~( _9 A) _. \4 Q
  34.       }
    , A$ Q" M, r: d4 o  K1 Y- A
  35. }</p><p>static void do_api()
    3 Z& O2 G, `# `2 Y6 S. h
  36. {
    8 q! W" d3 }7 I8 P
  37. //list the components* |3 M2 J, x% ?' W. y
  38.   Session *theSession = Session::GetSession();
    $ R0 ]( ~7 L4 G' m: O) f; r; g
  39.   ListingWindow *lw = theSession->ListingWindow();
    9 P# C4 j0 v3 R1 l3 i, ?8 C2 v; F* |
  40.   lw->Open();. v  Z1 z2 X# ~% Y, J% u3 g
  41.   Assemblies::Component * rootcomponent;
    7 P- J0 q$ c% v, A& a/ ]; U
  42.   Part *workpart;
    6 ]- I& C6 w( Y' V5 R
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();; }* Z$ C! }- k4 y3 j
  44. workpart = theSession->Parts()->Work();  g3 X: Y8 |  n2 G1 D
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );9 k# i. d( I0 B9 V9 o+ S% {6 l
  46. if(rootcomponent==NULL)
    + K+ o1 t1 x) ~3 V2 m) A9 r! m. E5 v
  47. {  ; Q0 p  @7 U/ ~" m# k
  48.     lw->WriteLine("The part is not an assembly ! \n " );0 l# w4 {5 E$ L9 y
  49. }! [# f6 s$ z3 s% P
  50. else$ Y2 [6 q: q5 i' e+ h
  51. {
    $ e2 x9 {/ d' _* A5 _
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    # c( J7 I, R) J5 l' [: [
  53.   lw->WriteLine("The children components are : \n");0 |4 S8 y6 A, p, P
  54.      getchildren(rootcomponent,4);
      U! t# L7 b- ?3 b% r
  55. }</p><p>}
    4 S) G+ e* S% k8 |' Z/ E
  56. </p><p> </p>
复制代码
3 T2 t. P7 W+ ^+ }- i
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复1

牧马人 发表于 2013-12-8 00:59:17

牧马人 沙发

2013-12-8 00:59:17

嗯,这个不错
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了