PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

! ^; S1 \7 i6 D' |3 Z# `# y% [NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
3 k0 L# F! }$ t8 U' b% _* A. T
' ?1 h+ @# o, Z  B% @

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

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

3 @( h8 ?4 {$ L7 o/ ?$ W
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)+ A+ G) H4 T7 a* x5 q5 r4 t1 x
  2. {       % ~' }2 Z- \! Q
  3.   
    3 `3 [5 z2 G- |
  4.   unsigned int ii;% k3 l6 A4 n. @9 c) r9 L. S
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    4 T; L1 X4 Z2 ~+ W* o
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
      S8 B4 E( b5 ^" z' d
  7.   std::vector<Assemblies::Component *>components;. B% T# s* r$ r5 w
  8.   Session *theSession = Session::GetSession();
    3 E) g- o, n3 c7 G. P/ T
  9.   ListingWindow *lw = theSession->ListingWindow();% @* G0 I, U* U. ]
  10.      lw->Open();; ?5 F! i+ O& [: s
  11.   components = rootcomponent->GetChildren();/ U; y! X5 _# D- C( a" t
  12.       for (int i = 0 ; i <components.size();i++)/ B" I5 Q  y$ [# e$ c2 c+ ?
  13.       {2 ^" H7 U5 {) e! n1 h" @2 x
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());# C; z% b& Z7 X* t3 h$ K$ U
  15.      1 w8 g6 J! o  ^) i
  16.       if(childpart==NULL)
    7 B0 L/ I2 [! W4 T5 z
  17.        {
    4 R  u# ?4 c$ R+ T7 L9 A
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    7 N. q: c% k) Q$ G
  19.         }& d9 }( W; v! l" C5 @, _
  20.        else
    , b# X& A: t5 `0 L* ]
  21.        {8 C8 N: J; {+ C3 L3 Z0 Q) ]
  22.         if (childpart->IsFullyLoaded())( v/ [4 J" x0 L
  23.          {
    % [/ v3 J5 ?) _4 ^, Q( v
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    2 @6 h4 K5 W1 \1 e: m- J
  25.          }
    ( U3 c6 E& e) b( D" T8 i2 t" b
  26.         else  ( b# k( N5 o1 l4 w+ Z
  27.          {
    ; \* n. B/ f  G" r6 C- Z& @+ t2 g
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    0 q! J* r4 p8 }8 e1 N' {0 ~
  29.          }
    , G; ?2 P7 _: a. u) m- W
  30.         
    / `( c0 O' |( ^* C3 j0 N4 v
  31.       ( Q& z3 f1 Q+ E3 R9 @0 o
  32.         getchildren(components[i],indent+5);3 S- J( l- d+ R$ n' g
  33.       }
    . C" l" R) u! u& B9 q- S
  34.       }& Z3 ?9 k4 U4 b, T4 l
  35. }</p><p>static void do_api()0 e# b- D' Z9 C5 z- A  Y- l5 H
  36. {
    5 \  ^" c; U" X4 }( F+ u0 h( o
  37. //list the components3 b$ [4 {; P+ p% z
  38.   Session *theSession = Session::GetSession();
    " t. |! c. j/ u8 L  j
  39.   ListingWindow *lw = theSession->ListingWindow();
    / ^" K3 a4 U$ t" d) ~* R% _, ^* ]
  40.   lw->Open();- Z( i/ G, w  d0 G
  41.   Assemblies::Component * rootcomponent;/ r8 d. A# F$ H8 U1 P
  42.   Part *workpart;
    8 R6 b1 P+ x6 u+ F- b
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();& T" {9 a! C9 N8 F, T
  44. workpart = theSession->Parts()->Work();
    * b5 ^0 G( S4 x; A
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );1 t# O# `; P' b& P9 q8 i; A1 [# j
  46. if(rootcomponent==NULL)
    7 G/ r& e( i; y2 l  g2 E/ t8 e2 Z
  47. {  
    . P  S1 z: c% U3 k0 G! o
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    6 m3 P& z: o4 |* j8 O# K
  49. }- X/ e. c1 ]2 g  J- h5 j
  50. else2 K/ L. W$ j3 [0 ]$ |/ G
  51. {& R, |, {$ j7 _- v6 J
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    . q  ?5 Q7 P8 E
  53.   lw->WriteLine("The children components are : \n");
    9 z5 F7 D9 i: b: }5 u# J
  54.      getchildren(rootcomponent,4);& Y% f! G$ c. T4 [  \) @& Z* x
  55. }</p><p>}
    , }% X8 G6 Z1 W3 v
  56. </p><p> </p>
复制代码
; o$ [5 @% `/ ?# E- E
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了