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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
1 u( c5 K4 s! @
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态6 Y/ \. v$ H5 Z" b+ r  r: X3 J4 y1 n

8 x/ r' A& m$ X8 c

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

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

( p( H, Y! d7 [4 c# f
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    % u# ]; u( p' U3 T
  2. {      
    ' n9 q7 H9 p0 {' C( ]. g6 R
  3.   9 b, |$ ]( p/ K8 i$ M
  4.   unsigned int ii;
    1 y4 v% z* D: }. G- b2 p
  5.   char space[MAX_LINE_SIZE+1] = { " " };
      e; u0 Y& }& G
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");# e* d8 _. y. c5 w) l( b
  7.   std::vector<Assemblies::Component *>components;! T6 ~4 p/ T# \$ j  ~" |
  8.   Session *theSession = Session::GetSession();
    & Z2 a6 i! X0 Z6 q% G
  9.   ListingWindow *lw = theSession->ListingWindow();
    , \" s8 N2 T/ y( k, b4 h* `
  10.      lw->Open();
      q- D9 P0 u8 O) @8 H1 u+ m; `* X$ I
  11.   components = rootcomponent->GetChildren();
    # q% T& B( ]8 z- J% `
  12.       for (int i = 0 ; i <components.size();i++)( J# e0 a  K9 g2 Y: p
  13.       {/ n. a- a" Y! U" w
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    6 I8 h, ?# y% L- j( u9 |, Y
  15.      ( Y* ^$ D- y& v. M& Z
  16.       if(childpart==NULL)+ z+ D2 Z; H$ D7 B! g6 F
  17.        {4 O7 S* e/ P9 G
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");8 i, L- k' }7 d5 T6 [! C2 T
  19.         }
      k3 N1 k1 z; Q' x5 C$ r8 l
  20.        else
    , B/ q2 c' H  c% J5 e* F% `
  21.        {
    . n, M+ S& O$ u1 V
  22.         if (childpart->IsFullyLoaded())$ t& h, F: J) i# r+ z
  23.          {
    / `7 Q+ Z" d$ l% I7 R  S
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    / ]6 e$ Z. a: G
  25.          }
    8 z* X9 F: `: I/ X: |. K/ y" Q
  26.         else  * g7 T7 O! X* g( Y( @' }
  27.          {
    : s) C, y- P5 ~6 d7 E* Y/ o. c5 I
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");7 H* |0 ]; p' [5 b
  29.          }, v& D  f" u1 E6 Y$ L! j
  30.         
    ' A, ^% Q7 ^* K4 l% _1 O: c7 A
  31.       
    . d* n% Q/ e5 ^$ d1 l4 c
  32.         getchildren(components[i],indent+5);% {; b# t' G: b; W% P' g4 X
  33.       }
    / @6 c) C$ _7 J9 L4 b4 P4 M8 N% M
  34.       }
    % _0 J: V5 v+ ]
  35. }</p><p>static void do_api()
    # ^  f8 _6 J- c/ I+ [% `0 G1 _" |( e
  36. {3 F3 y  ]$ K( }) h  q6 r1 O
  37. //list the components
    - \4 Z+ c2 K/ k4 U
  38.   Session *theSession = Session::GetSession();
    , E% b* h2 O  g" Q1 N, y; @/ B
  39.   ListingWindow *lw = theSession->ListingWindow();
    " @1 N) \# N( _
  40.   lw->Open();
    4 k" K) o/ s6 H& v- r
  41.   Assemblies::Component * rootcomponent;
    4 a- u+ L" u( R, P9 ]
  42.   Part *workpart;, u! ^6 s5 E  Z/ @! p
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    + O$ B6 }6 `$ J2 v5 e
  44. workpart = theSession->Parts()->Work();1 F& ~# S0 X8 _" J/ H" S5 J
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );; o" w* R' ~- k3 I4 P2 L
  46. if(rootcomponent==NULL). P+ T  |5 v8 {) g$ c& x# i
  47. {  " i" z! r3 z$ _; Q$ b% s  y) m
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    / G- w0 S1 u3 c
  49. }
    3 M. C2 j& p2 e" q3 c5 W
  50. else2 D0 h+ z: U; B1 Z1 |* x* P3 w9 @& l
  51. {
    + |/ i' ^$ v% P3 ~; ?; `/ |
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    7 |6 c6 S+ G* G; C3 W
  53.   lw->WriteLine("The children components are : \n");
    ; q( u1 T* X3 O& n6 p8 i5 T
  54.      getchildren(rootcomponent,4);
      Z) f% m1 o$ y- V! u
  55. }</p><p>}
    ) v9 q- n2 ~5 k8 v. `3 ], L& f
  56. </p><p> </p>
复制代码
$ S. E0 V1 a* x( [1 y! b$ ~
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了