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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
& A0 ]$ ?5 v' Y
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态7 V, x, O& S" O

! |" ^; m- T4 o% k9 c8 u

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
; K* ^* G5 p! L2 S* c# Z0 R
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)# w2 i( r3 A  S* J
  2. {      
    7 u) l, `& C. W* Z6 _# X2 X3 s
  3.   + E3 I0 U! W/ M7 C+ I
  4.   unsigned int ii;7 H! A. }$ f5 [! e% a8 N$ f
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    ! s( |/ G# T# J8 Z5 B! Z  H
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    ) L6 a+ H5 D& N) p3 ]
  7.   std::vector<Assemblies::Component *>components;9 A- n  F# ]. Q5 U% H( j
  8.   Session *theSession = Session::GetSession();/ O- ^0 T. [9 ]* k9 w! T8 X
  9.   ListingWindow *lw = theSession->ListingWindow();
    . J) D: \: v8 Z2 Y$ b( ]1 K- W
  10.      lw->Open();
    % s$ _+ j/ L, m5 e
  11.   components = rootcomponent->GetChildren();: X% P7 u- d9 z, u9 d
  12.       for (int i = 0 ; i <components.size();i++)9 L" K5 q6 o- P1 k# e& p8 [7 y
  13.       {* f- q6 C- V7 g' O$ ~/ t8 S
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    - b9 Z5 o" u% r) a* q6 ?
  15.      5 U) y- X( {% P: t3 M; X. X
  16.       if(childpart==NULL)
    , J% J8 h: |3 M9 A& I7 J: O, u2 I. E( r
  17.        {2 i  W9 D, O2 o# |6 o. F
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    $ o2 i' ?5 W1 h8 X5 j
  19.         }- r& `4 o2 n/ d! X1 ^4 m; _, M: f1 q
  20.        else
      {4 s3 q) w; m. z+ e7 \$ L0 ~
  21.        {
    % b2 \  h1 C. M8 u; b5 L
  22.         if (childpart->IsFullyLoaded())
    7 i; p# R: l! x3 J" K5 \) `
  23.          {
    4 a9 b' m  h: u. ]* U; b. c
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");5 a2 j/ I4 `9 S7 B0 Q
  25.          }
    ! v: p: }, Z8 |; [$ x- j9 Q5 }2 A
  26.         else  
    7 R4 `7 {2 Y/ m
  27.          {
    % _2 F& X! {: q
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    1 u+ T5 w! |% E- W) ]- h4 q# C
  29.          }' c6 m; x: l: C- ~/ D$ `
  30.         
    ' Y) R. ?4 _8 }9 ^
  31.       5 ~) O  F9 x; p+ w/ S
  32.         getchildren(components[i],indent+5);) q5 M4 k$ f( K* O$ B- C: Q
  33.       }
    & @2 g6 U: ]5 C/ N* L
  34.       }( h) p; P1 Y# c4 [  E- u6 }
  35. }</p><p>static void do_api()
    ' a  n- I( X# e" r! d' B
  36. {7 B6 h' O% p! Y4 Z7 a( d2 h0 V
  37. //list the components/ l2 p& H& |% x" S( K0 r4 }; T
  38.   Session *theSession = Session::GetSession();
    6 t& S9 r8 |. ^5 y1 x+ t  X) L
  39.   ListingWindow *lw = theSession->ListingWindow();
    ) d+ q9 A9 e0 K9 v  r/ S, A
  40.   lw->Open();+ L0 A: W& p2 {, Z8 x0 o  I$ |9 w4 p
  41.   Assemblies::Component * rootcomponent;
    ' \; P: `) L+ m5 Z+ z+ X1 C; z
  42.   Part *workpart;- h, i0 A6 k' ~' {3 L2 a0 ?
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    1 @/ Z- R7 z2 H+ X6 t" P9 h
  44. workpart = theSession->Parts()->Work();) P. G! y1 G0 i# p9 \
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    7 m3 O/ o. g/ [( g! g9 p
  46. if(rootcomponent==NULL)% u2 Z% V7 L. X' p* M
  47. {  # e# y+ T8 W0 t
  48.     lw->WriteLine("The part is not an assembly ! \n " );0 ^4 h1 R2 V2 V+ p
  49. }. u: _  y7 `9 O+ N& Q5 }
  50. else; Q0 w1 v6 o+ N" [
  51. {
    ' V7 t7 i5 W9 t- D% D8 E
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");( A! |: n6 E, T- B% h- ?! j7 a. U1 f
  53.   lw->WriteLine("The children components are : \n");( S" V+ _7 b6 F3 v, }, b* i
  54.      getchildren(rootcomponent,4);
    2 C* a  c* i* t
  55. }</p><p>}) Z8 v& m+ y+ p
  56. </p><p> </p>
复制代码

: {; v2 X' g' E' T; P  k
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了