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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
$ ?7 w$ w" X+ ^# Q
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
0 k4 m" D7 @- G  {! I
3 a1 q- }) k1 d: ^% i. A! s

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
. f& a6 O3 @; N& s! M! C) e: m
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)9 Q0 W* Q% y' G* O6 V: Z
  2. {      
    3 w' h8 n/ _- c5 U
  3.   
    8 Q( e; z/ f- f( i8 E
  4.   unsigned int ii;
    ! ?; T; }! e4 K6 S- X/ }
  5.   char space[MAX_LINE_SIZE+1] = { " " };' h- a) e/ G! @7 s% t$ ~1 L& q
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");7 f. U# o$ h9 k* d9 ^6 Q% b, {
  7.   std::vector<Assemblies::Component *>components;, a$ i" W2 ?6 S, k7 x1 y
  8.   Session *theSession = Session::GetSession();# x7 K2 t9 P! @( N# f7 T0 |. I
  9.   ListingWindow *lw = theSession->ListingWindow();; D9 d; p& D$ P$ n1 T# Q3 J
  10.      lw->Open();
    ' v. l) H, W, K* h2 i5 C; e
  11.   components = rootcomponent->GetChildren();! k6 U* N1 H6 V( u% ^% O; j, r! c5 Z
  12.       for (int i = 0 ; i <components.size();i++)" T! N" f! r  m: ]2 R' T; L
  13.       {4 v- p7 z& c. p8 X
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    / G  p# s+ h" t" e
  15.      
    0 ]0 t/ l9 @1 E5 A- e# m6 f5 ]* k) V
  16.       if(childpart==NULL)
    : a% R1 Y1 R+ J  @. T0 {
  17.        {
    ) @& P% ?9 W% g' X$ l
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    # M3 O- P) n" p: K  C
  19.         }
    ' g3 l6 W2 E! |9 u# k/ F. L
  20.        else
    . v- `2 t; X! u9 y' k4 T: u) }
  21.        {# F5 R: X! p: @: Q  I
  22.         if (childpart->IsFullyLoaded())
    5 E7 d/ {2 j8 z3 T" J1 l+ w9 ?% C
  23.          {, Z5 t* d% |7 y) `: L6 _
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    4 m3 v, M0 Y$ h& D4 J$ W
  25.          }
    1 k6 }+ J; K; |' x& C8 _
  26.         else  7 K2 x: P) [3 F6 g2 y
  27.          {; A6 C8 o! `6 ^* S* o" h) @6 r6 L+ o
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    , u. v  j% i3 L, j
  29.          }
    $ W/ c8 m+ v  e" Z5 E
  30.         
    7 X* b$ A8 d& s
  31.       6 R( u; i  `$ Y, d2 Z- }. M" Y  l
  32.         getchildren(components[i],indent+5);% S" z  ]. y) j+ O+ C& M
  33.       }- S; Y* ^- e$ n' @
  34.       }
    : [' v/ a0 E' T4 {
  35. }</p><p>static void do_api()4 C. {# |1 I8 m% Y2 G* S% d: J# N
  36. {
    ; c7 L* f8 W# \1 i# {
  37. //list the components5 c! a5 k, e  L
  38.   Session *theSession = Session::GetSession();* Y& n& H3 N8 D( R
  39.   ListingWindow *lw = theSession->ListingWindow();
    0 j* y! Y- S. z9 c9 t. ?5 W3 z
  40.   lw->Open();
    & x' ?6 F) R" }8 P8 L+ V
  41.   Assemblies::Component * rootcomponent;
    6 ^; k* ?, q( w; w7 g' R) Z
  42.   Part *workpart;; ?# W; e" |! ^6 S7 D/ C
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();" p/ p( Z' T2 o4 D% I3 p! ^' l7 F
  44. workpart = theSession->Parts()->Work();
    1 r% J- F- R( x' L
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );# u+ l* v# L3 y9 s5 n- q
  46. if(rootcomponent==NULL)
      X; r7 e5 L6 w+ k# D- H
  47. {  
    $ K# L: L4 S6 J0 b8 E
  48.     lw->WriteLine("The part is not an assembly ! \n " );$ v- r. b& ~$ q, I" p& ~* E- R
  49. }/ j/ ?  ?, q! v& k% {" U. H
  50. else
    ( n3 }3 B( m% R2 E) ?9 O6 _
  51. {6 S: k* |: b0 T
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");& @1 O3 h1 ]' a, e5 W- p
  53.   lw->WriteLine("The children components are : \n");
    $ ]6 v) m- z: Y( f& e
  54.      getchildren(rootcomponent,4);& p) D8 _4 {2 G( \7 y
  55. }</p><p>}
    * t& a6 E" O/ n7 Z  m: w: s  q
  56. </p><p> </p>
复制代码
- j5 v: i" F' h- N: C9 {  _
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了