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 3397 1

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
: a5 b% ~0 k; L0 f) e
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
5 L& {* G+ g* m& }9 y, d% _. ]4 k% q+ F+ N; y# \) B

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
: @: w9 D1 F; x) ?/ Q. ~' C
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    + U: Q6 ~' |+ l6 w7 K: H3 Y
  2. {       3 f" I* S9 e* f
  3.   & [6 s1 w# }2 e; i
  4.   unsigned int ii;! O( T& H2 ~! }) G
  5.   char space[MAX_LINE_SIZE+1] = { " " };5 n1 E* H- K* P& X9 O, K' z
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");+ F8 ]( T+ ~9 |+ I: r
  7.   std::vector<Assemblies::Component *>components;! N' v  F; ^" ~+ N3 p* `; l
  8.   Session *theSession = Session::GetSession();% Y- w3 |9 j* u+ M1 F! q
  9.   ListingWindow *lw = theSession->ListingWindow();1 d1 {- @9 A+ l% R( ^8 v
  10.      lw->Open();
    & S% b# i3 `' b/ O5 R, A% F
  11.   components = rootcomponent->GetChildren();
    ) l1 s' T9 R+ _
  12.       for (int i = 0 ; i <components.size();i++)2 `, D# N9 y1 _6 c$ i" N
  13.       {
    1 V/ r% p( i8 J; _9 X. o" a
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());2 p8 P! q9 }3 }
  15.      
      z8 f" m+ r$ r) S$ a$ u; c
  16.       if(childpart==NULL)
    & n# Y! s5 O' C& e+ I
  17.        {" Q  S& M9 s. R. d; g' s5 l' L; m
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    2 G+ _5 S) \$ t& f8 D- m! Y
  19.         }7 p7 |  `  U5 ~4 D0 c
  20.        else   y) B; z1 S9 o! H, A
  21.        {6 N- S$ K! S0 D
  22.         if (childpart->IsFullyLoaded())7 O. n! a; N; _. }
  23.          {" H" {* d( y6 q5 t8 \
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");" C5 k$ Z$ u% h/ D" P+ r
  25.          }
    - z" C1 ]: K) j  ~' h# U$ k
  26.         else  
    6 d2 @* N2 \; y6 T
  27.          {
    + S% C# I+ o# l6 V: C
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    ; s6 A# a" Q. `4 \; A/ _  v
  29.          }3 e  c% c* }" L! ^9 W' ]
  30.           _) R9 X: c2 V' n9 U$ Z
  31.       * Y" Z( G+ b, Q2 U/ q
  32.         getchildren(components[i],indent+5);
    . U. }, \2 e, }& V( v
  33.       }* e9 s7 u) _% a' [
  34.       }$ J# N4 a/ P  o7 }; e4 O
  35. }</p><p>static void do_api()
    8 K) a' ?  _" j  N0 p5 A
  36. {9 a6 P* o8 L# x7 P9 b$ O
  37. //list the components
    7 U6 ~. h) [0 \. U) e8 m
  38.   Session *theSession = Session::GetSession();
    * Z" S6 R# Q; l* m& s3 Y3 R! d+ ^) `" N
  39.   ListingWindow *lw = theSession->ListingWindow();8 D1 Y4 h7 _1 w: o/ |$ F4 R
  40.   lw->Open();2 v+ v5 O9 H  E7 G% u
  41.   Assemblies::Component * rootcomponent;, n5 D6 f8 L. I7 A% ~7 B! x
  42.   Part *workpart;
    & p9 P- w: E# M  Y2 p) j( l% X2 k
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    - m' ?& z$ a9 l$ I# A6 c
  44. workpart = theSession->Parts()->Work();
      s" H1 {$ F: @  b% I
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    : W3 _8 i8 y6 n2 Y* l
  46. if(rootcomponent==NULL)5 z( f' K  Q/ P) u
  47. {  
    + X/ x" q+ ^; b! w: X9 T
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    $ x- R- {3 v! x* ^9 Y
  49. }
    , b3 }2 Y6 K9 k: W/ ?
  50. else* j9 k: s4 p2 b( w9 @+ E" [
  51. {  W- C# C0 d7 j  p2 u$ e; U. W: [
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    3 g7 S% J# Z) J+ E9 [
  53.   lw->WriteLine("The children components are : \n");% m$ e& x$ m2 ^0 N9 w
  54.      getchildren(rootcomponent,4);; B# O9 ~' F+ w$ }
  55. }</p><p>}
    $ s2 P# M& t7 {" U
  56. </p><p> </p>
复制代码
9 W: ~+ h. t0 h0 H, y4 j
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了