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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

9 e/ f7 z  Q9 r( q" O7 P$ @NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
( E& k, e1 {1 r2 o) B5 H: O2 P& O+ g, N

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

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

; e0 S1 `- o8 i  {* q+ ~
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    / O8 q6 n' a8 c5 m! _$ b: {
  2. {      
    " I2 I& a2 J; D! D2 L0 u+ B
  3.   
    6 \; f2 d# A" z# ?. o5 H  C
  4.   unsigned int ii;4 V) `" ~( _' p' Y5 u) D5 S% \
  5.   char space[MAX_LINE_SIZE+1] = { " " };6 s2 M' t* |! e& h- G/ F
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    # ~8 R  A" u3 t
  7.   std::vector<Assemblies::Component *>components;
    . I+ Y' A( U0 `; i# ^7 f
  8.   Session *theSession = Session::GetSession();
    ' Y& Q; Y6 x2 s5 P3 D/ n! P1 K' |3 G5 z+ i
  9.   ListingWindow *lw = theSession->ListingWindow();
    9 F/ p; |, ^) }8 D( r! s+ c
  10.      lw->Open();
    7 O% k  z8 K+ E" G7 l" J7 X
  11.   components = rootcomponent->GetChildren();6 a3 J2 C5 S1 c0 |
  12.       for (int i = 0 ; i <components.size();i++)' y. u1 ~. f! }6 w1 y. @- H9 }
  13.       {3 h( m; \& V4 e6 N; g4 C0 k' m% M
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());  Z: t2 B8 k$ \9 p* q
  15.      ' e; e8 i) g0 l( T
  16.       if(childpart==NULL)
    4 V6 u, c( M9 k7 f' E6 t2 z
  17.        {
    " ~* c" U9 I. Y% Z( g- K
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    7 Q$ g/ s" }4 P: E6 h% G
  19.         }0 w  l% C1 ~  p8 c$ C
  20.        else ! i1 u( X- L6 r- ~8 h4 C% K
  21.        {$ B$ C$ A5 S# N0 L! C
  22.         if (childpart->IsFullyLoaded())
    ; x- ~/ U2 {* ?% `  |
  23.          {' L2 I. x' D8 `0 O7 a' p( Q! _
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");% I) |* p! l! |  R4 y/ ^5 ~7 ^. r
  25.          }
    , s0 ?& h, L9 M, V
  26.         else  8 I, x, M. K/ L  _/ L
  27.          {+ }* u9 [1 f, x) ^$ C& U
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");, |" q7 N8 f0 u( t, o
  29.          }
    : Y: v9 p' J* p2 u6 E) P$ k
  30.         
    ( r2 B' r0 Z$ Z2 E
  31.       $ g9 Q. U/ b3 ?6 p! D: C$ J6 _4 Z
  32.         getchildren(components[i],indent+5);
    0 [, i+ @( P6 D* Q  e
  33.       }
    $ J/ I" J# N- j0 |4 G' n! R8 N
  34.       }3 D% m( u  ~1 X! p/ l. d# W
  35. }</p><p>static void do_api()
    ! p" r# r; r' f( R/ ^
  36. {
    % m/ U" o6 r8 M; f* ?1 I( D
  37. //list the components
    6 k2 Y& [1 \$ h9 j7 I
  38.   Session *theSession = Session::GetSession();8 S$ r, b6 X- |/ n
  39.   ListingWindow *lw = theSession->ListingWindow();! V  E+ w5 [- f( ~" U1 I
  40.   lw->Open();9 m3 K8 `' \. Y% X  t/ \2 \* V
  41.   Assemblies::Component * rootcomponent;9 Q; O) d$ |5 i9 J* W5 s* U
  42.   Part *workpart;
    $ o* u0 s9 {% v* {5 ^1 _3 m5 {$ [8 a' v
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    8 F7 r6 s: g8 y5 E6 o( t) R& ^
  44. workpart = theSession->Parts()->Work();
    9 W0 i; q! o0 [. O5 j
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
      j" g, }/ u  k8 d6 ]
  46. if(rootcomponent==NULL)
    * I) o' I% O% |9 o2 M
  47. {  
    * I1 p9 z6 L8 H) `/ E
  48.     lw->WriteLine("The part is not an assembly ! \n " );: x$ m& K. o, E9 K
  49. }
    - s$ P7 B# S" H) u4 v. W- T
  50. else
    2 G4 t$ V/ C" X( V: X
  51. {- h" @; a8 M; I1 Y2 T
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");: P8 v6 u8 \3 p& K1 H: @1 v
  53.   lw->WriteLine("The children components are : \n");
    # o" K9 s" U6 Q; P
  54.      getchildren(rootcomponent,4);
    + c8 J% u/ Z' P( \6 i
  55. }</p><p>}
    ! Z( L& Z, @+ ~2 f
  56. </p><p> </p>
复制代码

, u- |1 J( H4 `# 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二次开发专题模块培训报名开始啦

    我知道了