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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
+ j) C( G& J6 F
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
: Q" D3 q6 s: y! z. s8 k# G* ?8 Y7 Y, Q8 L

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

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

! U! H, Q; [/ S9 c6 O
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)9 _1 f" y8 P! w5 J
  2. {      
    ) \+ @  V/ ~; i. s. E. x/ n' ^
  3.   , p$ N0 a8 ?1 {  W4 k; z% d% G: R
  4.   unsigned int ii;0 s# P! f$ W* e$ \" u
  5.   char space[MAX_LINE_SIZE+1] = { " " };! l5 X& A* e' F4 r0 Y$ N  i# s  m4 b
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");! |8 p5 I  l7 V  E( y
  7.   std::vector<Assemblies::Component *>components;' e0 s# y  }$ G
  8.   Session *theSession = Session::GetSession();- B( k. |! l. s; j  h5 ]2 O6 h
  9.   ListingWindow *lw = theSession->ListingWindow();
    & z# i+ u7 J% D6 C1 \5 }7 Y
  10.      lw->Open();* a* k7 ]$ k6 k% G7 O2 F3 ^( g
  11.   components = rootcomponent->GetChildren();1 z  v3 b- v) W$ W4 i$ b* w
  12.       for (int i = 0 ; i <components.size();i++)5 Q+ L0 F' M- ^2 t
  13.       {+ j; v* e5 N+ j  R. Z' Z
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());9 Y. r9 r: a7 G% k
  15.      
    ( ?7 F6 {8 w  r5 o. b0 x7 X& q
  16.       if(childpart==NULL)7 L0 h3 f' ~7 n! a6 r2 Q" ~
  17.        {( {7 Y- @+ f4 u+ J4 g9 P
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    + n7 V, a4 |* J1 L
  19.         }
    ( [! M8 Z2 H2 O7 _, o0 l
  20.        else
    ! [: o& U6 i; w. p9 R
  21.        {) E6 g  `2 h+ M. ]$ j! i! J$ ?5 [
  22.         if (childpart->IsFullyLoaded())
    6 M3 q: @. m% V( B
  23.          {
    ! S' O0 F5 D- V/ S0 q+ N) ?% P
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");% O% u9 w/ O7 U* ~
  25.          }' z3 \( x6 ?, L) ~2 g6 A4 [! Q1 P
  26.         else  
    " d& H" i$ J) I# y9 W& E
  27.          {
    . k6 o' r1 M) B  s2 j7 G% R
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    " h9 g' c9 ]+ o# g2 I, |
  29.          }% Y6 L) h0 c7 d  f: w: j, n1 `
  30.         ! E* Q/ N: Q2 j* H# b& }6 M
  31.       . }3 \( q9 |( [0 p2 t) x
  32.         getchildren(components[i],indent+5);
    8 }$ `! ^. v& o" d' D
  33.       }/ f- y/ f- o4 a, v6 Z6 p+ m" ?
  34.       }1 Z# Q8 u3 f' C8 t1 y
  35. }</p><p>static void do_api(), P+ V3 ?; S) v- K6 l: ^( E/ H( p7 Y
  36. {8 R" w/ }2 x: f
  37. //list the components( o' }$ N; G) C
  38.   Session *theSession = Session::GetSession();
      }+ N$ r* I! z) E
  39.   ListingWindow *lw = theSession->ListingWindow();$ s9 U4 m! C9 a( ]% R9 Z9 T
  40.   lw->Open();8 e6 J0 M6 F! E
  41.   Assemblies::Component * rootcomponent;
    8 e% V2 d: K! [1 D7 E5 V3 s1 h
  42.   Part *workpart;8 _& r$ c  A5 c) t1 Z) c
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();! L8 B7 g5 Q7 @" K
  44. workpart = theSession->Parts()->Work();
    % J5 N( U! e' p* `# G9 q
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    3 j7 o# E+ }5 }
  46. if(rootcomponent==NULL)
    : ~+ k5 n# M( p" W& M
  47. {  
    : M  B6 b2 Z7 x9 f; K
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    6 }- S' ?. b4 I7 n5 a: \
  49. }% F$ V" L: N" _. O# n, x
  50. else
    0 g, s# k3 ~" ]) D( g
  51. {* X3 T* I4 H, w- ?* X
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");7 j- c; U$ B) Z8 f
  53.   lw->WriteLine("The children components are : \n");
    . h0 W8 V! U! R/ M8 k
  54.      getchildren(rootcomponent,4);
    : F8 m5 o9 n8 z. _' K+ J
  55. }</p><p>}6 P  ~0 ~: Y) g8 I5 ]6 E
  56. </p><p> </p>
复制代码
$ P# Y! c; L& T# V& \8 Y
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了