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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

  u/ I: v; p( p: P% XNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态! h6 y$ V+ l7 \

0 t, x5 M' F1 ?

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
+ l; w, D6 P1 i7 J1 K
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)' a( B$ w' j1 B3 D$ B* M6 f( |* q
  2. {       * U; x( Y, d4 X& [
  3.   
    1 Q; q; z+ \4 M7 j
  4.   unsigned int ii;& l1 K; g, n' W: y& A  f
  5.   char space[MAX_LINE_SIZE+1] = { " " };) f' |1 a* D9 W
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");$ O  |2 d) [$ O
  7.   std::vector<Assemblies::Component *>components;
    - z& ?8 w& U1 g4 y0 A' |
  8.   Session *theSession = Session::GetSession();
    % l* Q5 [& i* a$ r
  9.   ListingWindow *lw = theSession->ListingWindow();5 j3 W) E' q/ w; v- x. H) z
  10.      lw->Open();
    2 A  |. U; S: V8 n$ l- a
  11.   components = rootcomponent->GetChildren();' w$ a, N4 c4 y& x% y! J' F
  12.       for (int i = 0 ; i <components.size();i++), |8 N! C; a- y, {: E8 v! _
  13.       {
    6 L, O4 G; ^- F: e% {: \$ u1 x
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());& N4 v. V+ P3 J6 r, Y1 k7 T
  15.      # A* j& F- ]1 W
  16.       if(childpart==NULL)/ _% O/ A) |& e' ~9 ^, N8 `  d
  17.        {$ F( J0 }3 Z) k. t  ]
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");, z3 S( Z: o2 s
  19.         }5 o  U8 c" {5 M* L, J2 G% p! G
  20.        else 6 `4 v: D" t0 Y3 U7 u( {
  21.        {
    % i9 v( H& x) {$ {' g: z
  22.         if (childpart->IsFullyLoaded())# m" ^: p7 d" [/ j) i" i
  23.          {9 e* ~8 F2 E' M5 W' ?. d, Z( R# d
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    ; _* P! M1 z9 M1 l/ u  K2 x
  25.          }
    6 K9 M% C- f/ Z: o
  26.         else  
    " A* s0 ]$ i+ y8 F9 W: {8 z) q
  27.          {
    : X, M; f# E+ }9 c0 A8 l2 w
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    1 X1 e6 ]2 y. P. B" M
  29.          }
    : [8 _7 i1 X  Q% f4 R3 W/ V# u: x8 V
  30.         4 [3 d$ ?. s/ N: C4 T. c3 I: T
  31.       % J$ _) ~* _0 p# H. J8 A; t
  32.         getchildren(components[i],indent+5);
    : m0 \7 W, w. c" G: ~2 H
  33.       }& V. q4 B: b+ F8 R- L& _& l
  34.       }- N( b. ], K: o/ w
  35. }</p><p>static void do_api()% g, L' l# w9 p# d/ |+ `) E' c9 `
  36. {
    7 m. C, |+ n6 R
  37. //list the components! v. J  W$ _! A9 w! N
  38.   Session *theSession = Session::GetSession();
    5 `: `, k8 j7 r3 \9 [" ?1 S
  39.   ListingWindow *lw = theSession->ListingWindow();
    " U% o  h  m1 o* d
  40.   lw->Open();: z! Q; O* K( {" A& f
  41.   Assemblies::Component * rootcomponent;7 p! J4 z0 S: I$ I0 {
  42.   Part *workpart;: Y" i9 P5 O8 Y/ ~$ v8 G  x, t) b4 H8 C
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();6 ]) l+ U* o: C% w$ X' C
  44. workpart = theSession->Parts()->Work();
    ; y* C( W3 X& o" z5 m' f7 ~4 d6 z
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );1 c' q6 P) S  N+ l+ V) q9 f, U
  46. if(rootcomponent==NULL)8 m8 j' \- @: V* N- `
  47. {  - F/ v# {/ f$ {+ w) a
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    4 j9 R. Y8 v9 Z# G4 i' `' C: R& S
  49. }
    5 V8 C) H3 p6 Z9 J3 _, F9 ~
  50. else
      C# }9 h" ^7 G5 a0 E3 N0 i7 u! m
  51. {
    0 q( W8 R. y0 T$ ^
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");( z9 w' ~. X4 {* m
  53.   lw->WriteLine("The children components are : \n");
      C8 L9 z7 F* d3 w7 I# k
  54.      getchildren(rootcomponent,4);6 A. w- V- {/ U2 Q$ r2 S3 w
  55. }</p><p>}0 O6 I+ Q* [7 i# s* _8 _
  56. </p><p> </p>
复制代码

9 U0 _% X% x9 C: \4 Y1 G. H( w
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了