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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

4 W  z. Y. }0 _6 l4 S( w4 L5 d! FNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
9 `1 i4 ]8 `2 o$ Y3 m( N6 a* z9 U/ _8 C& _0 L) G' i

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

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

9 d/ Z, `6 v9 }; Y
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)6 \2 L- \5 v1 D! ~# B3 s
  2. {       - T, \/ R, Z4 w
  3.   
    : v' I- @& I* D7 v% v
  4.   unsigned int ii;
    4 ?3 c+ o; d3 M" x8 A
  5.   char space[MAX_LINE_SIZE+1] = { " " };! I5 {- v% }0 W* ^$ H
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    * W7 s5 K) d7 w9 W8 S' C
  7.   std::vector<Assemblies::Component *>components;: ~0 k/ n" N) J) g; _9 ]
  8.   Session *theSession = Session::GetSession();
    $ g4 I& w1 Z* r' N& F
  9.   ListingWindow *lw = theSession->ListingWindow();3 t( y( ]* o- E8 c2 b0 s' _9 \
  10.      lw->Open();  M& X; ~0 M! G! y1 @, f: g
  11.   components = rootcomponent->GetChildren();# S* j  w) x5 c; V. S
  12.       for (int i = 0 ; i <components.size();i++)
    3 y9 N5 q% Z* d3 \! B2 t; Q1 V
  13.       {  d$ B5 Z/ H% s; ^
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());4 c1 D2 ?* K) g, M9 c+ w
  15.      
    6 u$ D2 D- a5 g/ {3 n8 _. q+ ]
  16.       if(childpart==NULL)
    : W1 V+ P" U$ p' _, _
  17.        {
    & s6 G+ V/ D1 f, z& s
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");2 a6 o  d# E+ D7 j
  19.         }
    ) l# E( ?9 A9 S- D, h! S
  20.        else
    8 _' F& q  T/ [" R) P9 W. b0 S3 k- y* M
  21.        {
    8 |( _7 t" e; d1 z  h* ^
  22.         if (childpart->IsFullyLoaded())
    : ^, V+ U% E; Q7 k8 j; M
  23.          {
    9 Y" z/ U- t) _" E* R5 W2 p
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    7 \) H5 s3 o9 P% W! c) {
  25.          }/ k! u! N) {  k
  26.         else  
    9 y; y) q( L) u4 X: x, ^; J0 v
  27.          {
    1 y! `1 O9 w  R/ y* l+ E
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    / E/ H; E! p; C( s* G8 m; H- ?
  29.          }
    % D7 I4 T3 s  {) W* F
  30.         
    / N6 X+ g: o# H
  31.       
    & a/ g2 n  M7 e& P
  32.         getchildren(components[i],indent+5);
    " o1 F. r" }, s+ h$ ~! d
  33.       }& Q0 b# S3 S/ q$ M, X) ?
  34.       }; O. B3 c! f# v/ c
  35. }</p><p>static void do_api(). y# ~# u* |2 Z* W
  36. {
    . J/ I' N, j. p) H; Z7 k, n* }, |
  37. //list the components
    & E& `% D$ I1 A+ F* ?1 o
  38.   Session *theSession = Session::GetSession();- n; S4 N4 i' L/ r3 C
  39.   ListingWindow *lw = theSession->ListingWindow();( w! ^& F/ D2 l3 x: a" h
  40.   lw->Open();
    0 R$ p6 @/ o3 M* e3 L  U. n3 u4 D
  41.   Assemblies::Component * rootcomponent;7 R# W% M" k5 F) ]- C  S4 q" C
  42.   Part *workpart;3 n5 ]3 _; U( d
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    : w( B5 l/ f# D7 D8 O9 c5 }
  44. workpart = theSession->Parts()->Work();
    & _& T/ d4 m! |! @) k
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );: v7 L& H& R7 i0 P9 p5 O
  46. if(rootcomponent==NULL)0 a! K' g4 }9 {7 p6 Z* d: ?
  47. {  
    6 k7 H+ q- y: u9 i' o7 q
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    " X  I/ M9 \' s  o
  49. }
    0 O- T& e0 D+ |+ z0 P) \
  50. else2 M/ [! M' s8 Z0 Y$ g2 c0 ?
  51. {% O2 N* S4 V. C3 ^( v% x7 L3 A
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");- Y* m/ C& s8 g9 b2 f3 n
  53.   lw->WriteLine("The children components are : \n");/ Q% F$ L+ q- s4 X/ E4 T4 e( h
  54.      getchildren(rootcomponent,4);
    5 e$ x1 O9 ]: q" X5 @% w; U
  55. }</p><p>}
    - J- X( w% k  w& r, h6 I
  56. </p><p> </p>
复制代码

( H3 m+ k9 z( u+ z: |
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了