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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
" T% K7 K) X# r5 S; e
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态$ ?  F& Y- h  @0 N( k* I' N
! [3 Y: D/ p3 J/ P9 ?

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

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

8 U1 @! }2 |5 w) G0 ~! c
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    ) N# K. i1 M* N! p+ P
  2. {      
    & l2 p6 u$ e7 T. Z; X. @
  3.   
    ) e3 ]# \/ ^# b- Q7 c3 }" T
  4.   unsigned int ii;
    1 }2 V, W4 ^' h9 w7 P% W) B
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    + @0 o2 l6 N8 D2 J/ r1 H
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");# u2 v! K6 p1 k2 V
  7.   std::vector<Assemblies::Component *>components;
    # z2 M7 ?8 e& D% X
  8.   Session *theSession = Session::GetSession();! r  m, w: ^% p3 Q: K
  9.   ListingWindow *lw = theSession->ListingWindow();/ S4 _, n7 T! ^: y0 i  s
  10.      lw->Open();, d; i% D! |) G* b6 B% I4 D" c
  11.   components = rootcomponent->GetChildren();0 i1 G& h  U9 t0 o5 X$ Q- S8 X
  12.       for (int i = 0 ; i <components.size();i++)0 Z9 ?0 ]$ V4 F6 I
  13.       {
    0 w4 D# E: J% P6 Y% |. k
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());9 B) p* o% A" ?' Q. K0 H
  15.      
    , o. s7 r- H* ~9 t
  16.       if(childpart==NULL)! _+ V) e5 Y* }/ k
  17.        {# [# A( z! ^; b5 H7 v
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    $ C. U6 M9 _) I# k2 K+ j
  19.         }
    . A# X, V& y4 x4 Q+ l1 p
  20.        else 6 U* G1 m, e; B, `/ O$ w! A2 E
  21.        {& [* b% L3 V, `8 G! W
  22.         if (childpart->IsFullyLoaded())- a  N/ t4 C) G9 J1 @8 k
  23.          {
    - T& l% J$ w5 L8 E' r+ J
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");$ K2 F% @/ Y0 [  o/ v* ]# A
  25.          }
    0 B) ^$ [6 o5 k' _7 h
  26.         else  
    $ [& B! z7 S2 V- x7 F% ~4 ?+ r. h
  27.          {$ [7 E6 {5 j) U
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");' W, b) r$ \% L0 x
  29.          }
    ) w* y+ V7 r3 F( T- |5 e
  30.         9 B; d7 O% x5 C$ t0 b2 N. F; s
  31.       % C2 R0 x0 G$ B) O) e" K& G
  32.         getchildren(components[i],indent+5);2 R! Z8 N2 E8 @2 |/ i1 W
  33.       }# `( f: d# D9 p) m2 }6 @( N# ]
  34.       }
    * g: P0 [3 Q  o& }% I5 [9 [+ B& r
  35. }</p><p>static void do_api()
    . q! ~1 ^' j! W2 O) m0 {# W1 a
  36. {" y* `8 _# T' |7 s4 b/ i
  37. //list the components: c- J; y" c- L) [( I
  38.   Session *theSession = Session::GetSession();7 C+ Y: W5 u: ~
  39.   ListingWindow *lw = theSession->ListingWindow();, Z' |* ^, N( o% Y' |
  40.   lw->Open();
    4 G9 n- V) t- e6 @  J( v
  41.   Assemblies::Component * rootcomponent;
    0 H$ t7 e: f8 ~* p
  42.   Part *workpart;" e; n, h# {5 q
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    ) X- W3 A! a# u' H
  44. workpart = theSession->Parts()->Work();- \. d  c: b+ Q
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    ' s, T% l. f6 R6 b- @) i
  46. if(rootcomponent==NULL)( D3 T: t) W5 Z/ o4 F
  47. {  
    ' V0 e9 [* k# i* a3 O
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    . E# d3 t8 s& I6 [
  49. }0 y7 O, ?# U9 i
  50. else
    9 d7 h2 q* ]. f
  51. {4 K7 z& e; Y0 b
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    * w& \% W! r' `( v# U: p2 J: v
  53.   lw->WriteLine("The children components are : \n");8 I% c7 Q; J# j
  54.      getchildren(rootcomponent,4);% ]" F) e5 F3 S) \
  55. }</p><p>}
    8 W# Y8 `- `( a# k
  56. </p><p> </p>
复制代码
: x7 H6 Z8 v% `. u
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了