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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

* Y+ O5 A- e( d* @+ xNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
% l- D: ?6 A4 c9 m7 _  G' J
  i* T: ]% p7 W8 N( ~7 ?

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
  G, g' Z+ @- H( t! m, E
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    % c% y# S6 U5 i- t2 Q* J; ]5 I
  2. {       . {( U5 E9 A8 d0 O; h
  3.   
    " `3 W" ~4 b+ J* H) B  n9 j) K
  4.   unsigned int ii;
    3 f5 r& N0 W5 n
  5.   char space[MAX_LINE_SIZE+1] = { " " };1 V) v8 o+ u+ g8 O1 a
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");, n6 u7 H; M7 p" B
  7.   std::vector<Assemblies::Component *>components;: q; M# K% U0 d
  8.   Session *theSession = Session::GetSession();$ M7 i! J  g& q. i& K& E
  9.   ListingWindow *lw = theSession->ListingWindow();
    6 ^5 A( P7 d$ T. G# H8 P% R
  10.      lw->Open();
    0 G$ s' s- J9 N5 T& @* m
  11.   components = rootcomponent->GetChildren();
    " n! T" B# X+ W4 _" Q9 V& Y
  12.       for (int i = 0 ; i <components.size();i++)
    , K* y# c  T2 ?0 F# [" g
  13.       {% V3 N. S/ S+ ^+ y. q
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    ; f3 u" ]. f+ Y$ d. S8 k% N6 D
  15.      
    8 C0 I( K( L7 H& v) ^3 h. ~6 c
  16.       if(childpart==NULL)
    ' V3 j/ k8 \9 W, O1 W
  17.        {
    2 ~& d- k5 C' o$ p
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    * \$ D7 r7 x" z5 y4 h( u
  19.         }) U* t: W- s' l, @* V3 w
  20.        else 5 V7 Z2 G2 v: o. d1 [8 u; G
  21.        {
    ' `& V6 C5 H2 e
  22.         if (childpart->IsFullyLoaded()): @% C: {5 Z* S! X; }
  23.          {+ Y  ^. X( R' r- Z# s" O5 [
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    ' z  Y$ x1 N7 Z; U( r  g2 ], M$ O
  25.          }
    3 A& X8 a8 T* ?: p3 U
  26.         else  
    ) A( g0 h) ^( g6 H2 Y: m. d  ?
  27.          {, k& y' \4 J' u1 U) r
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    7 i) ~* V: p6 [+ }6 P* O; ?
  29.          }' }& D; M) [7 r8 f+ _
  30.         * `/ O% Z, L+ M3 \& f  R9 b
  31.       
    ( U  D9 n: _7 b3 ~' Y
  32.         getchildren(components[i],indent+5);
    2 U$ J- w; Y+ F4 p
  33.       }: N9 U$ O0 ?% j9 Y* W+ H
  34.       }9 j  n+ ]+ _, E4 c8 Z
  35. }</p><p>static void do_api()% X: [3 Z; R" E3 B( _* H2 J; R2 a( Q
  36. {$ R5 {: R4 q  I. A) h/ r6 o5 z$ w9 b. N8 Y
  37. //list the components6 N& X( A, b) e; s1 ^8 y
  38.   Session *theSession = Session::GetSession();
    * g/ P# j: G, K& \2 g) V, ^
  39.   ListingWindow *lw = theSession->ListingWindow();
    3 O* l4 J2 A! x/ o. K' C7 J2 U, `% n
  40.   lw->Open();- ?8 j" m7 O" u% U0 I0 c' `
  41.   Assemblies::Component * rootcomponent;; T( z% R; E* n
  42.   Part *workpart;
    3 @' T" m0 R7 \- v! r$ c
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();! x: W  F- D1 W& E& L: V
  44. workpart = theSession->Parts()->Work();
    1 Y$ B) X7 n2 L  a0 v, {6 C& ?
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );; a+ \" j8 C& U' B* C, N
  46. if(rootcomponent==NULL)- z! B; q  ?, h3 W) e6 d
  47. {  
    9 b9 _( J6 x" d# N( }( P! q
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    # k2 Q4 w. l- W' c; I
  49. }* k( P) d3 A& O4 l
  50. else
    " C% s( @& R$ A; d( C* h( W
  51. {
    - q& x: V$ F! S# f. r6 M
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    ( N$ t. J4 `: g& d
  53.   lw->WriteLine("The children components are : \n");
    ) |9 d% V6 q; l! D9 T
  54.      getchildren(rootcomponent,4);: E1 ~8 T! L" n' I. H
  55. }</p><p>}- p# I/ B0 g! H( ]# _
  56. </p><p> </p>
复制代码

& _) L- L! [6 j. b0 D; F% A
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了