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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

  q+ q: [( i' d! ^2 r7 VNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态& y! v) n: L* Q

7 _0 [5 u2 @- f

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

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

% e! g0 ?! q9 C2 Y0 v
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    # i1 x8 l3 R& m# |: J  K) T1 G
  2. {       - k; W! k* C2 k7 `! F9 @* j7 x
  3.   ! \/ l; E1 d* |* v' s
  4.   unsigned int ii;
    4 h2 G; |; [# T0 A
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    $ t6 \: ?5 J. r. T2 M
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    . _7 U6 l* j! m# n* ^5 `
  7.   std::vector<Assemblies::Component *>components;  n" X5 C: ~! o, |5 |
  8.   Session *theSession = Session::GetSession();  c: t1 s4 w% b
  9.   ListingWindow *lw = theSession->ListingWindow();
    1 F0 Z' ?9 T" q9 z8 {6 B
  10.      lw->Open();7 Q- M6 p3 A' S; C  a" H7 ?
  11.   components = rootcomponent->GetChildren();/ |' r( @7 D( r+ j6 s
  12.       for (int i = 0 ; i <components.size();i++)+ w% f  V- z7 W6 |( ~3 O; ~
  13.       {
    . G' `: ~, L$ `; j3 i
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    5 u$ z$ x# s* @
  15.      " A- }0 r0 H+ q- Q
  16.       if(childpart==NULL)9 Z3 P+ M7 k( y) Z
  17.        {
    0 J5 F* b6 R8 i& K$ Z0 j
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");2 T8 v; ]; W0 g& _2 O
  19.         }
    3 ^9 Q% A. U+ X8 }- X
  20.        else 4 e8 p5 r/ c1 j  W! Q* `
  21.        {2 H$ H' b. r- w7 I! T% O  m
  22.         if (childpart->IsFullyLoaded())3 {# v0 Z" m1 e3 U) z3 ~" M
  23.          {
    & d3 [7 _3 B9 D# p# `
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");, Z0 u- G6 c9 {; e  R2 \% `" ?' Z$ P1 ]; I
  25.          }/ Z# o9 M/ l: R0 n4 p) q1 N( s9 C. l- B
  26.         else  , D0 e$ b6 j. m% P  ~8 t5 N. ^
  27.          {
    # S( ]( E0 V+ c4 w" }; u
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");& ?) E% Y2 |! w* D9 H3 L9 Y4 ~- M
  29.          }; [4 d6 a) u9 }( o# l% [
  30.         , x+ W& r: b2 i
  31.       , o8 i$ I0 N8 `. h& a5 i
  32.         getchildren(components[i],indent+5);$ ~/ W5 a4 V# W5 H2 b* `0 s& _
  33.       }
    * @# t, T2 G# f5 x2 ~+ s
  34.       }& T2 f0 q) A. r% D
  35. }</p><p>static void do_api()" h% J( n% B/ m4 V1 T
  36. {. ~. {: q4 R) p( Q5 W% p* v
  37. //list the components
    6 A( y+ F& b4 H% v0 j) J
  38.   Session *theSession = Session::GetSession();
    ; U/ p$ \2 v7 b* [& U+ F- `
  39.   ListingWindow *lw = theSession->ListingWindow();
    % v" ]! ?* C& J! Z4 P! Z) J
  40.   lw->Open();
    6 ]0 U, @/ R4 {. U8 q
  41.   Assemblies::Component * rootcomponent;
    8 h* A0 z( }! G
  42.   Part *workpart;/ Z2 @' @% S. c; P5 J* ?
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    " F% U! f, v2 l
  44. workpart = theSession->Parts()->Work();/ Q) X* A  i& }2 t8 K3 x; S- b. N
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    , Q1 J. N$ Q; k& d  _8 Q5 x6 }
  46. if(rootcomponent==NULL)
    ' o9 j  U) b* g
  47. {  ; U  h- }4 G9 Q% e( p$ @7 U
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    + J5 O1 M7 q$ G0 B
  49. }* f, [# s0 N8 g6 E$ P* N3 s
  50. else5 p' C% u4 H5 p0 t2 y9 ~6 o2 B3 a
  51. {- b% M0 |8 a* J
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");, q4 N3 _% q" Z6 q- T
  53.   lw->WriteLine("The children components are : \n");: z0 Z" q0 b1 N3 Q9 V
  54.      getchildren(rootcomponent,4);, o) J% x+ R  y. u2 `
  55. }</p><p>}  D. ~4 C$ Q6 C4 e
  56. </p><p> </p>
复制代码

: v3 f8 m2 I9 m8 n' ^) C
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了