PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

# H8 e7 h  Z- w: E+ T7 c9 {NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
( d, s$ T5 s' [8 f! p+ _0 @6 H; i. V( Z! o* w- q) g

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

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

6 U7 d0 R9 g* T) t' t5 L5 C
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    " k, \& V' B1 `1 X) {' O  N
  2. {      
    : G% r1 w: D0 O/ c, L# y( J1 [) k7 ]
  3.   
    + `- O: |% |/ c6 Y: [  z
  4.   unsigned int ii;
    8 F: u9 l* d# q" g5 ], G# ?/ l
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    ; H/ r+ n1 `, v9 v
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    ; K" R: f# L5 g+ q4 E* v
  7.   std::vector<Assemblies::Component *>components;
    : g2 n% ?! l& e8 H0 P- z. M7 x: `
  8.   Session *theSession = Session::GetSession();8 B2 `- B4 g' P
  9.   ListingWindow *lw = theSession->ListingWindow();
    4 Z- h2 h& d2 J( b# V1 F1 f3 C
  10.      lw->Open();
    1 m+ Z& r. v/ Z/ X) f
  11.   components = rootcomponent->GetChildren();5 b' N# C( m4 f# R! M5 a  ~
  12.       for (int i = 0 ; i <components.size();i++)
    3 s: `/ U% L. E6 S: Q
  13.       {) e# `1 ]1 h5 m, ^
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    " h/ ]: R1 f; u: }0 e$ l
  15.      & p1 H8 q9 U  V' _0 W2 `& A, @
  16.       if(childpart==NULL). W. [  Q" V5 @) ^) ~; V
  17.        {
    $ V# a3 A  W/ S+ I. O
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    # E; p! ^& v( j9 |( @% n) s
  19.         }
    ! U1 T' f* T' Z3 v
  20.        else
      x5 |3 w4 p& N% Z+ S
  21.        {
    ! Q, c7 L5 _# Y: Z* c; M: r
  22.         if (childpart->IsFullyLoaded())
    " U7 d! N  o" y6 b3 H' m
  23.          {. p. l& [) `; o/ U
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    4 G/ k+ H! \  D) Y
  25.          }) v( l0 n$ v' V, f  m# D
  26.         else  
    6 O9 B. d: Q9 Q2 H2 J
  27.          {8 ~1 {; X. {/ A7 {, d2 W' X
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    : R- t. U2 D/ c( k
  29.          }
    & N! [3 `( o; P9 N- i
  30.         
      g% s: L& V  F3 E9 k. j# u' q. J
  31.       
    # S% B5 d. Z* N! l
  32.         getchildren(components[i],indent+5);
    6 G0 f/ B8 Q6 d- V+ Q
  33.       }
    8 a) M  \5 [, D: G0 [0 i$ o
  34.       }
    0 o. i4 P" j. T9 r
  35. }</p><p>static void do_api()& _# i- p* s: J; C: q
  36. {
    3 d4 ]$ w+ ~+ z* O. h7 a) m" U+ [$ n
  37. //list the components9 m2 q' K& C9 Y
  38.   Session *theSession = Session::GetSession();
    1 [) ~7 I$ h8 l7 R5 i
  39.   ListingWindow *lw = theSession->ListingWindow();
    - j% i- B' \, b
  40.   lw->Open();& U; @& c" d/ _3 A* S, B2 F9 W
  41.   Assemblies::Component * rootcomponent;- J3 s# x: s6 p: Z* s
  42.   Part *workpart;! c. [% s' E- k/ h
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    ' x0 g/ X( T7 Q3 z9 d
  44. workpart = theSession->Parts()->Work();: `5 _* e- S: [9 S
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );& w  o, ~- f( [3 q
  46. if(rootcomponent==NULL)7 R! N. u5 ^3 ^$ |  O
  47. {  
    # Z- B9 a' z% A. E/ m9 j
  48.     lw->WriteLine("The part is not an assembly ! \n " );# Y. {- G# o/ |
  49. }
    8 N' i8 G! ^) N* E( L$ {/ N
  50. else
    . u, t' P+ m" h( o9 n
  51. {* a8 B* b* c* F+ |. d4 K( @; H: ~
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");3 ^) E. Q+ M8 m8 F& _; i% l9 c4 ]
  53.   lw->WriteLine("The children components are : \n");
    / Z- J* w8 x0 M. @$ O5 C( G# K
  54.      getchildren(rootcomponent,4);, e1 Z1 i1 [: X' M2 j
  55. }</p><p>}
    ; L& P9 x5 s! V5 f" h0 k9 j' ]7 F
  56. </p><p> </p>
复制代码
& [/ ^+ K; P  y! J7 d2 y
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复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二次开发专题模块培训报名开始啦

    我知道了