PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

积分
9784
发表于 2013-12-4 16:36:55 | 显示全部楼层 |阅读模式

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

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

x

8 F+ M  D( b; C1 G2 d% lNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
+ D0 p& y2 ^! L  P  \/ K# o+ k5 U  e; l0 A$ L

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
+ t* b6 C! v, F& n2 U0 ]
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    / k! [; e3 L  U8 W4 S: c# ?; u* s1 v
  2. {         r0 _0 ^5 ^- [
  3.   + k( U0 B! |5 W
  4.   unsigned int ii;
    9 U! F+ l5 H3 Q$ z
  5.   char space[MAX_LINE_SIZE+1] = { " " };6 g4 T2 p" b8 w9 Q
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
      ?6 A4 V  F& G9 X; N; k
  7.   std::vector<Assemblies::Component *>components;" |. t* V6 Q6 S6 S$ O# k( d* Y& [
  8.   Session *theSession = Session::GetSession();8 j+ u$ b4 O" h; V  Z( j
  9.   ListingWindow *lw = theSession->ListingWindow();
    # _6 n* P& g5 w
  10.      lw->Open();/ n; @9 a! v& `* u5 z! A
  11.   components = rootcomponent->GetChildren();; t7 z0 G5 g( B* K& }+ N
  12.       for (int i = 0 ; i <components.size();i++)' O& U1 P% W4 f) h
  13.       {
    4 n* o# h! r2 j2 f' g% h
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    1 o, K" f8 F3 R2 u
  15.      ) z9 P% M: s/ k9 K
  16.       if(childpart==NULL)
    # r; e8 }0 j- A  W
  17.        {! I6 ?1 P2 s* V5 F8 A8 g$ s; g! i' a
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");" X; w" i9 F; n4 g
  19.         }- q: G$ R4 Q4 D* [' {
  20.        else ( u3 {; H8 r$ t
  21.        {2 K' B8 J& Q, F$ c# w
  22.         if (childpart->IsFullyLoaded())* |) B+ z0 K/ u
  23.          {; u$ W# \. M5 Q  j, R7 {
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    5 x- e1 A# \! @9 S
  25.          }6 E1 |% f4 K. y
  26.         else  
    4 \+ v0 u, ]+ Q6 k- S* ]
  27.          {! r: c1 x6 M( Z3 |2 z
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");' t1 Y+ m: g7 K. y- `0 ?# K1 @3 T
  29.          }
    - Q3 m5 C5 N, F6 F6 \/ a  K: ?" y$ w
  30.         
    $ H0 ^- v/ C5 t# F
  31.       ! S8 P- [8 z- S4 E
  32.         getchildren(components[i],indent+5);
    2 ^% o9 h6 e# I- L) T
  33.       }! O; l. }$ C4 D- v/ u5 a; L  X
  34.       }7 u9 G& X- f! G$ \5 i
  35. }</p><p>static void do_api()
    " z& O3 B, [% p3 r9 X
  36. {
    $ k+ r  T, f) d8 K$ T& G8 g3 k8 u
  37. //list the components
    & M+ o2 H) G8 G% D) X6 H6 @1 L
  38.   Session *theSession = Session::GetSession();
    ; N* h2 j+ C; m9 [  n: M
  39.   ListingWindow *lw = theSession->ListingWindow();
    : d  n6 @0 s7 K3 Q
  40.   lw->Open();% Q6 B8 j! |  c( }& u% Q1 G2 F5 }) _
  41.   Assemblies::Component * rootcomponent;
    5 x* Z. L2 [4 s2 p! @% n
  42.   Part *workpart;
    : X& }7 X+ \  ~7 H
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();; R, M) A( O" z' r
  44. workpart = theSession->Parts()->Work();9 X+ E4 ~' X9 j! b, @' w) _
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    . o2 j5 |6 s4 b! X
  46. if(rootcomponent==NULL)% o! W5 C" S/ V: y' Y! i% D
  47. {  7 a7 k/ D  l1 H; m0 Q
  48.     lw->WriteLine("The part is not an assembly ! \n " );, ]5 d" ~6 }, u1 }' z1 ]/ h
  49. }8 N$ F& A7 B0 i* c9 L. U
  50. else6 [9 P9 g% Z# Y* B
  51. {
    # f. W4 ^- q7 n+ O' P1 S% |$ B
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    : [' _( c! w( D* O, a3 [/ J8 A
  53.   lw->WriteLine("The children components are : \n");: o- d4 j: D5 s+ X% d* b& w
  54.      getchildren(rootcomponent,4);
    , f, _6 }6 r2 g* p, g; U- j
  55. }</p><p>}
    4 ]8 W: u1 y0 |8 h" \
  56. </p><p> </p>
复制代码
6 N6 r; b) P4 Y1 H' h
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复1

7

主题

31

回帖

170

积分

注册会员

积分
170
发表于 2013-12-8 00:59:17 | 显示全部楼层
嗯,这个不错
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了