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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
% P& s! h* _6 P  m
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态1 P1 w0 j( N% h. i
0 A/ p6 U+ }8 k+ a4 j) X+ A

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
4 N/ q7 F: M7 u* ^
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)# E& R( H. Y7 f* x
  2. {       $ w3 p0 F9 `' t: w* r
  3.   
    " ?" m+ R) G6 s& J* B, x
  4.   unsigned int ii;
    , H3 q) a6 P0 Q$ H! W4 h
  5.   char space[MAX_LINE_SIZE+1] = { " " };, P1 A( F' c: n4 h
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    ; @4 M, H* k) x' F5 J
  7.   std::vector<Assemblies::Component *>components;
    9 C. _! j( @9 n
  8.   Session *theSession = Session::GetSession();( M  T$ [7 m4 l. d- ^$ h
  9.   ListingWindow *lw = theSession->ListingWindow();
    3 c! f$ \4 r- ~3 ?$ t
  10.      lw->Open();
    : ?8 R$ Y  n4 J6 F+ t9 s9 ~
  11.   components = rootcomponent->GetChildren();, G; r5 W: m3 S0 ?! l+ \
  12.       for (int i = 0 ; i <components.size();i++)
    - R2 f4 R" \! Z1 X$ y
  13.       {  ~/ @8 R% d0 G
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    / @9 o7 I% o5 x
  15.      
    7 s3 F2 F7 j" H7 J
  16.       if(childpart==NULL)# r  W2 _" j7 k* u/ d0 A
  17.        {3 G( \/ |( |7 k& e
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    7 M9 k  E0 M# L) m
  19.         }
    8 w2 a6 C* |; b; ]0 \
  20.        else ' ^' V" Q7 c, X9 i/ o% C1 D
  21.        {
    , B% M7 U  i" k4 K( V2 f
  22.         if (childpart->IsFullyLoaded())
    9 h  @& a8 X3 E7 W  ~2 X& _+ N
  23.          {' ]  e* L1 z9 _2 C
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");) ~9 j, U* K0 y0 j4 y
  25.          }
    3 z; d; M  Z& K$ T+ p# r( F
  26.         else  : s* u5 B# c' d( X7 s3 ]
  27.          {$ j$ G+ B7 H" e
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
      S! w, w4 V, Y0 V4 z4 U& X
  29.          }4 i7 {) a# n+ m  Z1 K
  30.         ' L, ^( `, h2 O, p
  31.       : v5 L: S) J2 ?# u7 m# c) x  Z
  32.         getchildren(components[i],indent+5);
    ! @" c: v. K3 Z9 m1 t" F
  33.       }
    8 D& l) ~  g) Q2 C
  34.       }1 b0 V( H9 \3 S9 l, p$ U$ p
  35. }</p><p>static void do_api()& `8 {6 Y% Q3 p! |# N8 P1 C
  36. {
    ( Q  M2 s8 K0 c. s. E
  37. //list the components
    & i( J& N& H+ I' t/ e$ W* p0 M
  38.   Session *theSession = Session::GetSession();2 I. K4 U/ A9 \5 n+ E2 _
  39.   ListingWindow *lw = theSession->ListingWindow();
    . z! x! {! z3 ?3 ?
  40.   lw->Open();
    & K3 J9 P/ g7 o8 m
  41.   Assemblies::Component * rootcomponent;# p$ Z3 e6 K7 c8 b4 \$ J) P1 m9 g) ^
  42.   Part *workpart;
    0 b' h4 g! Q' S' l
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    - p/ v3 L, T8 n; H' P* C
  44. workpart = theSession->Parts()->Work();
    ; m4 s5 t. A5 q8 g+ S7 o
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );( q* C/ k0 _$ T
  46. if(rootcomponent==NULL)
    2 Y# e8 Y( v0 c
  47. {  
    & w% P! Y$ `- D# K2 i  {) b/ e) o
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    * h7 }! d/ V* y# V6 ?5 P
  49. }; A  f: Q4 ]8 F( Y( V4 U6 c( H# B
  50. else
    - j# K$ N1 F7 d% a2 `
  51. {: C) U0 u! U, |9 t! d8 A
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");+ D) K: Q+ \8 S4 f# j8 `- s
  53.   lw->WriteLine("The children components are : \n");; N$ G: X7 Z& A3 t6 x
  54.      getchildren(rootcomponent,4);3 g5 h# C8 t! v! J9 i0 J- L
  55. }</p><p>}
    2 y2 Y: w- E6 ]4 S% |  Z
  56. </p><p> </p>
复制代码

' Y+ N8 t. k5 `* i9 r4 z
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了