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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

2 Y* V( {- M. t6 |+ ~, MNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态0 B+ k3 x4 K" s# Q6 ~8 D
1 L, [- v% \) M2 z' F% O

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
: ?, J7 w: |0 j9 D! Z) W% J$ H' U
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    , \5 X2 N: L3 W4 x; [+ ~- P; G
  2. {      
    9 D+ p+ G' c3 S# A! q& g5 l
  3.   * r- O! h  m! ?
  4.   unsigned int ii;+ w* W2 G: r$ N- u+ l5 M
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    5 a8 F! J- n8 v7 g) l  F
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    6 B: w7 J0 K4 [: P3 J4 {& F
  7.   std::vector<Assemblies::Component *>components;$ n; b5 E+ u" G. ^, l" y
  8.   Session *theSession = Session::GetSession();# b% S) `. m3 i6 e8 v- T. I( U
  9.   ListingWindow *lw = theSession->ListingWindow();
    2 h9 a/ z3 r! |- _0 \$ f" ^; X
  10.      lw->Open();+ b* k0 R* ]1 M
  11.   components = rootcomponent->GetChildren();; v8 J8 {8 s3 P' u3 Y
  12.       for (int i = 0 ; i <components.size();i++)
    7 M. a: e$ b* A5 Z: F2 ]) ?+ y
  13.       {
      R5 p% z! r9 w; j  k7 y
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    8 v2 L; [$ @+ L' o5 v
  15.      
    2 K  j8 i5 K* ^8 o" G" p
  16.       if(childpart==NULL)
    + s5 |3 C7 c& B' A& }
  17.        {
    . y. N; T, P6 S" R
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    4 l+ ]( ^8 o( k
  19.         }/ h9 o  a% k9 H/ G
  20.        else
    ' a$ k- ?6 D; v4 i* a* @: O# Y
  21.        {1 R* O2 P$ c. c( a" R9 b* R
  22.         if (childpart->IsFullyLoaded())4 G/ E5 {  ?+ O6 ~
  23.          {( b3 n: J7 }: ?- X" p" H' R
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    4 t+ q5 l6 N5 }" m/ z
  25.          }0 f1 d9 r$ J2 m/ L' k( {
  26.         else  2 f0 O1 e0 g/ _
  27.          {
    1 T2 i( e. _9 k5 F' ]; v3 f! g8 k
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");  B0 W- f" F4 |7 ?
  29.          }
    5 W, L6 `6 A& i
  30.         7 L) E& E/ s0 O8 y/ _
  31.       
    7 P$ S' P- @/ U5 t
  32.         getchildren(components[i],indent+5);
    ( x+ O) B0 O7 q$ a- e
  33.       }
    ' K& t, o9 u- r' R6 H, p
  34.       }, t! s5 v" ^9 b4 a9 ~, D
  35. }</p><p>static void do_api()6 P& E1 b( c, U4 u5 @) O# |  X1 ^% D
  36. {7 j8 ?( u& C! R* P
  37. //list the components- ~& d0 y; x) y
  38.   Session *theSession = Session::GetSession();
    9 F/ C* D: A, K* Q
  39.   ListingWindow *lw = theSession->ListingWindow();
    # B! K/ [2 ]- g. a/ G
  40.   lw->Open();
      _% U# S3 |- G  {3 M! `
  41.   Assemblies::Component * rootcomponent;
    6 ?* a# m7 b% W4 k/ J
  42.   Part *workpart;/ u* X" S8 }$ b: i; g" J9 v
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();( }. s, q% f+ v
  44. workpart = theSession->Parts()->Work();
    6 b$ J1 b2 x7 s8 u( d" I2 X
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );; ?  k' @" S1 ^. w: F6 R8 g9 o; T
  46. if(rootcomponent==NULL)* `8 ]5 y$ d& G3 b
  47. {  + X8 `7 w/ F; Z6 L
  48.     lw->WriteLine("The part is not an assembly ! \n " );$ G1 Z7 b# ?8 D2 l1 \- O
  49. }8 L: ?0 W  y! h% A! Q2 d( ^2 _# k& y
  50. else
    / J5 {7 K( ~" w8 @4 P( l
  51. {
    + Z8 `* a  H+ o7 `
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");/ y. g3 U# N6 l
  53.   lw->WriteLine("The children components are : \n");2 S6 S& V2 y  i4 \! T/ v# O2 h3 H
  54.      getchildren(rootcomponent,4);) [, J) j5 z% I+ Q% @5 q5 g, |9 G
  55. }</p><p>}3 M" L8 i- B. w( d6 o
  56. </p><p> </p>
复制代码
; _: F2 q9 x8 g6 s
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了