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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

2 P2 S# |; w* s: w8 r( C+ ]: a+ ENX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态3 v1 [. L; E* J: U- \4 |
. K: H. ^9 k* i9 C( Q

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
; U6 b6 Q* _6 N8 v, t
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    1 M: r; E% d* `3 W0 v9 L
  2. {      
    ! w8 p- n! `& c) a$ l7 N# F
  3.   
    , K0 w( e0 h; |7 t8 g5 X, Y
  4.   unsigned int ii;
    - N3 o. q+ p2 w, T9 k4 _! p4 u3 ~2 [. F
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    * _- G; l% j9 W- R
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");: e/ o% M" W+ Z) D; z- O* n
  7.   std::vector<Assemblies::Component *>components;/ t; h/ }1 x5 M: w, s8 y. d1 l
  8.   Session *theSession = Session::GetSession();" w; l- b, v" ]
  9.   ListingWindow *lw = theSession->ListingWindow();
    + ^5 Z# w$ `7 E3 g2 t
  10.      lw->Open();
    + y! v6 Y& x6 \* b, r8 S
  11.   components = rootcomponent->GetChildren();0 V+ {4 e* x# M
  12.       for (int i = 0 ; i <components.size();i++)
    . F0 W3 R. J6 S  ~
  13.       {1 |- \1 r% q. P
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    " q4 K% F7 q) X3 k$ q. ]
  15.      1 G7 ^1 R4 j* F+ A: S2 I3 b' u  G  j
  16.       if(childpart==NULL)) h( B' R/ P/ n& j5 ~
  17.        {
    8 }6 ^2 i, T. h% A# `" B' N) L' ?2 h
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    # y, }& e9 h, d5 j' Y+ `
  19.         }
    0 g9 |" A& \' @8 B+ z
  20.        else
    % z7 k' H8 g/ z
  21.        {
    ( A' p  B" A  g% D
  22.         if (childpart->IsFullyLoaded())# j# e- M1 K" U7 ]6 l: X6 j
  23.          {2 f& v" T$ o; m9 A2 n/ T7 A; a
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");, X: i& Q1 q" b
  25.          }  M! s7 ~# @% ~' D
  26.         else  
    / y& G! |, Z" ~; K. ?8 d7 x4 v
  27.          {
    , t# h5 E& X7 k/ ^
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    : p: }) _% m/ |) d
  29.          }
    ! k1 v  x0 h, r( F6 u
  30.           [& ]: A$ ~* B6 B( G7 B
  31.       
    . a2 [: C1 J$ h: k& b7 z
  32.         getchildren(components[i],indent+5);
    0 b9 d3 T. q! Z5 |7 M
  33.       }
    9 H# ^: M0 U1 |, q2 [
  34.       }
    5 h9 w9 c9 D# Q4 h1 Z- f
  35. }</p><p>static void do_api()
    - ^% D" s/ |; ~6 K# |
  36. {
    " m! Y( T+ {- {+ Q2 C2 _
  37. //list the components8 K/ w/ `1 B  i
  38.   Session *theSession = Session::GetSession();
    # j0 t/ m) _- u# c# U" N
  39.   ListingWindow *lw = theSession->ListingWindow();" P' L$ N# c6 t# D' o0 p
  40.   lw->Open();
    5 I' B. @2 }% ]) B: \4 D' \6 A4 p5 i
  41.   Assemblies::Component * rootcomponent;6 F# U( ]% |2 N4 B
  42.   Part *workpart;
    2 K, Q& Y: q: W  K8 p/ B
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();# O+ K: D8 ^" T1 {( ]& n
  44. workpart = theSession->Parts()->Work();
    2 x1 G9 ?/ U1 N
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    ) Z7 Q  ?! S. T
  46. if(rootcomponent==NULL)
    / `# M/ i( n- B6 g
  47. {  ; `: E8 K/ p: \& Z1 z, W
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    3 f5 \; J% J5 N' v8 p
  49. }: S$ y5 O* M  M9 h$ [$ v
  50. else
    0 Z1 L$ s0 K8 h: T
  51. {8 g0 C. f/ C& U2 i
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    . a* I2 y) J+ _: i8 e6 f
  53.   lw->WriteLine("The children components are : \n");' b* h: }9 R: Q" ~% A
  54.      getchildren(rootcomponent,4);. j. d! }% a- B" {1 @
  55. }</p><p>}
    1 _8 P7 W2 j5 x0 _0 U& d4 _
  56. </p><p> </p>
复制代码
5 p5 s1 i4 v! ~! m7 o8 d9 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二次开发专题模块培训报名开始啦

    我知道了