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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

7 a6 D# H( k# S: ?( TNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态) D3 _  q% b$ |: w" v5 a
- v" {: r% x; ]/ p& s) Q& y3 \

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

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

  `& A! O! ~1 ?! `; j
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)% a( l4 _/ @& ?) x
  2. {       6 Y" E; w" B5 Z+ Q, ?0 A) k1 d" |
  3.   
    ; x! C# C, Q! x6 {8 ]
  4.   unsigned int ii;
    7 i2 n6 `! G4 q+ m, E: u3 L$ [6 l
  5.   char space[MAX_LINE_SIZE+1] = { " " };* P7 g/ C1 E) Y. G2 c) P
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");8 O# P" s* {# }. _* L3 N
  7.   std::vector<Assemblies::Component *>components;
    ' a7 ~! B7 s5 U* n2 Y5 ]: C
  8.   Session *theSession = Session::GetSession();
    6 u0 L2 X0 Z; |& E  x) o7 i
  9.   ListingWindow *lw = theSession->ListingWindow();
    0 K! M/ ?/ M8 }) G
  10.      lw->Open();2 t1 x; ?: u: K" K( t
  11.   components = rootcomponent->GetChildren();
    ) B: U( H5 T% k# G3 V
  12.       for (int i = 0 ; i <components.size();i++)2 v0 j6 M1 m( X- n$ W) {
  13.       {: x3 J; U3 r) x
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());! D4 L7 q8 P/ X! A' ~
  15.      ; J8 K# l- n+ M$ A. L
  16.       if(childpart==NULL)' v+ |- V. Y1 j( u) j( @
  17.        {( t: r, ]( }8 R9 s0 _9 Q8 E, y7 r
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
    ; y; J% s* M2 Y6 N% y; W( M" ^
  19.         }5 @4 a% k+ {: ^5 \( I
  20.        else
    ! k$ R! b2 o8 k* ^1 L" }* {* E
  21.        {
    2 j+ M/ C& d1 D, t
  22.         if (childpart->IsFullyLoaded())$ e* B' Z+ P. x+ w
  23.          {
    ! v! B. w' F/ q% R* j4 o
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    2 r" A5 B1 [! J% ~) q( R
  25.          }6 h# p4 ]% x4 b
  26.         else  
    $ ]6 M6 A9 G! U* a7 B# F0 u. `; ]
  27.          {  Q* M, q* j3 [8 I6 q: z  Q% |. ?
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    0 L5 g  Z1 e$ i- D
  29.          }- ?! e1 O/ B% D& W* r* g/ F$ y
  30.         
    : m+ m" \- \" b( s- y+ e
  31.       
    6 N1 {: t9 Z$ P  S2 K
  32.         getchildren(components[i],indent+5);, g2 _* r5 Q% M5 }
  33.       }
      f8 e. m. O1 {: k" S
  34.       }- A: V1 U; m+ F: a& i  \
  35. }</p><p>static void do_api()
    , U; u* v+ X  |; B8 T% B. a
  36. {2 [4 O% c( T. M
  37. //list the components. P9 k# n* T6 L6 K. n+ N
  38.   Session *theSession = Session::GetSession();) G- u1 @' c: ^4 Q* W: N; R2 Y
  39.   ListingWindow *lw = theSession->ListingWindow();$ l' p- [  F3 a
  40.   lw->Open();: \) u& V+ s! b' v5 q
  41.   Assemblies::Component * rootcomponent;8 R1 W* I: |4 H$ L3 }! r4 G
  42.   Part *workpart;: @+ r6 R- o+ C: E# @! n
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();8 L$ \. F+ f; v1 i
  44. workpart = theSession->Parts()->Work();/ q' J& \& Z+ v
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );9 E  D! B/ t; G' E
  46. if(rootcomponent==NULL)
    ; ?( Z; I# ^6 R6 \2 p9 R
  47. {  
    / H0 F3 f/ T0 U0 c" R
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    3 e4 H. n: h' C: A& a6 f8 N9 a0 a
  49. }
    ( |% `% l  j" K% O3 J
  50. else
    0 c: R! F7 a" {; q8 {, i( W5 b
  51. {$ _6 K1 f0 T/ ^" s: U
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    ) g7 X$ T8 H1 E' k
  53.   lw->WriteLine("The children components are : \n");6 I0 A2 Z2 L* s6 @4 V; k
  54.      getchildren(rootcomponent,4);
    6 [3 Y, ~; E* ^+ w
  55. }</p><p>}
      Y  E; }! g( @) q; I  r7 p
  56. </p><p> </p>
复制代码

6 \; k2 f' `) |1 w
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了