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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

/ _0 K4 z* a- q  r, d8 i% r: l) wNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态1 M, J3 b; Z! b' Q# _
+ S* [# w5 ~  ?

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
8 x/ k% C6 Q" X$ |. ]
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)' L( l* y$ l+ B$ s. A5 H* F
  2. {      
    % p, g, V2 U' \5 r5 u+ g8 X2 O
  3.   8 ^( a- U  m# R$ x6 B0 I% \
  4.   unsigned int ii;- Q# q* E0 A; r& g0 y7 _* G. G
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    , T# l! [) R9 P  f3 y
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    ! r2 o: l! S0 q8 z5 I' b) l
  7.   std::vector<Assemblies::Component *>components;
    6 V3 c8 J4 o$ H
  8.   Session *theSession = Session::GetSession();- P, B2 a! r# r2 i- ]1 M
  9.   ListingWindow *lw = theSession->ListingWindow();
    3 G  j  D0 ~9 I* D* x7 l2 C: d; E7 C, }
  10.      lw->Open();. I* Q! ~& F& _7 O# [5 o* B# r
  11.   components = rootcomponent->GetChildren();
    ) c. {% A/ C; R8 c# u5 r) T: x
  12.       for (int i = 0 ; i <components.size();i++)
    3 h8 K) i0 d0 ^! t/ e
  13.       {, J; [& ]$ z" Q) M" P
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    9 {+ Z9 \2 O! V: t  ?2 O. p
  15.      
    ' t* g/ l( P4 k* T3 a" O3 W
  16.       if(childpart==NULL)
      N' e5 a1 b( d/ d$ D
  17.        {
    0 L6 M5 L- l/ k7 r: H9 R/ P' n$ i
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");0 H  t9 P% W( m/ ^, {
  19.         }0 Y( a7 @( U8 J
  20.        else
    9 i! P& x3 `! S) X0 y1 ^& U
  21.        {
    + A+ `' h4 ]# G) m
  22.         if (childpart->IsFullyLoaded())
    ' U/ ?! u' ?6 Q3 [) @  g2 `4 K
  23.          {' u0 D, y5 }& Q# H& p
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");5 \9 g" p/ W; D/ b8 o4 z: L: W
  25.          }
    " E% v: w/ `& a
  26.         else  - y! a. H8 J- ]# F9 [6 H
  27.          {
    & z5 ~9 |2 H# ]7 [: F8 ?  x
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    5 J) d" L- Z& ?( I" }9 k5 I
  29.          }
    , s/ W' x0 O) q3 |
  30.         
    * A8 c  ]2 |3 l
  31.       
    5 i- d2 K  x( k( R
  32.         getchildren(components[i],indent+5);
    * y8 f$ s0 L& T4 C4 W
  33.       }
    & u) S" x1 ^) N- R
  34.       }0 \! V+ e  E  x3 v
  35. }</p><p>static void do_api()& C$ f! w3 K. {# u
  36. {8 a6 o/ M2 t4 S% Y: r; J- x0 N" r  q
  37. //list the components0 b9 {& \  B' g& }% {% D5 O, I
  38.   Session *theSession = Session::GetSession();
    5 ]4 [/ S& p: f5 z( E: ~
  39.   ListingWindow *lw = theSession->ListingWindow();+ @! i0 O* u) R: I8 S
  40.   lw->Open();( O7 s; G9 X' t
  41.   Assemblies::Component * rootcomponent;
    4 P3 u8 `, m2 q/ d) H
  42.   Part *workpart;
    : f+ m# ~' C) [8 O: E  k
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    ) _$ Q; ?6 I% y  N. U
  44. workpart = theSession->Parts()->Work();2 C0 s, Z( D* c% T2 s
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );3 P7 Q0 o6 c8 O/ t! j6 a& @) }: V
  46. if(rootcomponent==NULL)5 ^: \8 x& s' @% d: o2 m
  47. {  
    ) x  }- U9 ~% H7 L& B/ i6 n% p* P
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    4 A2 M* j' U) L0 f
  49. }
    ' ^" w2 l2 |, V
  50. else: k* B; b  {/ g5 T8 |, ]5 U
  51. {
    3 O3 k  d0 h5 }
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    2 E8 I0 O0 }$ Q# y
  53.   lw->WriteLine("The children components are : \n");! I% Z' U& ~/ Z- @9 t" D& X# U# B3 H
  54.      getchildren(rootcomponent,4);
      _$ d, Z6 N2 D+ w* {+ e3 f
  55. }</p><p>}
    7 C2 P! U% }, c4 T5 C8 l7 p1 Z8 d! `
  56. </p><p> </p>
复制代码
) L  ~' D/ X9 a; s+ v/ P. 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二次开发专题模块培训报名开始啦

    我知道了