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

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

[复制链接]

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

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

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

x
* {5 M6 Y8 c" q' i/ Z/ {- S
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态' B8 ]4 m, q. n: i, G+ L

4 K* {9 P0 r2 p  r: b# l2 B

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

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

/ c0 {+ ~, u1 A. l0 @, o/ ?& R
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    ; Y. ]$ }, @  G. @+ v  Y5 H6 k
  2. {         c+ i. P" j; V1 w
  3.   
    + r2 G5 G; \" N& p$ @6 X  H7 {
  4.   unsigned int ii;
    9 i8 N6 P: b. y! Y1 ]# E$ O
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    9 ?8 \. D4 Y$ n/ x" y- J' w) }
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");- _; \5 p& X1 L; W7 w' U
  7.   std::vector<Assemblies::Component *>components;6 f( U% ^" c/ I- x* P
  8.   Session *theSession = Session::GetSession();: \0 L+ b- V% j  ?0 V
  9.   ListingWindow *lw = theSession->ListingWindow();
    2 H2 t( P8 g" L( ^3 G& e
  10.      lw->Open();9 L/ m' P( ^' e$ W
  11.   components = rootcomponent->GetChildren();, Z- j+ V  u) p. u
  12.       for (int i = 0 ; i <components.size();i++)7 T4 u2 X" d$ X4 R" U) `* Z, \0 y
  13.       {
    5 o# }: d& Q2 g& h! h$ q
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    8 B! h3 R/ g9 ~
  15.      6 q, s( A, V& j8 p/ l" W. w
  16.       if(childpart==NULL)) \" t, L$ _8 i2 U) }
  17.        {! x$ x. Y# Z/ k% ]" j* ]8 p
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");. ]0 K# X" T' A2 B
  19.         }
    9 f' M( J$ E; O+ J2 Q' A
  20.        else 3 P/ K2 h. e. c8 G; ?
  21.        {* G3 k: h; N! ^$ s8 }6 m
  22.         if (childpart->IsFullyLoaded())$ i: U" j; y% P
  23.          {0 h3 }9 C7 Z  X
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    5 Q) |% ?% d. u( k
  25.          }
    7 p# z  H6 ~1 I$ v
  26.         else  
    2 K: j! {7 a& a
  27.          {
    ; m9 Y4 h# s' S  R: N2 t
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    ( X, `3 T% t# `1 r: e
  29.          }
    * v6 `$ B( B3 X* |/ O4 P8 f+ W! q
  30.         
    1 M  h) r& {4 x' h3 ^! r+ v1 l9 S
  31.       ! A0 {2 @" A) O; s
  32.         getchildren(components[i],indent+5);
    6 G5 {0 h4 v5 }( p+ Y
  33.       }; b' p- m/ |7 J3 u/ a1 k
  34.       }
    1 i% W/ N0 P. Y* K5 u# S7 M
  35. }</p><p>static void do_api()
    8 Z& a" f; c" x$ ]* \' c, G
  36. {
    8 F) e0 |0 ^& e: `( S2 V. @6 k
  37. //list the components
    0 f/ S4 H0 i: u$ f- I: X% x
  38.   Session *theSession = Session::GetSession();1 v4 N% c7 R; z2 q' v
  39.   ListingWindow *lw = theSession->ListingWindow();
    ( h' a, `9 J3 N" }; o: g
  40.   lw->Open();
    0 ?! y; F: T( N9 a  S0 W+ n% @
  41.   Assemblies::Component * rootcomponent;
    2 _2 U+ q6 m# \, o$ Q/ X
  42.   Part *workpart;
    0 |% H; g7 M) e$ c' B
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();6 A2 A: f$ [! E  ?
  44. workpart = theSession->Parts()->Work();
    - N) V1 v8 y, c/ r$ G  s
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    5 z  G! [5 p1 G$ C
  46. if(rootcomponent==NULL)7 V$ |+ x! `; y# a
  47. {  ( a& Z* v2 \. v& O. ]* e8 _+ x3 g' c
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    9 B/ D, p" F2 g2 R" A4 n
  49. }
    ; j# i% J# S! ~9 U" `
  50. else% f. S$ @2 t; g
  51. {6 H1 @" h3 o: a* g) E9 |
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    % N- ?" X6 ]3 T
  53.   lw->WriteLine("The children components are : \n");
    ! Y3 H$ z! f$ Q! o
  54.      getchildren(rootcomponent,4);
    # U' q5 x5 M9 b4 Q0 Y6 o+ [
  55. }</p><p>}7 I8 }  n: O+ R2 V9 F1 n) N
  56. </p><p> </p>
复制代码
: R/ M0 b, g* g$ O
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了