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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
; N; Z5 f# ~$ T6 }" O# x$ }  Q& H
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
. B+ H. ^; F1 }
: V' t! e* c9 k# X/ k5 l+ }6 C

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

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

4 I5 s' `- s7 t. |1 G. D' q
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)3 M& H% W. Q% \6 I" V
  2. {       6 b  [) p2 i6 C
  3.   
      E2 H3 `: F1 l+ J( Y
  4.   unsigned int ii;
    & }% c0 l) c- J- F( X9 b3 w
  5.   char space[MAX_LINE_SIZE+1] = { " " };7 Z2 o6 a, z' X5 |5 f
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");: S4 v, R3 N: y5 P" u3 [1 L4 t& V
  7.   std::vector<Assemblies::Component *>components;
    , }: z& W0 c/ \2 U+ K8 q( H( y
  8.   Session *theSession = Session::GetSession();6 ?" q2 }: Z+ I" T
  9.   ListingWindow *lw = theSession->ListingWindow();8 Q% C7 V9 A& o2 m6 _2 x2 ^) d
  10.      lw->Open();; M, U# k/ s5 [6 {& p
  11.   components = rootcomponent->GetChildren();- S$ B; e; h4 v7 q7 x  C
  12.       for (int i = 0 ; i <components.size();i++)# L9 ~+ s4 a) n0 Y5 t0 Y3 B5 r
  13.       {
    - s. {9 z+ z& k
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());% a7 p& z6 M) y0 W2 Z+ i
  15.      3 Q  ~& w: e9 R
  16.       if(childpart==NULL)
    $ x/ ~. k9 e9 y& a' r
  17.        {* D+ A# S4 x( J8 P/ |
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    5 @2 F0 P; H7 j. y& C# |
  19.         }
    0 c; q+ y2 V, T/ m0 d  S
  20.        else
    % R% q! R! Q) e2 m: }
  21.        {; U9 s5 E# s3 B" s9 E/ B
  22.         if (childpart->IsFullyLoaded())
    5 y* O/ b% Z4 b$ r) M
  23.          {
    9 ~4 S8 ^9 k( K; C  }1 v. E
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");% t& K& A! V- W! a2 l3 }5 }
  25.          }8 @$ i4 `+ ^0 S/ Q$ U
  26.         else  
    6 G0 K) E# {: F/ H+ g2 ?
  27.          {% J% e' q# w  X4 L0 r, M
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");) a  u( N+ |8 s  j3 k+ ~0 Q
  29.          }  k: C2 L' l& c* I
  30.         & b* n( g* [! R: r
  31.       
    5 D1 {0 y2 c! t/ a9 k
  32.         getchildren(components[i],indent+5);
    9 I* r8 `6 |0 {
  33.       }
    9 f+ r) k  f3 r
  34.       }
    ; R, g( T, S- C9 x4 A. q
  35. }</p><p>static void do_api()' l" e6 Y* S, |) I% P1 s
  36. {4 P9 D% j0 A+ B( T
  37. //list the components
    ' d) O- N- F3 x8 c# y# `
  38.   Session *theSession = Session::GetSession();2 T% r+ ^; Q* _9 }* X# h" W
  39.   ListingWindow *lw = theSession->ListingWindow();
    0 Y  x$ b" O* |$ k4 Z: O
  40.   lw->Open();
    * r% V5 k6 ?2 a& h( U
  41.   Assemblies::Component * rootcomponent;
    ( X5 Y2 z# ^& x; i; X
  42.   Part *workpart;$ z6 N2 x9 V' R' u: p
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    6 z# V, B; f9 E/ X' N' U
  44. workpart = theSession->Parts()->Work();
    1 A/ @. p6 u% L
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    $ M2 Z$ f1 P4 G* X6 m
  46. if(rootcomponent==NULL)
    3 k8 M- I) k+ u+ {# ~
  47. {  
    " _/ E3 [2 X1 E$ S
  48.     lw->WriteLine("The part is not an assembly ! \n " );3 y+ N+ M$ j2 a! {. V1 y$ |3 o
  49. }
    " ?/ z5 t' s$ k/ C6 w/ `" i
  50. else& x4 d" O7 j, T
  51. {
    . [2 |+ c7 y5 W& m
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    * P& q$ U; c; C% t
  53.   lw->WriteLine("The children components are : \n");" d. J: ~- ?* ?! y# U; f
  54.      getchildren(rootcomponent,4);" b% I' T( F& F. g( T4 J: m1 U5 N
  55. }</p><p>}# ?# t/ H. D. t+ ~$ u' O" y
  56. </p><p> </p>
复制代码
* D0 m4 w1 P! N- m
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了