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

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

[复制链接]

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

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

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

x
4 _8 \7 G7 t4 W& f5 u
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
; Z( `( A0 y( S' Z  I# X$ ^6 k1 K8 N

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
" [: v, Z, `$ B7 m
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    % t  R# I8 U: S* ^4 S2 P
  2. {      
    6 y/ ^- Q4 b0 \. S) g
  3.   9 M1 a- t- K' r# V
  4.   unsigned int ii;
    3 ^% @: h# Y$ X' `- H
  5.   char space[MAX_LINE_SIZE+1] = { " " };+ {/ w9 R6 j2 _" s7 y  D0 f
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");% b# B0 L5 F! a4 X4 P1 g
  7.   std::vector<Assemblies::Component *>components;7 c9 A5 P  j1 ^, u; w+ q
  8.   Session *theSession = Session::GetSession();, c8 `" I8 g2 @! O: R9 D
  9.   ListingWindow *lw = theSession->ListingWindow();0 c# h: S6 D- l
  10.      lw->Open();, Q" C/ d9 u. G: r; A8 P8 c4 A
  11.   components = rootcomponent->GetChildren();4 u  o8 N1 D# e4 s8 L
  12.       for (int i = 0 ; i <components.size();i++)3 Y) h- r4 y. R5 |2 P
  13.       {/ P: ?8 i$ h9 `/ ^2 }7 m4 n
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());4 i# F1 A# b6 o
  15.      
    ! p  l5 k: f0 S) u2 d
  16.       if(childpart==NULL)
    " `, L, y+ k: L0 N# x2 \/ P+ F
  17.        {" R% C" D! u6 A# l. w5 z
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");7 f" [" V$ b. [* M7 ^
  19.         }( |7 {$ i+ }; f# j6 K; v  B# n
  20.        else 3 M5 [( v1 x, T
  21.        {
    % D% \$ [+ D. u5 c
  22.         if (childpart->IsFullyLoaded())
    3 b' T" q" H% f; b/ u
  23.          {
    4 y* S- W# ?! X1 w  O
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    - \4 z) J3 t! a
  25.          }
    # W; s% N/ a) S( G
  26.         else  
    & l0 R7 f# W* ?7 f" k
  27.          {
    * P& ^# l' o1 u# p: k
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    * g: N; H# i( c6 e8 |" C4 F2 G
  29.          }
    7 P# c5 O" q# x" l
  30.         
    ! n+ b# K4 ^# |* e1 t0 {: |
  31.       
    ; {' Z! u5 t2 {" a
  32.         getchildren(components[i],indent+5);
    + N+ h. L* a4 X% p7 O5 k9 n" H+ P6 R3 ^
  33.       }2 X6 K' U' G6 N2 n3 L  A
  34.       }# l0 ?3 E9 t  S# H1 I" t8 ~- o
  35. }</p><p>static void do_api()
    ) ?6 U/ E7 f- F3 {1 O
  36. {) Z( a3 \+ s! X2 d7 g# V! o
  37. //list the components
    6 |# N- \1 s: |; M. H
  38.   Session *theSession = Session::GetSession();% W' q+ ^0 E  e' W' e8 z6 I( ]
  39.   ListingWindow *lw = theSession->ListingWindow();! @3 ], u) l# g- g0 i* @  C
  40.   lw->Open();: P+ \" K) E3 B) g$ X
  41.   Assemblies::Component * rootcomponent;
    8 T8 Q9 @7 o, R9 X* H+ z
  42.   Part *workpart;
    ' t1 U6 X5 h: z. k
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    ) A) ?; r; f( G1 B! C* {  K
  44. workpart = theSession->Parts()->Work();
    . x: I# r; O) `  f* f4 V
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    6 x- M8 X# B: [
  46. if(rootcomponent==NULL)
    ( @) h/ K7 M. w
  47. {  , r5 `0 f  ]( i
  48.     lw->WriteLine("The part is not an assembly ! \n " );$ ?. T, q! J8 S
  49. }
    3 h1 x0 k7 F7 t, w/ |5 i* r, P
  50. else
    * D4 Y, E) n( W: Y
  51. {+ l" P8 f1 p; h% i
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");. I+ f6 ^0 B) R# F$ x
  53.   lw->WriteLine("The children components are : \n");
    1 p  P8 l" V- t  M
  54.      getchildren(rootcomponent,4);
    2 K! m: o! }9 }" h8 H9 T
  55. }</p><p>}! t$ z) f2 {' F& X) z
  56. </p><p> </p>
复制代码
9 H! g* y& g+ _$ U9 }+ g% o$ b
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了