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

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

[复制链接]

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

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

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

x

" G  ~8 }2 z; b6 oNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
* r, d3 v; T8 ~6 J" w, `. y1 B# n( f, R, T. y: [& C3 I7 t

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
% @2 x( e2 ]' p. a7 i! @& @
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)/ L- g5 m) ]0 d0 K+ c: f1 y( Q
  2. {      
    $ t8 \# R: @# ~; k5 B
  3.   2 E9 A  ^+ ^' @; u1 @. I
  4.   unsigned int ii;7 S- v) d/ r4 w% c$ V
  5.   char space[MAX_LINE_SIZE+1] = { " " };- c9 m1 R$ V: [& O
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    4 g$ E, t7 m7 ?+ ~
  7.   std::vector<Assemblies::Component *>components;
    ( h( k& _) Y3 ?3 o
  8.   Session *theSession = Session::GetSession();% U9 c) O& K' |% ^9 K( A- ]6 Y
  9.   ListingWindow *lw = theSession->ListingWindow();4 v& `/ {2 |7 }
  10.      lw->Open();
    7 r$ n3 o3 ]0 R; ?
  11.   components = rootcomponent->GetChildren();
    * D" E2 U2 s1 o6 E4 j. k
  12.       for (int i = 0 ; i <components.size();i++)
    5 o" F$ _, X9 m
  13.       {
    % N7 u* Y+ g* q$ @% R
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());$ ?# \0 f) Z6 F
  15.      
    ' P) [4 V0 `( p4 q) [2 P1 s
  16.       if(childpart==NULL)
    + [2 _! `, P1 Q4 L
  17.        {4 j7 p6 p3 V+ D1 t% N! J* K
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");( y3 u& L+ o8 r+ |3 v) C: s3 _& ~
  19.         }% X) D* q7 t& B  ]: r, ?
  20.        else + Q, N3 u3 X0 }% \: x+ e
  21.        {9 C/ Z4 |* \$ l0 I' s
  22.         if (childpart->IsFullyLoaded())" q! a0 T9 I% Y* @5 v
  23.          {! @0 E7 d* @" \5 ~" [& S  ~
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    ) [- l5 I( ]& p$ E+ Y1 v. `
  25.          }; f" z- ?% C) u& Y# X+ u
  26.         else  
    : z0 z3 ^1 ?9 U
  27.          {' \. C& G% O/ B2 [5 m
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    / `  ~, H- b) h5 S1 u
  29.          }
    & o4 O& q- j* r+ s+ R& e8 A( m
  30.         
    $ W1 e8 i* T; i6 V
  31.       5 z! c% ?7 p2 L" q
  32.         getchildren(components[i],indent+5);1 U2 v$ G& e6 D  y- l
  33.       }) H$ S2 ^4 d" D! u3 i0 g- x
  34.       }" U* U  e- p* a( V% {: l- z
  35. }</p><p>static void do_api()
    . n' O% |$ J4 Z8 w: |9 R; m
  36. {
    7 o/ y5 C  ?$ ~; ]. x) w$ [$ j/ W
  37. //list the components. R* Y1 Z! |6 ]; A* P
  38.   Session *theSession = Session::GetSession();
    $ W  u2 b  i/ _3 K. O% Z4 z5 c
  39.   ListingWindow *lw = theSession->ListingWindow();
    * G& n7 o6 n/ H* A1 y' f. F; G
  40.   lw->Open();
    ! f; U( Z* R5 B  s3 L" H8 S% t
  41.   Assemblies::Component * rootcomponent;9 \8 N3 Z2 D4 N( k# ^  m; L3 h
  42.   Part *workpart;+ j/ o5 e0 }& i
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();/ b8 J$ S5 B* G0 G3 W, O3 S* g
  44. workpart = theSession->Parts()->Work();$ z2 {; @+ T) B5 ^6 y; _
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    - B* J5 u  g/ X9 y* ?
  46. if(rootcomponent==NULL)1 G* R$ ^1 l2 L: \. ~; {
  47. {  
    ' N# f9 s: J# U+ g  P% o
  48.     lw->WriteLine("The part is not an assembly ! \n " );" B7 ]) Q6 b3 j: S( B$ M, |
  49. }
    : l9 c4 Y; N8 o2 x$ @" s# d$ C. E
  50. else( `* u& {9 s/ ?9 M/ z: l% M0 w
  51. {
    8 x, k& w3 d6 h
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");, ?. o! j0 \2 X1 d1 |# n
  53.   lw->WriteLine("The children components are : \n");+ u! X* S1 A, w' r( I
  54.      getchildren(rootcomponent,4);" _" H. @, a" ]
  55. }</p><p>}
    9 y5 M1 m9 K7 {' N
  56. </p><p> </p>
复制代码

8 L  J. M! i, o2 S' g; K
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了