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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
$ r+ K+ `: z- {4 \' N" t
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态& n: B( G9 {! Z% J) y

/ q% q0 L( s% W- R" K: o

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

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

! A0 ], i; l0 M' I6 ?$ H
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)7 }. B) J, {5 f4 M+ T2 V9 j, u
  2. {      
    9 z+ X0 j( q+ j0 Z% d$ K. b
  3.   2 h0 ~' V: u' w+ ?! p0 ^% y
  4.   unsigned int ii;
    * t* @  R, s2 `: K; e9 B
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    2 t$ {6 I9 r0 u% D! c* K
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");# B$ M/ S+ e! \; n+ m
  7.   std::vector<Assemblies::Component *>components;
    . F& c2 l. ?7 U8 [0 g
  8.   Session *theSession = Session::GetSession();' o6 }/ q' V) p2 B# G# j/ {
  9.   ListingWindow *lw = theSession->ListingWindow();
      Q5 b( ~- z% L. @& w
  10.      lw->Open();
    2 F' U1 P7 e! E4 i* W
  11.   components = rootcomponent->GetChildren();9 B! E- l9 C* |
  12.       for (int i = 0 ; i <components.size();i++)
      [8 N2 ?9 d' P; E; }
  13.       {6 \/ C2 L; w3 |# D* w8 S% x5 G6 `; C, _
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    ! G. G( T8 y" r4 W* J( C
  15.      
    , a& Q. j" E# ?# n' ?) \- y
  16.       if(childpart==NULL)0 i8 L' F1 |7 e+ I0 C
  17.        {) \3 J& U& s' M3 S* Q$ A
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    : \4 q* G- E1 t
  19.         }5 l9 n7 P; i0 I" K4 L
  20.        else
    , U! k$ d2 R9 Z) L! u
  21.        {
    : b# i$ z( {6 t+ w* X
  22.         if (childpart->IsFullyLoaded())5 `$ ^: d8 c: U* R$ c5 H; j
  23.          {
    8 T3 a" j/ m, g0 ]! x, i
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    * R7 O, w2 R8 l& q5 b3 ?* b# u
  25.          }
    * |6 i0 f4 }; h8 d
  26.         else  ; y2 @7 G' O0 O( K* l0 }
  27.          {
    2 t; l- J) ?) ^* k8 H( \. M# N
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    ! \! t/ U& o: m: A; U7 [6 c/ Q1 B
  29.          }
    " A% C  X! E0 I9 L8 y  o1 @7 G
  30.         
    & D# t6 K( A2 `% P# v( s
  31.       ; c3 x7 t- o1 x# W; ~! h
  32.         getchildren(components[i],indent+5);
    # s: _$ n! a. X
  33.       }9 \) |/ i) X, |8 F
  34.       }* G. J9 w% H# `4 N6 x7 ]6 a
  35. }</p><p>static void do_api()7 G2 t1 z7 c) v. [% l) X
  36. {
    + R. R/ G' G* M( t
  37. //list the components
    6 D- u# X) t6 r6 c5 m( t$ L4 M
  38.   Session *theSession = Session::GetSession();% f, s9 g; F1 c" l$ W5 X5 H
  39.   ListingWindow *lw = theSession->ListingWindow();: l  H! H/ E8 [; p( @* \) ?
  40.   lw->Open();
    ; H- j7 x& B& w! P1 _/ z
  41.   Assemblies::Component * rootcomponent;7 Y3 r% G9 n* e3 m) x* C. s" V
  42.   Part *workpart;9 e* O! Q. _7 P" z
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    # p) T6 H2 M4 R9 f1 x5 i
  44. workpart = theSession->Parts()->Work();
    ) o* U0 P* O" `, l- z9 s# I+ q
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    ; B/ G8 V4 Z" Q" b3 }
  46. if(rootcomponent==NULL): x8 b& F) O' B% ?7 X% f- |
  47. {  
    7 z6 T* U2 M* R+ a
  48.     lw->WriteLine("The part is not an assembly ! \n " );, `: a. H' K1 L! |4 I* G5 g& j
  49. }5 V; Z/ e8 i0 [7 `9 r- w, i6 h
  50. else
    4 e7 F- i, P& ^) \+ ^9 h
  51. {( q, \  n8 ]% S- L) @3 W5 ]
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");. q; L$ [" s1 y8 J" \; D. g
  53.   lw->WriteLine("The children components are : \n");' z. A' c! b$ U6 e
  54.      getchildren(rootcomponent,4);
    ' F1 \' V) M: N1 Z9 a  S
  55. }</p><p>}2 t1 v4 E$ _( v* P
  56. </p><p> </p>
复制代码
$ L. _& O/ N# |2 i; W. 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二次开发专题模块培训报名开始啦

    我知道了