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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

5 V1 o3 A1 h8 }1 m. a6 TNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
2 K& r' T2 V. E, e
% I3 e3 n7 |3 X9 L: u( v( J+ _

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
! k, N/ x( ^. o+ Q- ~( [' S+ X! c
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    3 r0 N( X( \$ k# ~; x
  2. {      
    ' S- c" S3 n' @  N
  3.   
    4 y, S( A$ X; S2 I; n* p0 I) K
  4.   unsigned int ii;
    + Q% h. R& ~0 _  l: p1 @/ x
  5.   char space[MAX_LINE_SIZE+1] = { " " };- [% F8 s0 u, L+ B5 {* _
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");4 ~- u/ m+ v8 U$ \  j
  7.   std::vector<Assemblies::Component *>components;
    9 Y& D5 }0 d- H
  8.   Session *theSession = Session::GetSession();
    9 F8 [* F* J; `' s# x
  9.   ListingWindow *lw = theSession->ListingWindow();: Z1 v' i3 R, J: |" a* h, D
  10.      lw->Open();
    ' Z) F* P0 ?1 w, F6 d
  11.   components = rootcomponent->GetChildren();
    5 S/ _' J8 o& x' f" \, B2 l
  12.       for (int i = 0 ; i <components.size();i++)8 {! a0 }2 K9 B$ d. S' Q) e
  13.       {5 h1 g4 J* c$ ~* m
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    0 ~1 }- }9 y1 o9 q( P
  15.      
    . K; G  I3 p* J' G+ d
  16.       if(childpart==NULL)
    % T1 @7 |) X% P7 d) g
  17.        {1 O* v; I4 x  F- f: G
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    / Y: [* K4 X& U% c) p* U; R
  19.         }
      c; V3 B' M& j& C; s( w( |
  20.        else # c1 b% c3 z, x8 Y& S. h
  21.        {  c7 S' b; B  \4 _% i2 S9 [( N
  22.         if (childpart->IsFullyLoaded()); w4 r5 n/ g1 c' B. H  L0 p
  23.          {
    7 s% a& s) u' U7 J8 [
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");  c4 x% A# t/ _
  25.          }
    " e, r- @, i, Q! z4 @$ |/ g/ [
  26.         else  4 [9 K2 _, B: n
  27.          {/ |' L8 X# w+ H. t1 I; x; Y
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");" e, l8 p6 D2 v1 t5 P: @
  29.          }0 f. x! T- i6 p+ y% }
  30.         
    2 ?( Z& a. v& m: \8 H* y
  31.       4 X# F2 K) s* R2 k* D
  32.         getchildren(components[i],indent+5);( H" N' }1 o* Q9 U  O
  33.       }
    * C/ A5 n0 O2 B8 [
  34.       }
    # }/ i* r9 e! [
  35. }</p><p>static void do_api()
    . v+ p( d3 H- {
  36. {
    . \7 d/ F& D4 w2 N
  37. //list the components
    " s6 M  @3 p- o: M
  38.   Session *theSession = Session::GetSession();
    ' [1 G$ e, h9 l: b
  39.   ListingWindow *lw = theSession->ListingWindow();4 {+ ~, c, J* \/ B+ J
  40.   lw->Open();
    % q: E6 L' a: u# W4 F/ U" @
  41.   Assemblies::Component * rootcomponent;& B# L1 K- a* p+ y# [4 {. y) z) {* [
  42.   Part *workpart;
      h( h% ^) h, n* C% K5 s# I
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();+ K) v0 s" G% @1 ~& c
  44. workpart = theSession->Parts()->Work();+ v8 T$ H" p# {; k
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );) u$ R; J' X; U( R% ~6 Q
  46. if(rootcomponent==NULL)
    5 `* L# V$ x9 a" X- Y6 [
  47. {  
    : x. }5 ]6 G+ n4 B! k9 E
  48.     lw->WriteLine("The part is not an assembly ! \n " );5 p" t; F6 C7 T( M0 o- S6 ~2 L
  49. }% h; z. S& |0 L! Q8 j  F
  50. else, \4 Y- m  P4 [/ e, N: j( l
  51. {
    + v( q% U# D- t( Z: l
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");# q, F- g5 ^0 b6 p- z3 X# P9 R" U3 I
  53.   lw->WriteLine("The children components are : \n");4 p8 }7 [. Z, W( v, ]$ R) }3 d
  54.      getchildren(rootcomponent,4);2 Y0 o2 o8 h& i5 T% D! J2 l$ d+ n& {
  55. }</p><p>}% h1 ?2 L2 k. D
  56. </p><p> </p>
复制代码
/ e# V# _" Y3 e3 r1 P3 Y# A
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了