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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

4 u* b7 E  E7 e  W$ b5 u1 s* \0 a2 GNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
: S- y5 @$ f2 i$ i3 |- K5 t2 M: U3 ~4 P" V. d

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

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

/ w$ ?6 {4 f7 h: E6 h/ l7 j% x
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent), Z( ?. @8 {' A% Q) }
  2. {       & H/ M/ y" n; ~% H& w5 I
  3.   
    4 @. R6 a- W4 R. N+ S- v6 g1 U
  4.   unsigned int ii;
    # X0 `2 r1 D2 V
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    " J# g  M# q  T
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");7 {2 [& a* D& ^% B2 o5 O; D
  7.   std::vector<Assemblies::Component *>components;
    , T" I: J/ ]# v2 Y7 M
  8.   Session *theSession = Session::GetSession();" G9 o0 B3 [. e5 n* G& \/ I
  9.   ListingWindow *lw = theSession->ListingWindow();
    # O) @8 r) L4 h. g0 {( D" w
  10.      lw->Open();, W2 u, }7 H0 B6 B
  11.   components = rootcomponent->GetChildren();
    ) N0 Z4 a- a3 Y+ ?3 }- u
  12.       for (int i = 0 ; i <components.size();i++)
    + H' o1 M! B! U
  13.       {
    ! T0 M0 C% _4 i1 J- h2 G
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    ' v. F% B# J, {3 ]0 V5 j
  15.      - R* ]& F4 @& |4 J) `/ W
  16.       if(childpart==NULL)& a1 a$ @5 `6 w5 }7 e" t
  17.        {; z, Q7 {* a/ B& I( w
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    ' {, b. W- d8 L0 v
  19.         }
    3 }( O3 k/ G4 V' L- L! A( S
  20.        else
    9 N# Y/ @% H9 T+ F
  21.        {
      u+ j4 ?6 D# k5 @3 D  f4 t
  22.         if (childpart->IsFullyLoaded())* d+ z2 s% s1 F
  23.          {( L' {3 d; v; ]; v* o% z
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    ! P+ a+ W9 J  E( {
  25.          }, v1 c& N! ]( S+ L
  26.         else  
    / H! _! J  I* d; @0 B* U
  27.          {
    3 k2 s% m6 P; z1 C( F7 u
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");" q1 M- T6 v! W6 K) O' X+ q$ C: b3 R
  29.          }7 R/ r1 j. D2 }0 v5 v/ G
  30.         ) G. z5 M. W! u! A1 u) B
  31.       / u" l; P$ S9 \
  32.         getchildren(components[i],indent+5);5 y7 H* H1 k% A4 ?+ h, J
  33.       }& F/ ?- X/ _& i$ r8 `" Z; x
  34.       }+ Q' U5 C+ W/ V5 w, ^
  35. }</p><p>static void do_api()1 z- D8 n! j) t9 d
  36. {
    8 B% ?$ M. R' I5 U. g. w7 w
  37. //list the components
    ) N) Q0 n3 H% n% Z# q  X3 [# r' O3 Q
  38.   Session *theSession = Session::GetSession();
    $ q+ X! N1 |5 P: f3 {4 Z
  39.   ListingWindow *lw = theSession->ListingWindow();
    % z/ z, \3 R" B/ r7 P+ k
  40.   lw->Open();
    0 |& u% p4 G/ u4 n) e! \) S9 h
  41.   Assemblies::Component * rootcomponent;
    3 U1 w3 B/ h* j
  42.   Part *workpart;
    ( G0 c* T( c2 T$ E, S
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    5 r: z  G# T7 b2 t  p
  44. workpart = theSession->Parts()->Work();
    ; `$ D/ _% |8 ]4 H# N) T1 j3 y
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );7 k' g; A5 ~  L
  46. if(rootcomponent==NULL)
    ) u% s6 ?' T- w$ d5 b
  47. {  ' g$ x4 u/ m5 A+ O; R" Q8 Q
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    & p* @# E3 h# N/ t! J0 E! D) W
  49. }
    - S! L0 s# I; Q: F  C
  50. else
    6 C1 k! ?/ L8 U
  51. {, z6 j: O- b/ ]$ D) {* W4 _. ~
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    ' \) Q! b4 t  O. O+ f
  53.   lw->WriteLine("The children components are : \n");
    ) [1 D" d' a( M
  54.      getchildren(rootcomponent,4);/ j" b- [" A) K1 e0 B5 O! C& ?6 i$ u
  55. }</p><p>}
    0 [0 m: s' Z: F5 g6 I
  56. </p><p> </p>
复制代码
4 M, I( Q2 G' h) u# c$ @: m+ F7 I
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了