PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

mildcat 发表于 2013-12-4 16:36:55 |阅读模式

mildcat 楼主

2013-12-4 16:36:55

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

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

x
& W( K, W( y7 W3 {4 B/ v" ~4 h
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
3 y. S* U' }2 t1 P* R3 Q( i
* X) m$ k3 m3 V: v6 Z

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
: |. V; j  }; S4 J( K  w
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)0 ~/ y/ S7 G, k  C5 [
  2. {       5 e) ]1 I8 p+ E& u8 _& B
  3.   
    # A1 \& h6 \* G# C: w+ d( ?) c
  4.   unsigned int ii;
    2 o) @- K* K7 n" j# E
  5.   char space[MAX_LINE_SIZE+1] = { " " };/ ]' Q% d6 B/ z4 ~
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    * F& R7 z; ~+ Q- j% n6 t# Z( v
  7.   std::vector<Assemblies::Component *>components;8 Q3 N9 a. T6 K+ C! p9 |5 A0 s
  8.   Session *theSession = Session::GetSession();
    7 O( Y! U' C) S- g1 J+ B7 i; s
  9.   ListingWindow *lw = theSession->ListingWindow();
    1 g, v' y1 L6 S7 e, t: p9 j% q
  10.      lw->Open();
    ' m3 p! K: Q  h; M$ C1 m+ [
  11.   components = rootcomponent->GetChildren();7 h" p& p( q: `5 ~4 f
  12.       for (int i = 0 ; i <components.size();i++); ?6 h# }" s+ U1 W/ C
  13.       {
    - d1 K# Y3 O5 I8 F- [
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    6 ~) C' z4 @( }' U7 K7 x
  15.      $ Q( f5 K7 m! l
  16.       if(childpart==NULL)
    * O0 _4 u/ G- V. y  m
  17.        {
    9 c9 C4 D  ]2 l$ l0 {' X
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    3 R4 w5 a* l3 @) P, j
  19.         }
    # f8 U- W$ f+ w. a9 p/ Y* Z# x
  20.        else
    - W5 e" w' h5 ^. W" V9 `; C4 F
  21.        {
    2 d+ |0 b  @' I( y
  22.         if (childpart->IsFullyLoaded())
    ( L" e+ C: H$ j( ?9 h* c% l# _, f% |
  23.          {% I  P6 A% |9 W; S! f2 Z, q$ U
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    $ F  R% ^7 _  s2 ~9 m
  25.          }/ B9 b4 o  G. ~& ]$ W
  26.         else  * Q$ e/ k, F; x" }7 L5 V
  27.          {
    2 Y, ~' o" P. r$ q- G2 `
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");* Z6 P& T6 G8 [& X2 i  c
  29.          }
    8 B! I0 ^/ e  q7 h
  30.         
    5 `" W) f& C: W3 t+ I4 q& J0 y
  31.       
    5 [6 N9 J0 J; O# P, L
  32.         getchildren(components[i],indent+5);; G/ u" ^! q: W+ P3 d
  33.       }
    ; W' u0 r  I# S" R7 P) S- d2 p
  34.       }
    $ R+ n, A; l  e* V5 N/ S5 y& v: J
  35. }</p><p>static void do_api(), N8 L1 D1 L3 S
  36. {
    9 d/ u8 S3 O: i  }; P. U# L  _
  37. //list the components9 I) E- M2 [- A1 c  d
  38.   Session *theSession = Session::GetSession();
    . [& g/ @  s  j: s
  39.   ListingWindow *lw = theSession->ListingWindow();
    1 _/ R  z- ~7 ^3 r6 {
  40.   lw->Open();0 t) B0 l& W# @" T" p5 o3 L; y/ }* K
  41.   Assemblies::Component * rootcomponent;& X9 \! r# X+ J/ q- h  n1 y
  42.   Part *workpart;$ _) i" Q2 K* W7 s4 M+ n; @
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
      i) d2 o2 ~0 R6 `5 F4 i, D
  44. workpart = theSession->Parts()->Work();& \7 c1 ^) ?4 N0 K
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    " N, c  u3 Q% y% K- m
  46. if(rootcomponent==NULL)
    8 Q# _6 r  |5 W, J& w- F
  47. {  
    2 u, I" P: ~4 n, ]
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    " C6 \5 e+ y0 K2 I* E
  49. }4 z1 X/ U3 D( V# o
  50. else
    % c% G& V$ j# ~
  51. {- r( z7 t/ q# @2 w; x  C
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");3 B! B+ F  x2 i8 T
  53.   lw->WriteLine("The children components are : \n");5 M7 P6 f9 Z: ~  x. f, d' k
  54.      getchildren(rootcomponent,4);; E2 n! t; ?- u6 P0 b$ G' }, M* j
  55. }</p><p>}# z5 \; \: M& t4 M+ w  v
  56. </p><p> </p>
复制代码
, U' o! f1 e0 j
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了