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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

7 {) L- q9 `8 g6 TNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态' ]. i( W" [; @: r3 i6 \( ?* j, Y
; n1 x7 B. O1 `' r

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
; b# u2 `% @# t  B/ X2 ?( h" Q+ p
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)/ Z' H! ]% g5 X4 v; m9 O/ o( K5 P
  2. {       1 n& N+ o3 P  Q# v5 o& Q
  3.   
    - U! p* n$ W& V! ~+ E, y0 }6 `
  4.   unsigned int ii;$ w. }" k+ ]  [5 u% o
  5.   char space[MAX_LINE_SIZE+1] = { " " };6 ]' K2 B) H: T0 m( g
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");7 w+ p, B: R  h) x8 L; l8 V
  7.   std::vector<Assemblies::Component *>components;  T- r3 T  h& T" n6 D
  8.   Session *theSession = Session::GetSession();
    ( q" x. Q4 p' }' ]
  9.   ListingWindow *lw = theSession->ListingWindow();; N% v  c: v& a
  10.      lw->Open();
    7 P9 t1 B0 S. N) k+ c
  11.   components = rootcomponent->GetChildren();2 ^( Q# i6 `4 F$ q0 ^+ a# }- j
  12.       for (int i = 0 ; i <components.size();i++)( X) x8 o) ]% u) h4 Y- P6 C2 Z
  13.       {; R  C6 A5 q( [* y# P
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    3 z, N" ]* O/ F- z3 o% P7 ^; P% v4 y
  15.      
    9 P0 z( I8 T0 p9 {  U% {' c
  16.       if(childpart==NULL)
    % C# ]2 f- m/ [; g
  17.        {
    ) L4 s8 H! f! u0 R& Q4 w
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    & J. ~) A7 S3 m& H# V
  19.         }
    2 L$ f' W* q0 r
  20.        else % L" e0 n! u9 h6 _" B) l, U4 }
  21.        {2 o' l. v5 o. }9 N; {
  22.         if (childpart->IsFullyLoaded())" e0 V8 _0 X3 j
  23.          {2 E$ ~  P7 i; x1 n
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    , R. Z; ]$ u/ `! ~$ @& H
  25.          }
    6 p, S+ R& @) N' o
  26.         else  + h7 Y1 k2 j2 I; Z% P
  27.          {
    ( W, T, N3 j2 F! y  z
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");, i9 Q. m7 `6 o  Y, o: A7 ^$ h
  29.          }) K: A1 Q2 `4 T% {4 F
  30.         
    ) U3 F6 N, p$ L4 }& K' o
  31.       0 V' t5 C% A% c6 X) @6 |' m
  32.         getchildren(components[i],indent+5);# w* r; o& c3 m* C
  33.       }3 ~8 e2 g! O, ?/ h* ~6 d
  34.       }8 \* q  a  F  H# ^" ]: C
  35. }</p><p>static void do_api()
    / [! h! q5 \5 ^
  36. {
    ; q- @( Q5 t4 x
  37. //list the components8 [' }7 s% X# l0 j1 U+ I
  38.   Session *theSession = Session::GetSession();' o- K* |0 {& _1 Z" G9 U; a2 U9 y# p
  39.   ListingWindow *lw = theSession->ListingWindow();
    3 @7 o/ y' _& U0 Y& C  l
  40.   lw->Open();, h/ T, W4 J6 |3 ]) R% R4 m* d' v
  41.   Assemblies::Component * rootcomponent;
    % `5 p2 L+ c7 n$ _- |  p
  42.   Part *workpart;
    ( P7 G: P* T# o' O7 m8 L( ^
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();5 B5 t4 ]; e6 t$ n( ^5 W
  44. workpart = theSession->Parts()->Work();
    % ^% j9 \+ L: x1 I2 Z. T
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    ' \0 Z% X- Y$ K7 O& ?8 V# Q& N' D
  46. if(rootcomponent==NULL)
    8 m1 v* G  p5 ~5 Z; ~7 f/ V
  47. {  
    2 y* b+ N8 A: \* {0 M
  48.     lw->WriteLine("The part is not an assembly ! \n " );# h: W: ]6 A& e
  49. }
    0 [+ e5 d8 G4 ~5 D6 R3 y
  50. else
    + c+ R! L5 E; ^/ ~, y4 C
  51. {: M, x( T$ |) Z# A% y
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    5 m. J& R5 N: U. T! c
  53.   lw->WriteLine("The children components are : \n");
    8 i( w: W4 ]0 Y) E- c
  54.      getchildren(rootcomponent,4);, N: G8 E! j; H6 d, ~7 j
  55. }</p><p>}
    3 v) S% D1 a, ~+ i% _
  56. </p><p> </p>
复制代码

$ J' @+ C$ u1 `) y2 a
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了