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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
6 X0 N8 |; Z3 M2 R) S
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
' B- h9 ]) ]3 E( i& [
/ A  s! L  C" f) o2 H' Y- ^

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
1 k6 K2 ?4 S( y
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)" M$ A4 T3 |9 u5 S! t
  2. {       1 S( [# T7 [/ j" t& U
  3.   
    " Y' q7 e" D9 F1 m
  4.   unsigned int ii;, r+ A, J: C, [0 E1 s& [6 ~
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    5 n) E" J) @. R2 Y" f( ^- Q  A
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");  W  B  j$ S& C" _7 F: [
  7.   std::vector<Assemblies::Component *>components;
    8 p8 r) e& a) l: A  Z1 |- L
  8.   Session *theSession = Session::GetSession();
    - u8 q6 `; `1 N8 y
  9.   ListingWindow *lw = theSession->ListingWindow();. L3 V6 p8 `" x- t4 q: E& b
  10.      lw->Open();
    % E* P  Q6 o' T7 T6 n' Q
  11.   components = rootcomponent->GetChildren();( U5 q& P0 T4 d# R' M
  12.       for (int i = 0 ; i <components.size();i++)
    ) U  n- N( [" a- z# n
  13.       {, W, O% p0 J9 U4 R* K
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());0 I5 [% [2 @5 n* U8 A* E
  15.      ' o1 {. b  R4 u9 O
  16.       if(childpart==NULL)
    9 a: Q; i( c4 C1 O) B; |! U
  17.        {' [( q6 R* f6 q6 S- s! o
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    4 r! w* i, {" \6 o5 d' k( j' [
  19.         }$ ~' F* z5 N# }2 L; ^. n
  20.        else & N$ {  U8 p. B
  21.        {9 ^/ R& {9 a! U
  22.         if (childpart->IsFullyLoaded())) X* y# j+ O# N
  23.          {
    $ M! y& N' y& l) V1 \
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");3 D# p9 h' j2 b+ }
  25.          }
    8 i: z/ P5 Q  U5 U# Z5 I6 M# u2 \
  26.         else  
    + D; }1 l) l$ X9 `
  27.          {5 q, a# Q/ Z+ Y4 O
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");+ y3 `! M7 j% h$ X
  29.          }( R, Z5 d6 d3 M9 T% @3 g
  30.         & n, ^5 P3 }  G8 B& k0 C; c1 _+ u3 d, |
  31.       
    1 C$ n. F! B9 Z4 j# i8 G% m
  32.         getchildren(components[i],indent+5);' L5 ^- _  a# z3 y+ k
  33.       }
    & Q( z) }* a1 z* M; u4 v. b; v
  34.       }
      y8 t! A6 ~, N% Q5 `2 `
  35. }</p><p>static void do_api()
    ) Y. N% I8 X1 e( Z
  36. {5 H+ b$ k! B; B% S. t0 V3 r
  37. //list the components
      N) S" {# n0 c$ e. H2 w4 s4 W
  38.   Session *theSession = Session::GetSession();
    7 s: b  _$ Z3 ]; `# O
  39.   ListingWindow *lw = theSession->ListingWindow();5 b3 I& j0 S: y; T5 [- @
  40.   lw->Open();+ @1 S, F/ i" l
  41.   Assemblies::Component * rootcomponent;
    5 j7 P: Z% g" _) k
  42.   Part *workpart;
    0 B& f8 s, E( m$ ]" d
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    8 B4 V5 D2 n% T1 R+ D
  44. workpart = theSession->Parts()->Work();1 O* N' `( a  ?7 r7 _$ C$ H
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );) ?6 f: {: y, Y$ `3 d" u
  46. if(rootcomponent==NULL)
    ! f( b7 E0 D( g* z
  47. {  9 T3 f: @, @" n9 N7 _% g
  48.     lw->WriteLine("The part is not an assembly ! \n " );2 y1 |, H8 G8 E  ?
  49. }, Q  ]2 z, b* W% ]% r5 N8 i
  50. else
    ; O  T$ e8 \4 e
  51. {
    ; Z( [/ S9 D3 ~2 e" Y  K! }
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    + W/ \; I9 S2 `  [# O" a# g
  53.   lw->WriteLine("The children components are : \n");5 s) ?% I) x1 l2 b
  54.      getchildren(rootcomponent,4);2 J5 I$ o- ~* o( P3 ^) y. Q
  55. }</p><p>}
    ) x+ L2 F, G5 P) b" e' @- g
  56. </p><p> </p>
复制代码
4 g3 Q8 O0 x/ f  y- _
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了