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

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

[复制链接]

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

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

积分
9784
发表于 2013-12-4 16:36:55 | 显示全部楼层 |阅读模式

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

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

x

6 I( P( U" \; D  kNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
$ s: B4 [4 F" k  o5 |. a  j+ q+ V3 z# n1 H/ x

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
" m+ u* W( _( {# C8 R
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    : @, p; \# V3 l3 U
  2. {      
    9 u+ y/ M  V% M3 n) r/ X! ^* B  K
  3.   
    8 e# R5 f' i0 J  |+ y& N# g, \
  4.   unsigned int ii;
    2 f+ ^% c/ ^  O: ?2 Q( L. o9 ?
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    1 R% {" c7 t1 g
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    7 Q! P0 V9 K% {+ O; B: M: E* A, ^/ e
  7.   std::vector<Assemblies::Component *>components;
    & a: b( w2 _' Y
  8.   Session *theSession = Session::GetSession();
    8 V7 a" f5 F1 B4 F$ l4 {' ?+ R
  9.   ListingWindow *lw = theSession->ListingWindow();4 |0 v0 t* N8 T* b* n" Y% n* N
  10.      lw->Open();
    - A/ e, X1 A9 N& ?, y3 Y5 b
  11.   components = rootcomponent->GetChildren();
    : w) n8 |9 X. [' y; L/ ?8 }
  12.       for (int i = 0 ; i <components.size();i++)
    3 N( ^2 C. I: z5 F2 i2 u7 c
  13.       {1 g. V4 L/ W- S, y
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    9 g5 _( F- E# f2 ]! _0 g
  15.      
    8 v2 N5 n1 Y. y6 m- p
  16.       if(childpart==NULL)1 ~9 y/ h$ W7 _5 E6 r
  17.        {
    ) L5 M0 f8 G* J! Z3 @1 |6 Z& N
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    ; d4 c% o2 X5 ~
  19.         }
    6 ]1 @( N) o; w, q& G0 ]; }
  20.        else
    ) s) v/ W- |8 T1 W  }
  21.        {$ z% L& h6 ]: k0 E7 ?7 O
  22.         if (childpart->IsFullyLoaded())
    * C4 b; q/ ~2 _9 Y" o1 L& V, i
  23.          {+ B$ v& L3 I0 v+ z. k! ^- O
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");4 d6 H. q5 I3 `, r* I1 A: S7 t
  25.          }
    * u# a- ]3 T! j8 w4 E5 t4 z
  26.         else  + l! I  u, b0 p$ t
  27.          {1 F! g! V' O! s/ K" z2 X3 E- G% {
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    8 S# q! B; K' M5 k/ I1 e
  29.          }
      b  }) S, g2 P% p3 x2 R! g
  30.         
    9 O' l' R  I3 H, |; N
  31.       
    ' B" |3 E- F- M9 J' ~  A# q6 c. j1 r
  32.         getchildren(components[i],indent+5);
    7 I5 `! c) c1 U( x' S6 h7 \
  33.       }/ G# Y: Q. u3 P, H& m0 W
  34.       }
    % B+ t8 {; e" X  q7 Q8 e3 z3 ]
  35. }</p><p>static void do_api(); Q& F8 s7 |6 D1 r) {
  36. {
    ; e  {1 `5 Z" T$ m
  37. //list the components0 E" W9 X4 ^) o, d
  38.   Session *theSession = Session::GetSession();% ~- ~! y  H, {6 B/ u, P
  39.   ListingWindow *lw = theSession->ListingWindow();
    0 x7 T6 ]& ]6 q8 H6 d% q- A
  40.   lw->Open();
    9 q$ B# o/ _- g- _: q; V
  41.   Assemblies::Component * rootcomponent;
    ; e5 D/ y/ y* u% a& \
  42.   Part *workpart;2 a4 l6 l! H+ ?! ?+ H
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();, n% X/ W0 O4 I2 o0 ^3 j
  44. workpart = theSession->Parts()->Work();6 f" a: \5 w4 K3 M9 X3 B# R. d# o
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );0 r1 Z6 ~) o( L& W  Q. m9 z6 T
  46. if(rootcomponent==NULL)4 Q1 V' z. H6 V/ e
  47. {  
    2 U: E- A8 O1 h4 ?! z5 B, ]
  48.     lw->WriteLine("The part is not an assembly ! \n " );2 B0 d8 u9 u1 Z" r
  49. }
    / Y& H# j8 [5 k+ h& e7 {
  50. else
    & K. k; |% Q2 X1 S
  51. {
    6 H, k8 F& y5 F5 n2 D
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");9 P6 L4 D1 \4 a: t
  53.   lw->WriteLine("The children components are : \n");5 u% |9 J0 ~0 D; V' Z
  54.      getchildren(rootcomponent,4);
    7 o7 A' K. Q+ K/ x
  55. }</p><p>}
    , H, \3 K* b$ R
  56. </p><p> </p>
复制代码

$ R3 ~9 l" O- I8 S  z: T2 n
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复1

7

主题

31

回帖

170

积分

注册会员

积分
170
发表于 2013-12-8 00:59:17 | 显示全部楼层
嗯,这个不错
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了