PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

# Y/ d. V, W, a+ p# WNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
) ?- F2 H) E" s$ \$ B
% r6 D0 C5 i# _$ i: x' i+ D& ^

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

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

/ h  {4 e" J& d# J3 ~
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)* W' v2 ]0 W' @, U6 x
  2. {       " |% Z1 m4 @0 q, I+ d3 ]
  3.   
    5 s, I- Z1 g8 B
  4.   unsigned int ii;
    8 A( B. ]: B  C: V8 z, z1 I: `' {
  5.   char space[MAX_LINE_SIZE+1] = { " " };; A2 u' e& a  I8 c/ w, x# J+ M
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");+ _: i4 }7 W9 Y5 G: ]* p0 r4 l
  7.   std::vector<Assemblies::Component *>components;
    % v% l9 i9 o" R% }" o, Z" S. K! x
  8.   Session *theSession = Session::GetSession();
      u; ]1 {1 F5 }9 e# F
  9.   ListingWindow *lw = theSession->ListingWindow();
    # Y6 B! H3 T4 B) _0 o
  10.      lw->Open();
    6 ]6 C) W; X7 O4 I: ~+ |# X
  11.   components = rootcomponent->GetChildren();
    & s6 K9 d; E8 W1 {( K
  12.       for (int i = 0 ; i <components.size();i++)
    ! B1 E. J% U2 E4 L$ r
  13.       {4 U+ T) Y! @6 V* B6 ^2 B# V  z
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());' Q2 e4 c7 P6 ]
  15.      ; F7 X. }3 S1 L7 ~# ~% Q; F
  16.       if(childpart==NULL)
    ' S8 w; U1 n2 O8 U: A# a9 A6 n
  17.        {
    & ~0 k$ O. g  @, y/ o$ B
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    $ i5 S8 V- W( t4 @4 M1 k( d. q
  19.         }. e* H* Z, ^. O( T! i! ~
  20.        else + B8 J' b( M& L4 ?: K- N8 t
  21.        {
    6 Z5 M: |% f, Y  y
  22.         if (childpart->IsFullyLoaded())% ~9 l* `; B. A) ]  B8 T: W" J
  23.          {! M# t$ W% C3 b( l' T- F7 F
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");3 o, H0 a) U, H: L! Z( ~. G
  25.          }3 \1 B/ S. k1 @" L  _3 X
  26.         else  
    6 ^) j) P) q2 c- x' e8 @
  27.          {' J" t0 j/ ~/ B3 d; O
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    & A1 I& `1 o1 u% Y( z
  29.          }8 `# n$ ?8 ?, d3 U. {, q6 J& {% h
  30.         & E7 d) \' v9 y" y9 l
  31.       
    ; [4 m" O2 T- ~) X" i
  32.         getchildren(components[i],indent+5);! v$ [, l2 ^6 Q1 ?& ~) |/ f
  33.       }
    & y/ |! |! c6 P2 J* C
  34.       }* v4 m. Y; D* @: O! q- m
  35. }</p><p>static void do_api(), T- |, o- X3 B8 a% l7 x$ [5 A
  36. {
    # Q# P. c; n2 S. H: M" I" O) N$ r
  37. //list the components
      m% Z' j  f% m- U: A
  38.   Session *theSession = Session::GetSession();' [+ ?- Y+ s& L) P: j- h
  39.   ListingWindow *lw = theSession->ListingWindow();, [7 N- X5 l& ~7 O
  40.   lw->Open();# b! |$ w) g/ w' E
  41.   Assemblies::Component * rootcomponent;
    ; L3 b, H2 `) f% H, _! c
  42.   Part *workpart;
    5 a" m! c" b+ {# D8 `+ D- d. s! [! |
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();* r. L7 `6 G" p. K+ U! S; P
  44. workpart = theSession->Parts()->Work();# P! |$ E/ y8 l1 O4 ^' }
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );' }1 O6 F) |9 _; a2 @, O# G
  46. if(rootcomponent==NULL)
    # c2 l" ?. B, u1 t( w
  47. {  " ~# Z. A% `! H9 k3 b
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    & k$ B. P: {, N2 |
  49. }& h( p# V5 B( `1 u8 L# m
  50. else! G( U* |& g7 C0 |4 w
  51. {5 L3 V  ]4 n  I7 U
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
      A! Z  T4 P# S
  53.   lw->WriteLine("The children components are : \n");
    # \& k* P3 g" W0 s$ }
  54.      getchildren(rootcomponent,4);3 }% Z; \$ N% t! S: K/ ]3 j
  55. }</p><p>}# d. F: g0 r# c' g# P4 L) r
  56. </p><p> </p>
复制代码
6 B: o6 i' u) ]6 [1 ^; S" v6 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二次开发专题模块培训报名开始啦

    我知道了