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

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

[复制链接]

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

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

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

x

" X' d2 F/ l" C$ u( c6 xNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
7 F1 p' i% D* l  k7 e
2 Z8 @; J: b# D  m

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

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

1 K2 T+ T1 h5 j$ A4 X
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)8 U! ?: V" ^) L' \5 ]) x+ D5 T
  2. {      
    ' M/ j$ |; O, K* e# X" J9 o; ~! S
  3.   
    / R$ Q% W" q5 S  B% ^# G
  4.   unsigned int ii;; u7 d0 \% _0 v5 c2 c* `4 f
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    9 E4 G% o( n# X" e# B& V2 k
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");% G8 P4 H" m' H5 S7 M' F5 K
  7.   std::vector<Assemblies::Component *>components;2 _- E. V4 s5 O- o  H# P/ u, o: W
  8.   Session *theSession = Session::GetSession();
    6 n2 z1 q+ l: d. h4 y8 B% ^
  9.   ListingWindow *lw = theSession->ListingWindow();
    5 l) E" y* K7 W# \
  10.      lw->Open();
    $ p# B1 A" f) k3 Q& P& y- |
  11.   components = rootcomponent->GetChildren();
    5 y* @( i: S0 [7 e& f8 j
  12.       for (int i = 0 ; i <components.size();i++)
    3 O$ ?- S1 g( y) \2 v! O
  13.       {
    % E, e% t: {* I8 K, a  o2 o
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    . j2 O2 Q8 b8 s' a
  15.      
    ) L- ^1 p8 C7 _
  16.       if(childpart==NULL)
    . I( \  l) o: k2 [
  17.        {# E& U% W" [/ `2 v0 [! Z
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    ( t4 L$ u" M- J1 F
  19.         }8 \8 K% f2 W% i; q! J
  20.        else / a. y' S# _! p- S8 \( C" I
  21.        {& c3 k/ u. K& e  h" t
  22.         if (childpart->IsFullyLoaded())
    % `8 P! P1 X) ]0 A  K3 g
  23.          {
    5 x9 k+ b6 o0 A5 L" b! ]
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    # X! C. p8 W. O& q8 v. P
  25.          }1 A! R4 z* c) q- X" c) j& q
  26.         else  
    1 Y8 m" E! t9 `; w5 C5 M4 F
  27.          {
    ( d8 N& j+ L1 q: e7 \4 y$ E
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");0 u9 ]- d; [1 G' t: o
  29.          }
    5 v  K  g: D. x
  30.         2 Q3 p5 ?( U8 Y6 S
  31.       ! G5 Z; q/ d: w' R( A
  32.         getchildren(components[i],indent+5);
    9 a: c* x) A$ ?# k5 i
  33.       }
    ) H" C: L1 P8 |) I
  34.       }5 ~& I' v& `& P( D" C" V
  35. }</p><p>static void do_api()
    " m! |0 ?( T0 {7 s0 G# a; X# {
  36. {; B9 u; X3 w0 |, l2 t
  37. //list the components, r1 P: M+ L* Q3 K( \! i+ L5 j& G
  38.   Session *theSession = Session::GetSession();
    ' p1 G' @' u# R% B
  39.   ListingWindow *lw = theSession->ListingWindow();
    9 `0 k/ H( i/ j9 _
  40.   lw->Open();
    ; \! v" W# n8 k( A2 J; ?
  41.   Assemblies::Component * rootcomponent;, l* ~6 X4 K$ i+ ]/ ]: Z
  42.   Part *workpart;6 ^8 v. v# K" q& W' D! ?: a
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    1 ?: @/ O; F' G5 U/ S6 ?
  44. workpart = theSession->Parts()->Work();( Z! j  ^8 U, B3 l& T
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    2 R/ @3 I# S% f0 `1 z6 o" f
  46. if(rootcomponent==NULL)
    9 I( I( I. x( o; l
  47. {  
    3 u1 J3 w% T6 I5 T4 S
  48.     lw->WriteLine("The part is not an assembly ! \n " );) }' L& V3 k- K; k( K5 W
  49. }
    ' C! Y9 T( U2 `" f6 w3 `8 c  ~
  50. else
    % x5 ?$ x3 x$ N6 ?
  51. {
    1 e0 Y; P3 y$ o; X' X1 b
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");4 r1 T3 T- Q; k; v1 u7 ~, W
  53.   lw->WriteLine("The children components are : \n");& T: o5 w% B: G6 ^2 W7 o
  54.      getchildren(rootcomponent,4);' O) P/ @, w. S) i/ [+ o8 o
  55. }</p><p>}- @7 b% c8 r8 Z9 x1 [5 Q/ U
  56. </p><p> </p>
复制代码

2 Z( o+ I- J* V+ K  a
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了