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

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

[复制链接]

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

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

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

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

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

x
! A* G, z& H( K" a' o
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
# K" }6 G0 i- K4 d( A9 U& _3 x
' n' A% H5 p+ w8 a7 l

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
" F; l$ Q1 Y: V4 x& Z
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    ) s, Z) S1 N: i5 D( g' o! x
  2. {       ; h" ^2 D0 b# R3 v) e
  3.   5 B# y- N5 F9 y& x
  4.   unsigned int ii;
    - L) z8 R1 E% I; u! ]2 l3 A. q
  5.   char space[MAX_LINE_SIZE+1] = { " " };2 L3 b$ }7 P8 Q: ]
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    ; }0 a: R# s* G" ?9 a2 I7 Y2 w
  7.   std::vector<Assemblies::Component *>components;
    5 T+ Y! C: c3 _$ y" Z/ H
  8.   Session *theSession = Session::GetSession();
      j" D' [' P4 f* _0 t
  9.   ListingWindow *lw = theSession->ListingWindow();
    ) U0 y1 O/ Q6 O
  10.      lw->Open();3 H; _6 K4 M) Q: K; t2 R8 X
  11.   components = rootcomponent->GetChildren();8 Z) C% R9 h' U% y  i" j! k
  12.       for (int i = 0 ; i <components.size();i++)
    ; ?5 Q* d  d. M
  13.       {/ \; t2 B" Q3 q" c9 l% r! J( f
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());; K) F" l, V: j
  15.      
    - Q  j8 G2 s% E, _
  16.       if(childpart==NULL)
    ' M! R3 u6 U. b
  17.        {" Y8 _. k4 L4 |3 i3 C3 v9 N- i) l1 g
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    ( X( h2 y& ?7 L
  19.         }- U9 o8 R1 y# M# m5 \
  20.        else 5 u3 v+ O  G! T" v( f3 g( T
  21.        {$ {8 p* r9 [: [8 v& s
  22.         if (childpart->IsFullyLoaded())
    3 \% z* V9 u- H6 Z" o: H
  23.          {! E. t' ~2 i5 E) ?8 l1 f6 c
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    ' W* V( E; f" t7 C4 }* ?! k
  25.          }
    9 M0 s0 S3 @( r6 w! L5 M* G
  26.         else  9 M: I  Y6 B! \  |+ c: d5 `1 _$ p
  27.          {
    9 Z' k' D% V! a6 x! R0 b5 O
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");2 u! x  j- G" h; |
  29.          }. y1 }$ k& X8 y; [- n
  30.         3 m. X( }9 y, \. E& V8 J: ^
  31.       
    , P$ `( u: ?8 F9 H. ?* T
  32.         getchildren(components[i],indent+5);
    2 m8 M& Q2 d$ ~9 X' s' ?; i
  33.       }' T' [" Z2 e6 e4 a. a: H6 t7 {
  34.       }. t2 u# }% N5 G
  35. }</p><p>static void do_api()( V, c$ @. Y5 G
  36. {
    $ V* v; r0 Q# T  ], K' u
  37. //list the components
    7 x7 |; f0 _" M) h5 [
  38.   Session *theSession = Session::GetSession();' c3 m( k' J  R( ^; ]( ]$ c
  39.   ListingWindow *lw = theSession->ListingWindow();' j, L" @$ L$ ]
  40.   lw->Open();
    1 i: g' J, X, v% _8 h5 m
  41.   Assemblies::Component * rootcomponent;
    , X! R; ~# {) ]8 a( r. R6 \
  42.   Part *workpart;5 h$ R2 p) ]+ n" m$ y) Y. I- l* C6 [
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();, x8 r3 |+ j' Y3 C, m" \8 \2 o
  44. workpart = theSession->Parts()->Work();5 v* N! x& q4 j; }6 W
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );' a; v' T6 T1 n1 f
  46. if(rootcomponent==NULL)! r  g5 G9 m' Y/ Y( u% ]
  47. {  
    $ w1 J; b1 i1 L2 u
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    - |; x* B' o& J+ r; @
  49. }, A& n! m0 |4 e
  50. else
    9 t4 x3 P  O" I
  51. {
    7 N2 u: B9 v; {
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    : T7 _" X& N* a) A7 f
  53.   lw->WriteLine("The children components are : \n");! w0 M. p$ g% v3 C* @
  54.      getchildren(rootcomponent,4);: P' k1 b3 Z- S
  55. }</p><p>}
    ; u; O2 N6 `" y$ R7 H2 y
  56. </p><p> </p>
复制代码
' `+ l) @, W, O+ l3 {5 p1 d
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了