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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
0 R8 d4 o, ^/ _, G- Z
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
% R5 t( a4 Z* H0 e: _" e4 [# |  q: `) n5 ]' H: G

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
3 O; Q) B: L" z, B/ Y5 S) G! ?
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)4 R+ v* {2 o6 m& p  Y) o! Y
  2. {      
    - ^  A. s+ D$ o4 H- O( @1 m
  3.   ' v; v( }- T' X
  4.   unsigned int ii;
    ) r0 T. T7 e) _$ r4 Z6 h
  5.   char space[MAX_LINE_SIZE+1] = { " " };" @% _8 C/ Z$ }/ g. W+ F# L- W
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    $ Z8 a+ [' Q) L3 i9 Z% e
  7.   std::vector<Assemblies::Component *>components;
    0 ^5 K6 O0 h' a0 B
  8.   Session *theSession = Session::GetSession();2 b3 M0 e: Z' b7 X" ^7 ^
  9.   ListingWindow *lw = theSession->ListingWindow();+ _- s1 t: d6 C; M9 u4 h
  10.      lw->Open();
    . F/ u8 H" L2 U4 V  S* `
  11.   components = rootcomponent->GetChildren();. U: y; j; L1 h7 b! A
  12.       for (int i = 0 ; i <components.size();i++)
    4 v- g  ?4 Q8 p5 S* j/ M$ s' {
  13.       {; ^3 u; A1 C) V+ X5 u  a
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    ) j7 _' z/ Q/ @; H
  15.      
    % G  h$ B9 K8 w9 U; m4 ?7 u
  16.       if(childpart==NULL)
    ( K3 K/ i! D  ]( t9 V
  17.        {
    8 n- V9 ]2 u5 I% N2 Q
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");; y% x7 A9 x. p9 i$ f  A8 [7 M, H0 S
  19.         }
    2 g: W1 t% ~# n
  20.        else
    8 i+ K' u0 G$ F3 C# K+ F
  21.        {
    # T: L/ A; _' X. g. ~" D
  22.         if (childpart->IsFullyLoaded())& R" k0 g% S& K$ D0 J8 {- C
  23.          {
    0 [* X: Y, L2 _
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");: o2 p+ Y- d# b0 A# u9 V
  25.          }
    2 J3 \3 r1 \, s- z5 l. F: H9 t
  26.         else  
    2 [( h3 O. I" S4 Z/ N
  27.          {8 b& {, j. N" J9 k' C
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    + E3 {0 k8 B3 ~: e9 a+ V9 }% K) I0 V
  29.          }
    ( H; B: n# Z  B) b; w. y
  30.         
    ) x; r3 e% i; o9 o; Q! H
  31.       + I4 G1 Y1 d2 i: ?& {2 b
  32.         getchildren(components[i],indent+5);
      j6 C* Z( z# G( w+ L
  33.       }
    ; b) [4 ]$ Z6 A( R- o$ Q* A
  34.       }
    6 Z, v0 H$ |# a% E4 B+ o
  35. }</p><p>static void do_api()& }4 u: p3 e7 E7 O
  36. {( F' U3 F9 }, C9 U; E) }# h
  37. //list the components
    - e) B" \; d% r$ t# q9 N
  38.   Session *theSession = Session::GetSession();- F! S7 }& ?$ z+ X
  39.   ListingWindow *lw = theSession->ListingWindow();
    - k$ o  n! @9 W, S, D
  40.   lw->Open();
    " g- B4 h! L" ?: R" B) |5 c4 h7 [
  41.   Assemblies::Component * rootcomponent;
    ' k; i6 i8 g3 i" Y! m' R% ?
  42.   Part *workpart;7 n! _+ R$ |9 x# w" t# x' C
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();0 F; l$ y( ]4 K1 G" T) E
  44. workpart = theSession->Parts()->Work();/ e9 L4 _2 |6 B* N% I1 J' Z7 D. x
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    4 ^9 V  M8 }" A$ K
  46. if(rootcomponent==NULL)* R% q% Y2 c  r+ {3 y
  47. {  
    $ P: n! ~- o# }( _/ Z5 O: r
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    ' D3 g( j; c, m9 k$ f- b
  49. }- k$ n, o* z. d! A7 E
  50. else. f" m0 k: W& d" T
  51. {7 g& }& ~4 t/ l3 V4 a8 A/ _! P/ M
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");- {/ G4 m8 W- _' g0 D; H! T2 W
  53.   lw->WriteLine("The children components are : \n");0 C) [& A. X' Z" z- D1 }
  54.      getchildren(rootcomponent,4);
    / Q0 O6 d  ?2 V! {/ S9 j
  55. }</p><p>}" S% K. f! q( j# X1 E; ?: l
  56. </p><p> </p>
复制代码

9 `  j4 b) w0 p
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了