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

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

[复制链接]

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

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

积分
9784
发表于 2013-12-4 16:36:55 | 显示全部楼层 |阅读模式

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

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

x
4 k4 j! b' u! _7 T3 X9 G
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态, G' m8 d5 a7 \1 K3 |
' [; a5 p9 X7 w, x' a/ c7 z, E& T

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

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

% n9 P& ~& b, y( B
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    0 Y% W  V- j9 h/ z; S. u$ T
  2. {      
    " |7 R1 V9 P$ x0 ^2 [
  3.   
    + l. ^' D; S. O! s3 r7 ]. n
  4.   unsigned int ii;6 z3 K+ N0 X! Q5 G8 ~! ^' w! J# U
  5.   char space[MAX_LINE_SIZE+1] = { " " };" _$ E/ r: v  Z! h2 k7 x1 [% n  u
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");' d7 m$ i! m* h  |$ g' Q0 B
  7.   std::vector<Assemblies::Component *>components;
    ( o  m& |, ^+ P& g% P
  8.   Session *theSession = Session::GetSession();
    # s/ [) u3 [7 q7 c; _
  9.   ListingWindow *lw = theSession->ListingWindow();$ R+ P$ G9 Y9 W- Y7 n
  10.      lw->Open();+ K7 |' T9 f+ G0 ?' J
  11.   components = rootcomponent->GetChildren();
    + p/ k+ m5 r) y& N! }4 t
  12.       for (int i = 0 ; i <components.size();i++)
    * ?8 H0 d0 E& B1 m; V. N0 ]2 N
  13.       {
    - f% a4 D0 s) W' y
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    3 j. S0 ^) U. ?0 |  [
  15.      
    - R! L; X% X  x
  16.       if(childpart==NULL)
    2 w! v4 g, d; E7 ^" `0 r0 V
  17.        {1 F- y' U" W9 |' N- L4 S
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    / a7 \- ^+ Z9 F9 v: p3 n; c  n
  19.         }' A0 Q8 \9 z# F2 |( h# n8 O  T( @7 {
  20.        else
    & ]. j2 d/ Y( o. p' W$ W
  21.        {
    ' [) |" z4 G" k
  22.         if (childpart->IsFullyLoaded())
    / X: s' r* E* v
  23.          {
    8 \" G+ j1 W5 |" \  I
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");: m$ P0 `( s% w1 G
  25.          }5 r' C* Y4 d8 I/ d+ x
  26.         else  
    / [4 ]7 R) Q$ t: X
  27.          {; \8 Y' n# P) F9 B$ h6 Q
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");. x3 ^6 v, v7 C; f! I
  29.          }- H& ^- f5 p# d7 z$ W' g4 I$ f
  30.         1 ]$ j1 p0 |6 X9 ?8 _% _
  31.       
    4 D( R9 |9 f, M6 `8 x; U8 \: z
  32.         getchildren(components[i],indent+5);/ J; d* C+ @5 V- X& l- u
  33.       }8 j4 S. L0 R# v* T% `" F
  34.       }
    ; [% c# X- K# l( B- _
  35. }</p><p>static void do_api()
    * o' s9 A7 M( p4 y4 N. L
  36. {
    9 ]. O$ g- q: P
  37. //list the components
    ' C. d9 _' ^6 @7 o" N: Y$ I* L
  38.   Session *theSession = Session::GetSession();
    ! M8 {/ q. i% S* I! x/ Y
  39.   ListingWindow *lw = theSession->ListingWindow();
    4 ~3 e3 i6 S: |# _( U
  40.   lw->Open();
    & z: u# r- a1 b% J7 y1 `
  41.   Assemblies::Component * rootcomponent;/ k8 {+ |( z' @: N
  42.   Part *workpart;
    8 f% B2 Z0 W! W0 Q; T, v+ q
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    8 w. Z2 N* I* O0 R( Q4 L
  44. workpart = theSession->Parts()->Work();4 v; \/ D) N3 `- G
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    , E$ \4 R# r% ~3 ?0 B
  46. if(rootcomponent==NULL)
    ( i$ O3 w' }( ^8 V; z1 N" _$ h
  47. {  * @8 m% s' ?# m* |# {' }- H; ^
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    1 `* y0 v2 P! o: |9 S. o' k$ O
  49. }3 s* W/ [' H' h1 q/ T2 M/ m! I
  50. else% W, B; g" H7 s: Y7 c
  51. {
    1 s! k5 |3 W$ [1 T
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");' K6 Y- }' H1 r  j4 j/ z# w+ `
  53.   lw->WriteLine("The children components are : \n");
    # b/ Y* P6 E4 v% F* ~2 Y
  54.      getchildren(rootcomponent,4);
    0 i7 O5 r6 r, l' V* ^0 r; V$ `
  55. }</p><p>}
    ! D" R# L2 s3 x/ o
  56. </p><p> </p>
复制代码
- [( j0 D1 S/ w8 d% W# y4 L1 t
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复1

7

主题

31

回帖

170

积分

注册会员

积分
170
发表于 2013-12-8 00:59:17 | 显示全部楼层
嗯,这个不错
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了