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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

; Q0 Q1 n# b+ R& R6 c( ANX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
! X* B$ s! _9 L1 r& d4 F5 ?. l* |! x- K! u7 \

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

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

  a0 }6 E/ l) b0 L6 H
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)0 d, t3 o  }; G  z
  2. {      
    . c; E0 Q: D  }7 E: r, |
  3.   * P2 l1 r! ?! C* S7 b4 i0 v
  4.   unsigned int ii;8 X7 W9 o2 Q& C% E  i
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    3 p# {1 V' V2 _' s$ q8 M
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    : W4 c) C# S  u# O! L
  7.   std::vector<Assemblies::Component *>components;& W  P6 Z) }+ l9 Q+ N  k
  8.   Session *theSession = Session::GetSession();# q$ y  i3 O: F
  9.   ListingWindow *lw = theSession->ListingWindow();
    9 t& S$ v3 w' H1 m1 t6 u) F
  10.      lw->Open();% U5 F* c- x7 \+ Q) {* j) B
  11.   components = rootcomponent->GetChildren();
    ( t  q1 D$ f6 Y2 K
  12.       for (int i = 0 ; i <components.size();i++)
    5 A0 }/ W0 a$ @9 l  S
  13.       {
    , u, S. K: Q9 V
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());& A! \" N; b& X2 y
  15.      
    " k6 y" o2 g6 {+ n- q
  16.       if(childpart==NULL)0 x7 O0 n6 ^2 @+ \- \
  17.        {+ F6 e: N0 y% g( g4 O4 N
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");0 {% H8 V( Z4 S' i6 I. e$ h' G! L
  19.         }6 b5 e7 n; q4 o+ v2 ~# S5 }0 x
  20.        else
    / c/ R$ F* H& v6 k6 `( Y4 X1 U! e; c
  21.        {9 W. U, T8 j6 I9 k! b
  22.         if (childpart->IsFullyLoaded()): I1 L: l3 n) R# F( w
  23.          {7 W2 e+ y, A+ L$ V+ W% m( f
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    % \$ U+ z+ |2 l  B
  25.          }
    6 \% r3 E! @: L7 W2 P( O# v4 Y
  26.         else  
    / m! N9 X9 e+ a/ k  p
  27.          {
    - v* Z; l) \' G  ^. Z! s: z' g
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    4 a2 n9 `2 T6 M# x8 w) i$ B% R
  29.          }& @, f: U% B* M- C9 I& v
  30.         2 V9 {! y% s8 E/ F6 V% y" F
  31.       
    2 G7 h7 M: ^0 A' Z) @
  32.         getchildren(components[i],indent+5);' S8 s9 l" }" C, k# G2 `
  33.       }& R/ s6 p$ x' V" G/ i  W! _
  34.       }
    * \# ~2 T; l# u; ]7 {4 \* v
  35. }</p><p>static void do_api(): A, S8 L' D! b, \/ T5 o
  36. {
    % _) E- M- c  G, l" y) u
  37. //list the components
    " U, w. E# B' i
  38.   Session *theSession = Session::GetSession();" ?+ l, ^  V) S. t4 C& }. Z
  39.   ListingWindow *lw = theSession->ListingWindow();/ T- p1 [; j* K3 N
  40.   lw->Open();
    7 V3 u6 a1 Z/ E1 Y
  41.   Assemblies::Component * rootcomponent;
    7 C( r6 s( y6 C1 W9 X' b  w; S
  42.   Part *workpart;4 ^# P7 m  G& Y' w3 V9 T7 x: G0 m
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    . Q* M, n, d0 G. J$ g/ s
  44. workpart = theSession->Parts()->Work();
    0 p' \3 f- M# x( x/ ?
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );7 _: F8 o. z4 b, }+ ^* a
  46. if(rootcomponent==NULL), R9 y1 f, W" m+ F
  47. {  
    : J) o* {+ m% v% D* l5 _/ r
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    2 {5 n3 V- W7 P" {4 T# P* ]
  49. }3 e6 K2 x7 u" y6 T: O9 b
  50. else
    , S: w- \# j, n8 d1 b. S; w2 p/ n
  51. {2 w! n* U# X; k1 y  m1 i
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    7 D$ D# L7 S( t- l; m) X
  53.   lw->WriteLine("The children components are : \n");# c" ]* T( y$ J+ |/ k( s& e; }9 i4 p
  54.      getchildren(rootcomponent,4);
    0 V) h7 C% y0 d
  55. }</p><p>}: N, `5 k3 H) c) w# \
  56. </p><p> </p>
复制代码

+ s) V: {2 S0 N) G/ ~4 x# r2 G
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了