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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
$ R3 o) i. B* e! a
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
- o6 J. H& O1 c
* \* I) M& ~6 i  ?3 f

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

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

  c6 F+ a  Z8 O* t# |' B, W
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)" K# m' H4 t% ^# z
  2. {      
    / U5 L9 H/ k. m/ G/ m( g4 H$ \
  3.   
    . w: v+ k; ^( ]
  4.   unsigned int ii;+ l) L" [* `0 s7 R' |8 F: s
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    / F/ e# |& w4 r, p
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");! A. W7 W9 e* J7 [! e" T7 x2 n7 e% P
  7.   std::vector<Assemblies::Component *>components;4 T, C1 t; f' }0 G
  8.   Session *theSession = Session::GetSession();8 n/ k- E! \3 y, _
  9.   ListingWindow *lw = theSession->ListingWindow();
    , b+ K: ~- \' ]" b" Z1 y7 n, u" I
  10.      lw->Open();* K+ ?8 w4 K+ `5 V, j7 T4 W
  11.   components = rootcomponent->GetChildren();* h0 E, G+ T; F8 F2 B
  12.       for (int i = 0 ; i <components.size();i++)/ b% `  }/ M! s) w3 @8 o
  13.       {
    1 f  s3 M; b- u7 V( B: L8 q( |
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());* `/ a# S- E* T( K9 d
  15.      
    " v0 e9 f& J7 q9 z" i8 ?8 g
  16.       if(childpart==NULL), I: j. J' t7 m  J( u/ @  `" v
  17.        {
    - Z3 G1 h/ E: H. o
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    2 H" o. [$ Q) x+ y! r. v
  19.         }. J: A& |5 ~/ K: e, g
  20.        else ) E* n3 D5 L2 t' O) b
  21.        {$ `8 t! H4 M; o  b7 X7 G
  22.         if (childpart->IsFullyLoaded())1 W4 b" X- C$ g2 j
  23.          {
    8 D7 P9 F3 P/ i
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");3 ^" ~# m2 R- O& G9 j7 Y4 C; S
  25.          }/ _$ @6 c4 I. I; \4 E  ?
  26.         else  
      Q) L: A; z/ B$ K4 R
  27.          {
    ' v; {: }7 W1 e; E
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");8 a! W+ b; @- p4 f* m
  29.          }4 s, b! q3 m) p% ]5 v9 X
  30.         
    2 f' `8 ~4 u$ t/ ^- Z0 S/ X
  31.       
    5 h5 l4 R0 L0 Z' q8 L
  32.         getchildren(components[i],indent+5);
    : K# {6 a5 O$ R( X1 Y
  33.       }# ]) o+ S) ~! o" Z- t9 L
  34.       }; \$ W  C% e) B4 T5 V
  35. }</p><p>static void do_api()
    2 X9 [6 u; k0 u0 U# ?# q) l+ c
  36. {1 o2 v% Q0 v5 p* P+ y6 x
  37. //list the components
    4 p1 t" ~  \$ }# u" k
  38.   Session *theSession = Session::GetSession();" \2 `& G5 ^7 X4 ~- |4 ]
  39.   ListingWindow *lw = theSession->ListingWindow();
    2 k: I8 a: t3 |, F( S: f5 g& J
  40.   lw->Open();( ]; J3 ]/ J" M$ Z, k
  41.   Assemblies::Component * rootcomponent;) M: q: `  U/ ]
  42.   Part *workpart;
    / {. Y& n* D8 n) v3 B7 a
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();' s; L' [5 C+ ]7 o
  44. workpart = theSession->Parts()->Work();, L! Z# u2 q+ U, U
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    $ M) g/ K+ |; J4 l) Y8 |/ Z
  46. if(rootcomponent==NULL); N/ o0 u! u3 b0 m2 H
  47. {  7 ^  @% r3 x! y4 b
  48.     lw->WriteLine("The part is not an assembly ! \n " );- R; S9 l, d: Q% Y3 p( X
  49. }0 P0 o* D; Y) S+ Q7 Q" v
  50. else3 L. y5 v. G% u: D0 r
  51. {( T! @8 O& s  V
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    : `* @7 |: ]/ \6 v+ V
  53.   lw->WriteLine("The children components are : \n");
    2 @  A1 \8 z+ ]" e8 ^/ P
  54.      getchildren(rootcomponent,4);7 Z) Q& Z% ?, y$ m
  55. }</p><p>}$ l2 c  b2 F& f! t2 K
  56. </p><p> </p>
复制代码

# |1 u$ v+ y. H% W$ |3 N4 }- 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二次开发专题模块培训报名开始啦

    我知道了