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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

1 q- l$ ~0 D9 k8 dNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
. X8 v9 W) r2 E
! Y! C9 w& h$ |% Z; |, r6 j

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

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

: \9 K1 w$ M6 U; w& v& N, Q8 E
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)3 a  h$ C; {1 J7 r, o& x
  2. {       . t4 r7 o8 `9 r" u
  3.   
    ) l: E* V! e+ C$ _) x! A
  4.   unsigned int ii;: y# l9 c1 w  Q
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    ! ^! O: u, M5 {9 Y2 ~; r
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    7 _: k/ E/ i2 R+ O4 B* A
  7.   std::vector<Assemblies::Component *>components;
    ( k+ ^* {/ l" E
  8.   Session *theSession = Session::GetSession();+ B! I- d1 \  k7 F; U+ Q
  9.   ListingWindow *lw = theSession->ListingWindow();9 P+ @, m* ?+ u5 R
  10.      lw->Open();. {& E* V( i6 x( o0 y2 W
  11.   components = rootcomponent->GetChildren();+ w  M% U2 E' ?0 Z
  12.       for (int i = 0 ; i <components.size();i++)
    9 a( `% a, s" {$ A. f% O
  13.       {
    4 m% K6 A) j8 y, x+ E! B+ M
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());4 l; m2 \" o* G) T
  15.      7 d# l7 x6 R! U$ o
  16.       if(childpart==NULL)
    $ F" G& K' ^- w+ N# [: S0 v% T
  17.        {3 w! j! _; U; ?: s, D
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    ) W2 ~9 u1 h% I# V$ {
  19.         }
    ' S8 g2 A0 ^# a2 x9 p
  20.        else , x2 V" L% R; u  G
  21.        {7 m, W) i( }3 a& |
  22.         if (childpart->IsFullyLoaded())' r3 o4 j7 |  M( T4 [  ?& }
  23.          {9 n2 |8 t  w% ]6 b' P
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    + [- C4 i1 o0 O2 m# U
  25.          }& \: o1 Q" z0 \4 {3 \7 Z( |
  26.         else  
    4 b9 }3 N: ~9 g# N& n1 K  ]3 l- |; O' S
  27.          {
    $ m; p; Q0 `. o9 L4 V1 T+ O8 c
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");; N- t* ~; E2 ?5 e0 h
  29.          }: {" _$ k* k5 R; n1 u# W
  30.         
    9 {# `, [$ u+ I5 G
  31.       
    " R( M; f6 h6 `  o
  32.         getchildren(components[i],indent+5);. ^% O% i# P6 t3 n  Q$ C# X# k
  33.       }
    ! {0 s  F: W  [, a3 E
  34.       }
    $ `4 Y3 f- D2 ~6 Z4 z& O
  35. }</p><p>static void do_api()
    $ [, Q, y: \( H$ A+ E+ E
  36. {
    . B1 z' |- |3 W; Q
  37. //list the components
    % i, H& D. q' L
  38.   Session *theSession = Session::GetSession();
    ) [- L+ E: j& h+ ], W% u
  39.   ListingWindow *lw = theSession->ListingWindow();
    ; @) r# w4 ]+ `% w3 y
  40.   lw->Open();6 S9 Z; u: e0 R$ X0 l
  41.   Assemblies::Component * rootcomponent;! j' ~: S8 D& q
  42.   Part *workpart;% {- o, r8 c" Q. z" S3 m1 G
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    . L" V6 v3 [- A3 w. f( o
  44. workpart = theSession->Parts()->Work();
    2 i2 {3 r' v$ j
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );6 L- w: Y. z8 W9 A, J: B
  46. if(rootcomponent==NULL)5 l8 q& B$ H) n; B* n
  47. {  
    2 }1 \- U; X" [, c5 W% O( [( @2 J, O
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    $ p; {  x! o# O2 h9 U
  49. }
    & a* ?1 v4 _9 y1 F
  50. else, w; R- Q8 m+ c5 Y6 J7 d
  51. {, k- n' T" o; q: G! |# r$ ]
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");( M- g4 Z  b3 x; Q
  53.   lw->WriteLine("The children components are : \n");4 _1 J& I5 W1 p. w
  54.      getchildren(rootcomponent,4);
    5 Q4 K% h# |& r- E0 B9 b5 \
  55. }</p><p>}' ~9 d8 A" F/ J, K1 m; `, g: J: G: A
  56. </p><p> </p>
复制代码
4 ?% m( v* ^- k& B
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了