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

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

[复制链接]

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

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

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

x

6 a# {3 P. Q: b3 _NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态! x$ ?* [5 ?6 a6 t4 b$ s; r9 B6 N
, E2 Z, F' t( T* ?) n

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

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

2 W+ y1 E4 [2 [8 b6 t
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    1 v9 N2 V, ^, A$ l
  2. {      
    # k8 z0 a4 D" X$ G0 J% v: e
  3.   ; {3 Y9 m3 x* k7 @* ?
  4.   unsigned int ii;
    ) z9 r, B/ j: E
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    . I8 w& ]8 Q1 p) ~6 t
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");5 A5 V! o+ n4 B, P/ w
  7.   std::vector<Assemblies::Component *>components;
    6 F( {/ [) ~& D& [
  8.   Session *theSession = Session::GetSession();
    ' V3 @% F9 P! k# x2 |
  9.   ListingWindow *lw = theSession->ListingWindow();# A2 H5 z% R1 @' z
  10.      lw->Open();0 I8 |- P3 ~7 [) K( P+ p, ~4 N
  11.   components = rootcomponent->GetChildren();
    ; k- ?9 y- b2 c  F* {
  12.       for (int i = 0 ; i <components.size();i++)
    ( M0 K& P2 R( F9 k
  13.       {( `* x% r% Z+ }$ X5 a
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());8 ?: u' I% Q/ X. ^0 V. W
  15.      
    1 k( O$ \' s! W1 b% ]1 a- d! b" T: V
  16.       if(childpart==NULL)2 k2 s: w& t+ k  F! b
  17.        {8 [% |- z' `  b) q( v/ C- F( d2 E
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");8 P& w& u; f* e2 G8 h' D# {
  19.         }
    3 l& I$ K- G2 r# S
  20.        else 1 X. y( F" M6 M/ Y! M
  21.        {7 X" ?* Y* _& u# E- c
  22.         if (childpart->IsFullyLoaded())
    & d; ~) p' }; i. ?# w9 Z1 E2 S% T" ?/ |
  23.          {
    ' e) j: u6 p: u; J' R1 n$ A
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");% O: v8 O% {7 F6 F) X* X7 q. g
  25.          }! F# K% E- ~" }% E# X2 L! ~* t/ A: E, j
  26.         else  
    ; x8 @& @) g  M3 J
  27.          {4 G0 G7 h/ G9 Y# Q: A+ [! ~
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");' Y6 x* p3 d+ H& j' Z* C+ A: W
  29.          }5 l+ }2 b9 ~+ X" L1 U; [
  30.         
    3 }1 t* c  T1 e; Q  v
  31.       ( v2 L; w: R. w5 Z. v: x& d
  32.         getchildren(components[i],indent+5);0 Y5 }' y; D) H+ d  a4 L# E5 A
  33.       }
    ; K* S! U  G; A. Y7 N
  34.       }/ F, F/ e* c6 `5 f% t
  35. }</p><p>static void do_api()
    4 V, |. u( E  `
  36. {% }  ^: [# q9 u" \6 e; K- ^  @2 m
  37. //list the components
    + Z( F  z- u! {. [) G/ C% Q
  38.   Session *theSession = Session::GetSession();
    2 r# I- @- l+ F- q% N
  39.   ListingWindow *lw = theSession->ListingWindow();
    ( m1 T4 }6 K4 D5 j1 j2 a; E" x+ n
  40.   lw->Open();; \: w" L: u& B  L; A% u* x
  41.   Assemblies::Component * rootcomponent;# ~8 N, Y: w5 L9 p
  42.   Part *workpart;7 i8 L' [( e* U% C' s# D
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();: X, ?8 u5 _0 k& z6 D4 }& A- t
  44. workpart = theSession->Parts()->Work();
    , @( n) [; X1 u: ^
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    " _; ]" B% t1 D4 a( Q6 y& z
  46. if(rootcomponent==NULL)8 I, f0 P) |$ W0 M) @
  47. {  
    . H3 y0 o0 S* N  L" K
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    5 H( ]2 Q2 T5 g$ r  o
  49. }
    1 ~3 w% Y* M* y6 G0 L
  50. else. Z& M5 E$ M" U# W, @
  51. {5 Y1 j$ G$ L( V# w6 D* P
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");& }9 g0 y) C  L
  53.   lw->WriteLine("The children components are : \n");
    , W& B1 g! d/ Q
  54.      getchildren(rootcomponent,4);
    3 C% w' M" D4 g" o- P
  55. }</p><p>}
    1 P0 h  {8 j4 q. E5 s9 @! X
  56. </p><p> </p>
复制代码
9 ~) _! \) S) b& X, b# [+ R# [
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了