PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

2013-12-8 00:59:17 3690 1

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

3 I, S$ a/ B- m0 S1 qNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
; @- M/ k; ~9 }2 U7 d, R& X$ g6 m6 q/ C' I! w' G$ g

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
/ V& G: v1 u- o, C
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)/ F% u1 o! h2 ~+ r* K
  2. {      
    , w4 ?: H$ @: H0 e6 K% ^
  3.   2 o6 p0 v4 c/ m9 ?) Q
  4.   unsigned int ii;
    6 K5 J; n) |6 l) G
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    8 A; R6 k% e1 e3 l% C
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    1 ?" i% m- I5 f2 q. M; X+ \
  7.   std::vector<Assemblies::Component *>components;
    + o  D3 q4 H( w0 y+ t
  8.   Session *theSession = Session::GetSession();5 T) O) @% ?% U; P" ^* M( b5 h
  9.   ListingWindow *lw = theSession->ListingWindow();
    1 r7 d  u+ b% |: L# Z# a( J
  10.      lw->Open();- @; E- n9 p" P% p6 P2 {- Q
  11.   components = rootcomponent->GetChildren();
    2 n: ?7 B* q; W7 j5 T
  12.       for (int i = 0 ; i <components.size();i++). E, \; Z2 b0 o7 @+ `/ L9 l
  13.       {, k. M; \) r" U: m) C0 H* S
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());- \/ }1 h+ {% F- F7 g
  15.      
    . r9 e: N8 K9 g& C4 Y
  16.       if(childpart==NULL)
    # N( V. y1 \# |5 v1 x% E
  17.        {
    0 I: D7 L2 j; k, {% B
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");$ W4 X: z, C' n' A7 P5 {+ G/ C  C
  19.         }
    - O7 P- U/ q6 B8 o
  20.        else
    ' T; g9 i: v7 P! X) ]/ J
  21.        {1 S, d3 g# s/ A. i
  22.         if (childpart->IsFullyLoaded())
    7 p7 J' E" |- w9 |9 Z4 q
  23.          {
    7 J# [# @, N4 o  N/ L4 s( C1 T+ n5 w
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");2 P& v* n1 S! P- d& z! b6 B
  25.          }
    ! a; I$ c' F  y: \( e$ d: }$ o
  26.         else  
    : w0 [/ z8 V) [9 J& T; e# z* V
  27.          {
    * M/ K# m; {: r% L7 Z! R
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");* y' M4 }3 t0 q" E0 ]- n
  29.          }- A1 Q+ L' w7 ~5 ~3 S" [
  30.         
    - S0 a8 b  i" Z+ h; r) Q, O
  31.       7 A- I: G/ ^: d$ I! a( ]
  32.         getchildren(components[i],indent+5);1 N. m; g" D; a' ]( }( U
  33.       }
    ( Q, s, p' a1 e/ |
  34.       }- X! Z' ?0 i& W! s% M
  35. }</p><p>static void do_api()
    4 O  R1 q0 O' y: R2 E
  36. {7 z+ M  p. @2 q* F2 n" `
  37. //list the components9 W) Z0 A) G1 ]0 B
  38.   Session *theSession = Session::GetSession();
    - I# c/ p, [, F4 n; o& g4 R
  39.   ListingWindow *lw = theSession->ListingWindow();
    & Y8 _  t* l' f. ]5 x: A, ?. f9 j
  40.   lw->Open();$ L2 {- W' f  ?( `- r- W
  41.   Assemblies::Component * rootcomponent;3 V! H3 j6 i$ T4 f* [
  42.   Part *workpart;9 w7 l0 S8 {6 {$ Q3 l4 N
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    # B7 |4 l/ j0 f4 z2 R
  44. workpart = theSession->Parts()->Work();! J+ _. m1 X3 z; z$ U
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    3 }2 c" K% s! T! t
  46. if(rootcomponent==NULL)
    ( D/ e: v+ K9 h) v3 b( e* t
  47. {  
    ( s- O9 {  `/ J
  48.     lw->WriteLine("The part is not an assembly ! \n " );; Q' Q$ x" l8 m+ V. w
  49. }
    ) {5 ]: e8 \* q% v
  50. else3 R' u. D' r4 ?
  51. {1 b0 S; l% Y9 R7 @: A
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    , G* @/ w/ p3 |2 t  Q, s# N
  53.   lw->WriteLine("The children components are : \n");
    # d1 P! |+ P/ n/ `
  54.      getchildren(rootcomponent,4);
    $ }/ H* R" G( c' u+ a# `
  55. }</p><p>}
    " w6 c  O) b' R( P* b* E
  56. </p><p> </p>
复制代码
6 V9 a7 \! e6 }+ A1 i/ C& N
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了