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

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

[复制链接]

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

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

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

x
# l. w! \* Q% o' A4 @
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
. K& v2 g: P5 ~$ \' o& V( f+ X) h& m
  _' ]. n) E+ ]) Y

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

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

! h2 Q/ C1 m6 V' }; }6 T
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)5 t7 Q3 S! H. {& M0 m, p+ o
  2. {      
    - \# z8 y& ~5 I/ }. [! h$ g
  3.   $ j2 A( A% w2 X4 n' z. Q3 \. M
  4.   unsigned int ii;
    $ f5 b% r/ Q, `4 A/ C7 e. N
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    ) ^0 m; K/ S8 u* y, E
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");. V* b( X2 O! C# @/ P
  7.   std::vector<Assemblies::Component *>components;
    1 w4 G$ l. o; q8 t# w
  8.   Session *theSession = Session::GetSession();
    % P3 c3 x# z. J/ ^
  9.   ListingWindow *lw = theSession->ListingWindow();/ P% R( j+ |% P. ^
  10.      lw->Open();- I& h0 S5 T  D. i! S1 g/ g7 A
  11.   components = rootcomponent->GetChildren();9 t* B! v) Z6 m+ e1 C$ B+ B1 f! C  }" z
  12.       for (int i = 0 ; i <components.size();i++)
    4 A" w8 Y7 V  `# B- d( p
  13.       {
    / d+ {5 q5 p0 G7 X/ E
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());: P3 S! o  l" q. ^- h; @7 \/ d% `8 {* h
  15.      
    2 j6 z* D( `; ?6 e; P
  16.       if(childpart==NULL)2 N  O/ ^5 i1 V+ k8 V: q
  17.        {$ s2 h8 M) m$ P& C+ v4 B
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    7 [$ L9 P8 K7 _7 ?1 b+ l+ N: G
  19.         }
    ! l7 i7 x: `: M1 s- A, U
  20.        else 0 W0 ]; {! _: k/ ?, v8 a
  21.        {4 U5 G  M) b( C: Z) F* ], ~: w& N
  22.         if (childpart->IsFullyLoaded())
    3 w4 v/ U! f- V6 U! B# J! y
  23.          {5 z( O* E1 T1 K
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    1 Z! h% `2 k" O( i: i
  25.          }( X9 P9 J% }$ _' L! P
  26.         else  
    1 x$ r2 _+ ]  H) @
  27.          {
    ! K( q+ t; r/ r; v4 D" }9 R
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");; H0 N  n$ a  `) C
  29.          }
    9 P1 @! D1 b% ]& k; \
  30.         
    ( |9 h7 ]# h' e/ x
  31.       ( }2 F1 ^9 y$ @5 a& M/ }
  32.         getchildren(components[i],indent+5);" W' \- S2 j) B/ n  z- n# c, _
  33.       }+ R7 D# ?+ j3 V, |) z
  34.       }
    0 V/ j# ~; S# \  b$ v
  35. }</p><p>static void do_api()
    ) Z9 ?7 u& }9 W; _
  36. {  x' l" ]1 G$ Q, L/ ?- C  F" a
  37. //list the components
    ( _. ?$ C3 D( Y$ w
  38.   Session *theSession = Session::GetSession();1 @* m9 w5 N  i3 ]% p
  39.   ListingWindow *lw = theSession->ListingWindow();
    ! g3 C' J# _9 M1 P
  40.   lw->Open();, `9 P4 F$ c2 F+ }
  41.   Assemblies::Component * rootcomponent;
    - K! N5 B( Q. ]
  42.   Part *workpart;$ p' [  V$ K8 j: y4 c
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();1 g) o( q; Q7 |& P, o
  44. workpart = theSession->Parts()->Work();# O3 P/ g  o* n( Q7 y( m" K5 P! Q
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );' q; J* {, N4 R- t) ~# a5 W  j
  46. if(rootcomponent==NULL)
    # j0 R9 `4 ?' r& M. L) |; G2 `4 }
  47. {  
    0 A- I2 [& @- S
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    ' a. o1 z3 a5 Q  P' I1 H8 x
  49. }
    3 S& z) n; [& v2 I, b
  50. else& \" G  ?+ t( V/ J, e
  51. {7 g( Y; k% c# J3 w) T( v
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
      ~. X: T2 J% M/ b; f
  53.   lw->WriteLine("The children components are : \n");: [+ Y: {+ \; K
  54.      getchildren(rootcomponent,4);
    & r: {8 j- E2 L" h. x9 F; Z+ d
  55. }</p><p>}
    / B, h8 t* h# f% O( a4 A
  56. </p><p> </p>
复制代码

+ B# R% K# l/ j# a% U
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了