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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
4 F) y  P' F+ E" K; L+ g
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态9 h9 p2 ?" x: I

9 g) P6 P' W+ M7 p1 _+ Z7 J( C* m% O9 I& X

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
, @' C- y' Z- `
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    5 h) l$ n, F- Q. [. v1 i
  2. {       # u  ]& K4 _& D" W! n$ E
  3.   
    % y' W# B7 B  E0 s4 w, K
  4.   unsigned int ii;
    0 G+ G9 ]  e/ s$ d6 }/ W5 R/ N5 F
  5.   char space[MAX_LINE_SIZE+1] = { " " };4 C8 j7 b6 x& o  }( r" ]
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    ' d3 D3 r' Z: e6 A
  7.   std::vector<Assemblies::Component *>components;
    : I1 {( I* O* e3 p3 f& v
  8.   Session *theSession = Session::GetSession();
    " }, O3 p+ T# c3 x9 N8 J
  9.   ListingWindow *lw = theSession->ListingWindow();
    2 E* M/ P0 m% ], F: J
  10.      lw->Open();
    1 d' `9 c; m5 R" T/ G% D2 }
  11.   components = rootcomponent->GetChildren();* O5 M$ R0 c; E$ {3 A
  12.       for (int i = 0 ; i <components.size();i++)
    4 o. R) a" Z+ r/ L* l% K2 z; {
  13.       {& k4 X  z) U% {& x
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    ( n" P; }; U1 ?9 E- c1 g5 G  o
  15.      
    9 L# E# j3 D0 P8 o8 b3 k4 q
  16.       if(childpart==NULL)
    5 ~$ X, y/ p3 n% p: d
  17.        {  A1 L+ _5 B' ]8 q1 `6 a
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");8 |% z. H9 U2 y! W3 p$ O
  19.         }
    # }! d$ b$ n! X- M# s" y
  20.        else
    ' a1 \9 }. L4 w5 {% i
  21.        {
    8 {$ P* c, B  E( h* D9 j. g( ]
  22.         if (childpart->IsFullyLoaded())
    # W* X# p0 s. L5 ?  F& ^
  23.          {
    1 ~7 Q1 y5 |+ g
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    " }  {% {& X) k  E/ V" v
  25.          }
    7 U* a3 q& p! y" V& n9 S! @
  26.         else  
    5 [) q4 m8 x9 b$ H+ W3 t1 y
  27.          {- S  ?9 U$ K+ [9 e) N2 H
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    6 G" v/ m/ ?1 W* W
  29.          }
    2 T1 ^) D2 g6 @# m4 D6 w
  30.         : U: }6 ?- z! J: j/ y3 j2 r
  31.       " \, L, ]2 {7 g" n
  32.         getchildren(components[i],indent+5);
    $ C( k; c! w) \
  33.       }. V0 |5 ^6 y# [/ a
  34.       }
    ! j: v# x( j1 L( I" R
  35. }</p><p>static void do_api()% l3 `/ w, O" J* z# }/ L
  36. {
    ( d. Y( F8 h$ p8 v4 L0 }( p
  37. //list the components% `/ N( E. `$ E" m+ _
  38.   Session *theSession = Session::GetSession();
    5 q3 H" }$ W' l
  39.   ListingWindow *lw = theSession->ListingWindow();
    7 X) {3 p. o! f* r
  40.   lw->Open();
    # R3 k) |( R& `: T' J8 r
  41.   Assemblies::Component * rootcomponent;
    1 i3 p  }9 }2 v: `. i( T
  42.   Part *workpart;) b, M3 O3 p$ {. k! L
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();# O( N. @8 |! h
  44. workpart = theSession->Parts()->Work();$ H  \* B: P/ ]2 n3 Q8 R9 G
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );; D7 @& x) D" `7 P
  46. if(rootcomponent==NULL)# l+ I5 T* U, p6 T" n
  47. {  9 M  [) k* C; e0 t( n" L+ o
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    0 d4 I- n9 z0 A- j5 I
  49. }9 |3 o2 ?; D6 a, T( N
  50. else
    2 L* Q. d& y2 o7 b) {, w
  51. {
    # [( T/ z! C6 Y" Z
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");3 u9 v4 Q8 w2 O2 p; J  u$ z. {
  53.   lw->WriteLine("The children components are : \n");) e" a- F2 t! C- ^4 m" `7 a
  54.      getchildren(rootcomponent,4);) X; y3 C3 U$ F! ^( R1 z
  55. }</p><p>}
    4 W* D9 d" `3 J" J8 t. K
  56. </p><p> </p>
复制代码
) |' L2 R+ |/ K' Y  a) k( p3 M
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了