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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

, L  _5 `( U8 A# d9 V5 z8 INX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
; D% |# w! P& p7 H1 m3 j# ?& q) I2 R/ M  y. r8 }3 y

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
6 l1 p; i% t( L/ \# r- D
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    ; Y3 F- B& L! a
  2. {      
      Z2 w# G- r) Q
  3.   
    # V; @9 n& A; n% U( F9 Z* V+ t0 g
  4.   unsigned int ii;
    " E1 L2 k2 L0 W2 D* U8 \
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    : X  z( c3 E+ r4 f1 [/ q
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");% p  I6 [8 {' Y
  7.   std::vector<Assemblies::Component *>components;
    . G$ o& |- Z9 ?$ U
  8.   Session *theSession = Session::GetSession();. t  ]; G' @0 |8 H  K
  9.   ListingWindow *lw = theSession->ListingWindow();% Z1 \6 m, v4 Z
  10.      lw->Open();: q6 k6 t' |3 f, f
  11.   components = rootcomponent->GetChildren();
    $ w. t  e1 [! k9 H  A
  12.       for (int i = 0 ; i <components.size();i++)
      F! K' q6 S( q5 L  v) c3 J
  13.       {* E+ [  g1 c7 N
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());1 r7 ?7 }/ H" a# ^8 K
  15.      
    + ~  [7 X4 _- H6 [% x+ Z
  16.       if(childpart==NULL)
    9 p+ o) H9 m  a7 v
  17.        {) I) R5 k9 }7 L7 l. W& k
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");6 d  d& z* u8 z3 H' V0 J
  19.         }- I' [: y+ Q+ D; D
  20.        else ! r) ?* }2 S" P
  21.        {
    , o7 Q- L6 @8 ~3 f! p
  22.         if (childpart->IsFullyLoaded())
    1 ]& _' u" a, a+ [9 g- ^; Z
  23.          {/ U' C! [/ }) o: ?
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    - F0 \" U8 Z+ h9 m
  25.          }" u2 J4 j3 O4 t+ d3 c
  26.         else  # e4 K; h! U" J0 L% L1 Y% T& c
  27.          {
    : f7 d$ i( x: m0 L& Z2 n
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");: u7 `5 \1 D9 ~" c& v3 R
  29.          }
    + r9 l2 ?/ ~: z* k, R# l
  30.         $ p2 ~) O1 a  g+ t) w& `' z* {
  31.       ) M0 ~$ X% U4 z7 c9 v+ r
  32.         getchildren(components[i],indent+5);
    : Z" b+ ~6 `2 G
  33.       }
    : k& T5 h$ y7 X( s' o( A  E' b% E
  34.       }, A  e1 N4 i: Z: v/ @9 F
  35. }</p><p>static void do_api()% f. L+ h2 z2 j$ r( i
  36. {
    8 \0 \! ?  g& j$ i
  37. //list the components6 }* h$ o9 a4 U0 I0 O  _
  38.   Session *theSession = Session::GetSession();! j6 ]5 {( r3 b/ V! g2 |1 s
  39.   ListingWindow *lw = theSession->ListingWindow();
      F$ z8 O; X- b
  40.   lw->Open();4 O% \  F0 o0 V) D& j( [* {3 W: ~
  41.   Assemblies::Component * rootcomponent;2 e+ }/ T' `, y# B$ F3 Z/ z
  42.   Part *workpart;3 o9 r: A3 m2 ^4 ]
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();$ Q) _! N' |, C0 ]6 y' c
  44. workpart = theSession->Parts()->Work();2 m* b, O! S3 G
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );9 H" f% C! T# C5 d; E! }$ x
  46. if(rootcomponent==NULL)) g  ~0 g' e9 J- A9 m4 r
  47. {    e  }8 ^7 M, v
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    4 W# o/ D: q  e/ B% s3 t1 w7 ~- C$ T
  49. }
      n' m* f* Y4 l$ A: j
  50. else
    * {. t% G5 j3 G4 A/ L: [
  51. {) m* C2 ~; b; _( R
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");2 M4 U& e1 G& N' d
  53.   lw->WriteLine("The children components are : \n");
    6 x) h5 b: x: W1 N4 \( t9 a
  54.      getchildren(rootcomponent,4);* a! W5 E+ b3 z9 A& _/ x
  55. }</p><p>}8 N1 [$ L& P+ `. m9 d1 |
  56. </p><p> </p>
复制代码
. x) M/ @: w( T
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了