PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

3 L7 L. @$ y3 E* N" nNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
( w4 c5 ~* t+ g+ E5 o2 {! C- Y1 E0 T: }" N& l7 ^

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
9 r  B% U3 h) ~. v: {2 M- X( M. [6 |
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)" a3 U8 A# }2 i& G
  2. {      
    ) B/ {/ v, e) F& a* P6 B
  3.   
    5 k1 y  j+ ^; F; T
  4.   unsigned int ii;. O  d( @0 C  N  J$ W
  5.   char space[MAX_LINE_SIZE+1] = { " " };  V: I, V: m, q
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    2 N2 }2 Y' z- g0 P5 l$ ?0 F
  7.   std::vector<Assemblies::Component *>components;
    ; x( r9 j1 T4 V
  8.   Session *theSession = Session::GetSession();4 {& u4 F/ K9 n. x  W
  9.   ListingWindow *lw = theSession->ListingWindow();: k; @" d+ O# Z. |$ }) o' a
  10.      lw->Open();
    # I5 ^7 P& ^+ K, D  T
  11.   components = rootcomponent->GetChildren();+ B* K  ~8 w0 p- Q) H# Y
  12.       for (int i = 0 ; i <components.size();i++)7 o- _0 J1 p3 A0 F$ x
  13.       {! k4 a% K$ i# L: H8 X9 _: T" h9 C
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());" `7 m/ s6 m- @: N+ y; y
  15.      
    : Q3 Y8 s! }' }" U' u
  16.       if(childpart==NULL)
    ; t* ?7 j3 s3 M+ _3 t% D5 j
  17.        {8 J8 `3 @; `3 q/ n2 \
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");( d  \" t; {! N. d. a. Q
  19.         }9 _" y( B& |( y
  20.        else 2 T/ o( |4 k- ~$ [. M1 g) |% Q$ f
  21.        {
    " D5 o( ]; E( m  E
  22.         if (childpart->IsFullyLoaded()). n" B9 s1 A" f$ P+ \3 n$ _' g
  23.          {
    0 x8 P6 d$ Q* `+ _
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");" V, \5 Z& L$ @% l& V# x
  25.          }* [0 j( O" L" [
  26.         else  
    5 ]( K! d1 q% D
  27.          {; A- J% }% E% e- _2 p  [! n
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");$ M4 D4 G7 m- B) F) H6 z
  29.          }
    4 \" U1 D4 _% b! }; |, ~
  30.         
    , M1 F1 f# Y5 v9 |% \4 \6 U
  31.       # Y1 d8 H; I5 I
  32.         getchildren(components[i],indent+5);- W( F0 ~5 p8 W3 }5 w
  33.       }, M! M% v3 Y9 {! F" }; n6 S
  34.       }* D6 X8 l; o/ h) j1 C
  35. }</p><p>static void do_api()
    $ O0 l9 ]' u5 b% g: W' H* \
  36. {
    - g  ~/ Y+ P7 S, x6 ?
  37. //list the components% _/ K6 V# t; N) i
  38.   Session *theSession = Session::GetSession();. y# r/ I4 u# T# @% g
  39.   ListingWindow *lw = theSession->ListingWindow();9 }5 x" y. u  `0 S0 P
  40.   lw->Open();
    5 t* P; G4 b- B2 Y) }' G1 w
  41.   Assemblies::Component * rootcomponent;$ G8 o5 L/ @9 ~5 d* E3 I! r0 ]- |
  42.   Part *workpart;
    ' G5 M9 F* U/ D. y. @
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    9 d' _: e6 R. a: c' l  X5 y
  44. workpart = theSession->Parts()->Work();6 D  h8 U/ W: ?1 M
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );" a9 P* z. Y- T- S8 L* L, s
  46. if(rootcomponent==NULL)
    + ^$ D2 g  w) y  z5 z# b- j! o* L
  47. {  - H0 ?; Y- q* P2 k" y8 z
  48.     lw->WriteLine("The part is not an assembly ! \n " );8 @! n) Y) |/ E6 m0 c0 t
  49. }
    $ f" E4 E& Q* ^4 J+ d- R
  50. else1 Y' C/ ^5 E) p1 p! X2 V
  51. {0 I2 F9 E5 c1 {% n& j  L. e9 e
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");- I: E/ N) j- M! h
  53.   lw->WriteLine("The children components are : \n");6 l! m" z; U+ L1 K; n0 u5 @& d" r
  54.      getchildren(rootcomponent,4);
    ) D$ p; c' ]" F% [- D4 J. h2 z
  55. }</p><p>}# f' R; ?8 e, w7 _3 z, p) p% g
  56. </p><p> </p>
复制代码
& q5 r0 L7 I. a# r* V" j
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了