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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

8 ?7 p) ?$ O- P7 `1 aNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态+ L+ k( V9 k2 M  `' _
# J) e) |* i9 d

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

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

# N1 o* d0 L- T: |" T
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    8 ]  X* R) I# o6 |7 k* y
  2. {      
    ! R" E: P' c1 b4 ~0 t! [
  3.   % s2 i2 f" q  [- Q: i- |$ ]
  4.   unsigned int ii;7 w. H' L" t. H3 q: Y8 Y
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    , N& \7 U& Q1 N5 [( q
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");; {- ~& a& J( c( m" T" M
  7.   std::vector<Assemblies::Component *>components;. Z  F% N3 j* b7 @
  8.   Session *theSession = Session::GetSession();
    : _% H* R0 A6 I- e. j5 }
  9.   ListingWindow *lw = theSession->ListingWindow();
    ' Y8 F2 r, L$ f. `1 D
  10.      lw->Open();
    . f& ]0 L% L* F0 V) l! O
  11.   components = rootcomponent->GetChildren();$ R( N1 W; [3 y: O9 F6 t* A5 z
  12.       for (int i = 0 ; i <components.size();i++)
    & p8 X4 `; @- N" B4 w3 J
  13.       {% J9 e8 L, z' v7 b
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    / ]0 f) |& o9 {
  15.      
    & p- N8 \5 X; x4 J# `2 y
  16.       if(childpart==NULL), S# E* b) C+ H8 L
  17.        {8 p: n, i6 ~% X; N' F& e
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    . q  y5 b+ t; |. A# o
  19.         }3 _. ], W' m# z$ m+ u7 {% H
  20.        else
    ! N0 `  }# _: `: w
  21.        {
    / f; Y! a* l" ?! `8 ?6 b% j
  22.         if (childpart->IsFullyLoaded())% s- h0 B+ S. _
  23.          {' g( T7 p# i5 P) ^6 e
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");* ?6 v+ |+ @) d) Q
  25.          }
    9 V& R. F" q/ Z& @
  26.         else  
    / N: H5 j" z/ W) Y" x
  27.          {; O* ^8 A8 k9 A9 s# J; V
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");5 G; i3 D+ X$ C! ^
  29.          }
    1 W7 l5 ?) S$ Q, D: Y
  30.         6 Y9 ?8 M% L2 G/ h+ j
  31.       ; D: }2 J! _+ w5 b' r% j
  32.         getchildren(components[i],indent+5);
    ) b6 F' M: z# N4 x4 ]
  33.       }  E: y. v7 `6 R+ r) W
  34.       }
    . {5 V  |) b! N8 z' r: a
  35. }</p><p>static void do_api()
      |* q- x0 {6 i9 _  e9 `! q* f9 r
  36. {% C& K% m6 Z4 p' W. {1 D$ e
  37. //list the components. H8 R$ f1 g, f
  38.   Session *theSession = Session::GetSession();0 O6 ?( A2 r" e4 S; v0 V
  39.   ListingWindow *lw = theSession->ListingWindow();
    # d' I; E3 a2 t! O
  40.   lw->Open();5 u; H5 Z# t- L. ~+ c; }) s4 X0 ?
  41.   Assemblies::Component * rootcomponent;  U* {) u* j, T2 A% f
  42.   Part *workpart;1 O, g3 y4 j4 H" @
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();1 _8 q/ e, P8 @
  44. workpart = theSession->Parts()->Work();0 n4 m0 n7 [9 a7 j  b
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );$ O7 [6 \2 Z9 c
  46. if(rootcomponent==NULL)
    - P: V# W  n0 }
  47. {  
    # E/ ]7 C/ R( P
  48.     lw->WriteLine("The part is not an assembly ! \n " );+ @% G4 p2 t& a+ b1 [5 S" {; ^2 Y
  49. }: {( t1 C7 o% G/ T6 W4 B
  50. else
    + [/ }7 y- q- a( ^9 ?! l  H' m
  51. {
    7 z6 H$ N6 G# Y+ w  n
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");- I- Z( y# \, J6 K5 A# k4 j+ {, i
  53.   lw->WriteLine("The children components are : \n");) ]6 Z' d9 s( F
  54.      getchildren(rootcomponent,4);# t) `: _+ j$ e6 }! y1 |: @
  55. }</p><p>}
    9 k3 v# E( l' H7 u
  56. </p><p> </p>
复制代码
) q" I* I- n( t# r$ t
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了