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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

$ m/ Q: o# ^* P4 z8 d; L* w8 LNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态1 T- e6 Y8 f! k+ a

% _. n; a2 M6 q7 O# e8 v

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

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

8 b: ^3 ]0 L- e; B: M7 y- W( d
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
      B3 [* A7 U- ^8 [) w
  2. {       - U0 _6 q2 u6 ^/ j  t! D( Y
  3.   
    7 u  I- V4 h0 S9 ?( D& c* ]
  4.   unsigned int ii;
    / i8 f% M+ s3 b& j: g( u+ P
  5.   char space[MAX_LINE_SIZE+1] = { " " };+ Q. v+ C5 h% o$ |4 s' }4 J& q
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");% r2 e1 C8 z8 J( |" h. W2 _+ H$ C
  7.   std::vector<Assemblies::Component *>components;
    % }! [/ V9 G4 c/ q
  8.   Session *theSession = Session::GetSession();
      f3 Y) W& E- Y
  9.   ListingWindow *lw = theSession->ListingWindow();
    7 z" S0 Z7 b2 Z- e8 ^; v
  10.      lw->Open();8 L, k- N8 s) x5 }
  11.   components = rootcomponent->GetChildren();
    " U, ^9 P1 ~- z3 V: G( |- o) X1 d
  12.       for (int i = 0 ; i <components.size();i++)
    $ [  `& r8 J/ u: e5 U" U  i' i
  13.       {1 r6 u7 n1 I: T8 i* K" Y
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());1 d3 O, F* Z0 o
  15.      2 o0 S/ p4 l5 I/ x& _
  16.       if(childpart==NULL)4 v5 `' O" {4 s/ a+ }/ d4 E: x
  17.        {; S, W  j6 `  W" H* v% I  q
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    5 E. i8 M! l2 Z' v, y$ R
  19.         }5 R+ q4 s- c8 _& L# Q
  20.        else
    & ^4 L$ K0 d9 b. A8 {  N
  21.        {
    & o( j: n# X( N4 I  P$ S* w
  22.         if (childpart->IsFullyLoaded())
    ! I9 _5 N6 j* P/ K2 Y
  23.          {) C, t: e% O3 k* w  C' b$ L! V2 u- t
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");, y% T# J9 i* B, l5 P& B
  25.          }
    / q* U0 }) G0 _# T
  26.         else  0 ^& u0 p, P; M3 f; o$ X
  27.          {! {) x9 u0 k5 N4 H4 v( _( @: m# r6 ~
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    6 K+ ?! \) p# U8 K4 i2 L; a
  29.          }( `1 U3 Z8 g5 P9 ^* E
  30.         
    $ d4 z1 X- z. h5 ^. d" ]/ l4 |
  31.       
    1 U% W" h  u  a' l3 s
  32.         getchildren(components[i],indent+5);  z+ H9 b5 s, ]! P3 g- q0 }) Y4 h4 ]
  33.       }$ H8 X* A$ X2 ~! b
  34.       }. c: y6 l; Y) t( |# d
  35. }</p><p>static void do_api()
    & ~- B6 O4 o$ T9 E
  36. {
    5 M9 X$ A9 n9 r
  37. //list the components
    . U; E% N5 E2 h
  38.   Session *theSession = Session::GetSession();
    # g/ c3 d* T" |" c4 W5 r
  39.   ListingWindow *lw = theSession->ListingWindow();* W5 `# M4 ]  h. C* ?
  40.   lw->Open();9 E0 U8 s) T; y* R0 [# ]4 J
  41.   Assemblies::Component * rootcomponent;
    ( o( Z, {4 o: M" T
  42.   Part *workpart;# Q$ j5 s: b7 X" E4 j
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();2 L8 v. W6 ]# M4 L# A: H
  44. workpart = theSession->Parts()->Work();
    * ^; W3 b3 G# w- y6 a) F
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    4 i' ]0 v- D) `: G0 s7 U
  46. if(rootcomponent==NULL)7 H, u& l' i4 M) q8 l8 O: o
  47. {  
    . t3 v) K, Q& o# ?4 v' S
  48.     lw->WriteLine("The part is not an assembly ! \n " );1 E3 k5 C( s9 v: }# }3 L% a7 u; {
  49. }; h6 h# I* e' R, l) [% u% f
  50. else' \; m; V. [8 Y# z7 w' `
  51. {
    % M/ J8 a1 f! ~+ I7 Q
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");2 l" E2 E# Q/ T1 h  o# b' l! `
  53.   lw->WriteLine("The children components are : \n");0 j( Q* z# p; e: j$ b" ~
  54.      getchildren(rootcomponent,4);
    + h* X. b& k. f( W5 l* l8 v
  55. }</p><p>}1 B$ k. t+ Z5 P: u7 u- E( P# ^
  56. </p><p> </p>
复制代码

& M' c  W' @: `+ L
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了