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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
- K# s" w' p( C0 `1 H& j" m
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
% P* c7 X2 N+ F# h" e2 F! g( q0 I9 t: r. K: ]

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

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

! e& X2 D' Q, w
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)3 [! f6 Q/ |: @, l0 {
  2. {      
    & |) G4 W& q: H. B
  3.   . {  A( c+ o5 q* V
  4.   unsigned int ii;
    # v5 X( ~, }; x9 i) u! i' Z1 E, Q
  5.   char space[MAX_LINE_SIZE+1] = { " " };( ^3 S( b6 ^& |( d& D! L, ~
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");7 ^* f  ]9 x- U9 q$ G# m: z1 ]
  7.   std::vector<Assemblies::Component *>components;* V5 W9 c( a* }, c, z( e/ }
  8.   Session *theSession = Session::GetSession();
    # F. `" y3 y7 z5 ?) b% ?
  9.   ListingWindow *lw = theSession->ListingWindow();
    2 G+ L3 p' N8 h+ t! O# s' ~1 r& z9 ~* G
  10.      lw->Open();  v7 V+ `' l' g6 T% O* ]( I
  11.   components = rootcomponent->GetChildren();5 c% H# V2 L5 R
  12.       for (int i = 0 ; i <components.size();i++)
    . T! _- p" Q1 [, A! g
  13.       {# \) k8 a2 G! A
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());; G' d9 K9 N) _; j
  15.        ^/ r1 W# Z6 G( Q* E
  16.       if(childpart==NULL)
    # q2 f3 ^' w& ~7 o& _, s, A
  17.        {
    8 j  _) P4 |& Y/ b/ ]/ _$ `) a
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");* D& s5 _, g- `, u$ S9 r7 O
  19.         }2 b& k/ b9 ]  e, X
  20.        else 0 c+ o: O" ]- ?4 |8 \1 x- v
  21.        {
    6 I8 p. s& }2 i7 A; o- \/ H1 t
  22.         if (childpart->IsFullyLoaded())
    # i$ o+ H6 D* |$ ?, U8 ^
  23.          {
    * q5 M' S9 n3 j) K: U# Z2 j
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    , I7 X; g) e: H$ y% j7 Z$ ~
  25.          }
      w4 c  C$ e3 h
  26.         else  
    % T6 V% n# f1 k  y/ }- ~
  27.          {
    2 L- J+ m6 x( x' A
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    ; k3 W2 A2 Y" f+ z4 v) r& n0 p
  29.          }+ v3 d' H2 E" @6 [. Y" N
  30.         % N* Q  M' S, D! Q
  31.       
    * `2 e8 _% L1 o# \  s+ R0 W
  32.         getchildren(components[i],indent+5);9 Q) Z1 [7 V! c' _6 U1 R
  33.       }$ v, f- J6 r  d+ s; _6 I
  34.       }
    8 _6 u. K7 O. V  q, z
  35. }</p><p>static void do_api()
    ) C4 q! ?7 c" b+ A1 O7 l6 }3 {: h
  36. {
    1 z( D9 L5 C& Z1 K
  37. //list the components
    ' L, k. w8 e, X% W6 b8 P
  38.   Session *theSession = Session::GetSession();
    - a  [+ o# o# R0 o! b
  39.   ListingWindow *lw = theSession->ListingWindow();8 o8 |- ]4 L  j8 f+ _+ b
  40.   lw->Open();( m, E4 g" w9 M* i0 t& X
  41.   Assemblies::Component * rootcomponent;- l# q5 {! w- l3 U
  42.   Part *workpart;) g# n- A- N% f0 Z, [: u; C
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    , d/ S3 A" B. C
  44. workpart = theSession->Parts()->Work();
    0 P- A2 z) \2 Q6 m  ?. \7 g, N3 W
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    . a2 e# l3 [  U8 \  F) u$ Q
  46. if(rootcomponent==NULL)) M. p4 [7 a5 n  ~0 n5 |6 I
  47. {  5 ?; H& {# @* P
  48.     lw->WriteLine("The part is not an assembly ! \n " );% N" {" j2 K3 }) V: X$ O
  49. }
    4 E) F! C: [/ d# I# ]
  50. else! @4 k/ @9 I  A* B8 h
  51. {- T5 r! [7 g* g  j1 F4 c
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");9 I6 E; r6 X; r5 g+ r
  53.   lw->WriteLine("The children components are : \n");
    ' [9 Y5 _1 \5 o9 G$ o' {1 v0 h
  54.      getchildren(rootcomponent,4);
    ' s" D3 [% x* ~1 d1 W/ f. z
  55. }</p><p>}  t6 B6 L0 P2 U- i
  56. </p><p> </p>
复制代码

( {+ l/ J) r1 w& j: Y% 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二次开发专题模块培训报名开始啦

    我知道了