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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
1 B/ n3 r  g- g2 V0 ~' k
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态& y2 l8 k" N  G* h- ^
* r; Q, ]$ L" |" P$ D

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

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

0 o6 ~7 S. Y2 f
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    9 ?& C/ b. t: |7 F' w) I
  2. {      
    ) ~8 O: o0 a8 X# s- }" W
  3.   3 f1 E- u0 d% ?. G( k
  4.   unsigned int ii;" p0 V  S8 {2 B$ D/ |9 c3 C
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    * @) f7 q" A2 L" B9 _( z
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    + V: r# v2 @- J( f. a" k0 ]& m% [# [
  7.   std::vector<Assemblies::Component *>components;
    2 n1 I  b$ x, y4 X: |8 q
  8.   Session *theSession = Session::GetSession();
    % [% k& f4 y/ V9 w* A/ G
  9.   ListingWindow *lw = theSession->ListingWindow();5 a( b% q7 I0 V6 j" k
  10.      lw->Open();
    " |5 \# H+ t8 }  B8 a6 c
  11.   components = rootcomponent->GetChildren();* e: q# r  w; Z- y5 Y. W& Y9 B
  12.       for (int i = 0 ; i <components.size();i++)( `' H+ e" m( Z6 g! S
  13.       {* D% A1 P0 o" ]1 d
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());7 ]+ E& K7 ]* f; v  ]/ h
  15.      
    # j0 S$ K) K  W" k, g) w: X
  16.       if(childpart==NULL)9 h4 s, B/ J2 w0 `
  17.        {4 d5 z: N3 {! |1 t
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    0 |7 R+ F0 S- E8 Z
  19.         }( \$ [7 l& A/ n4 I* @" z2 C
  20.        else
    " d. w; ~- |0 f
  21.        {
    + o& |& V' j- L8 G" i% @  n
  22.         if (childpart->IsFullyLoaded())5 V: E) x6 C0 o. E& e
  23.          {( S# q9 L5 B& ?) A
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");3 {6 h( ^& D6 s) R7 N
  25.          }
    " A. x* E3 d+ _7 t: K1 B
  26.         else  
    0 I; d" W" _: d$ ^& q
  27.          {
    3 l8 K4 r# B$ C. j: s" F/ [
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    " [( b4 Z8 J' B
  29.          }
    ) h0 `  z4 j6 ]7 f/ p% h
  30.         
      m7 x0 T. ]  d4 m% S/ h
  31.       / b* z! v4 p! N4 p7 K9 S
  32.         getchildren(components[i],indent+5);6 d4 H+ M, z" U# j& h
  33.       }$ S8 @. [6 l, x5 ?
  34.       }
    ! V* ?. C$ e+ H7 g: ~* C: C3 y
  35. }</p><p>static void do_api()/ c# `2 @) s  n3 S
  36. {
    4 @/ b/ @# i3 x8 {0 h$ e
  37. //list the components
    , t  N- i( k: v5 T4 L: ^0 M, ~
  38.   Session *theSession = Session::GetSession();
    1 D  R; t3 ?1 A# t
  39.   ListingWindow *lw = theSession->ListingWindow();
    7 a1 b& k6 C  j
  40.   lw->Open();
    3 f1 b2 u; b5 L! a0 O7 f
  41.   Assemblies::Component * rootcomponent;, Y! W, m+ f1 y  v6 @/ V+ N4 Q5 Q
  42.   Part *workpart;1 @' L5 o, c3 g
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();& J8 t. n+ b$ k0 \" f* z( @' Z5 c
  44. workpart = theSession->Parts()->Work();
    , U+ L$ @" {7 W: a" K
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    : s3 U$ V8 B6 T; t7 J2 }% ]; B
  46. if(rootcomponent==NULL)
    ' I( `; Y) ^# ?+ X4 E& n$ d, o
  47. {  
    " D' }! W' e1 |% ?6 L
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    ) Y5 w0 z! q# C( M, y* r  _
  49. }6 }- d! d* [% E, l
  50. else1 _% K9 S* r0 N# T" R
  51. {
    ) m' W% ]/ a$ p& r5 J9 P; m4 R
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");& a0 `: P6 g% E7 f
  53.   lw->WriteLine("The children components are : \n");
    ; z9 ]- U% P# j$ u; I4 p
  54.      getchildren(rootcomponent,4);/ [9 X! a. D! Y6 x4 W3 K
  55. }</p><p>}
    8 |1 [0 h2 u$ l& I8 o+ F0 K: G
  56. </p><p> </p>
复制代码
- L% s) k9 j+ f
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了