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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

; i) J( B& ~6 {, q8 {% s( |. fNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态9 R1 o: A' R# y) i# r+ m' s' t  l" ~9 Q! @
# F6 T6 Q. ]2 t9 A

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
+ n5 t' k' y# K1 L2 Z% n
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)  h- ^3 _4 _3 n2 N; j5 h; K+ s5 _
  2. {       $ x, p5 l  S4 d* i6 f2 f$ {" F
  3.   
    ' @0 Y) q8 Y9 U9 d" C5 g) O
  4.   unsigned int ii;' l& V- v# O/ k6 ]5 O3 a
  5.   char space[MAX_LINE_SIZE+1] = { " " };5 E( b* \/ c$ u$ q# Z1 O) T8 {
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    " F7 u# Y9 q' M0 s9 h3 A; S
  7.   std::vector<Assemblies::Component *>components;
    $ `5 ?. T9 a& D; |' ~5 L& N
  8.   Session *theSession = Session::GetSession();
    6 a( R# j" \% [
  9.   ListingWindow *lw = theSession->ListingWindow();9 s6 X9 s( a5 x& t8 ~. s! T0 ]
  10.      lw->Open();" R: ?) j, k3 _$ Y
  11.   components = rootcomponent->GetChildren();9 B7 d1 x1 ]. C. E
  12.       for (int i = 0 ; i <components.size();i++)
    9 B  `8 e4 \5 w* Z
  13.       {
    5 z" G4 @( n$ O$ A# f: h$ Q
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());. c- r' i& O' C) o# w* ?4 I
  15.      9 v# M) Y: p* j& L+ [. B
  16.       if(childpart==NULL)" h" ~* }  E5 [- m
  17.        {
    ' ?3 C6 j1 x+ a
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");% K! d8 P+ \+ l: R! v0 K
  19.         }9 ^! R5 m# F! X5 J# p4 D
  20.        else
    0 G% e  M& j# }$ Y8 S+ x, \
  21.        {
    9 q: z+ g) d& P9 ?# w( v8 e% P
  22.         if (childpart->IsFullyLoaded())
    # `  w$ _) ]9 B+ m1 P1 ~- s5 z
  23.          {
    6 o6 O. `) k$ c1 J0 R( k
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    9 n( e  m; R& a6 G( v
  25.          }3 j+ u# P: ^+ N( w
  26.         else  
    $ Y1 ~+ {, Q) s0 F0 K3 W
  27.          {
    0 P4 |" P/ g( w! U! k
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");" B; T+ `- V* s# z
  29.          }* i5 E7 S9 [0 ^6 z
  30.         
    / m0 E4 b3 H1 g6 ^5 n$ D7 O! X
  31.       
    6 P1 F. @! i: @/ w7 i
  32.         getchildren(components[i],indent+5);! z+ `6 r% N2 K/ h) r
  33.       }/ ?& D0 T' ?* A7 m
  34.       }
    : r. Y& p9 n$ P* S3 o1 `8 J
  35. }</p><p>static void do_api()
    * t; Z' Y# z+ S- h% |
  36. {
      o6 B6 j  L. U( q
  37. //list the components+ w5 Y- Y8 Q. y$ @8 M  O& c$ c+ _
  38.   Session *theSession = Session::GetSession();. [. Q, d! V2 Q/ x0 Q: H6 s
  39.   ListingWindow *lw = theSession->ListingWindow();
    ; }/ ]5 M; o5 L+ K( r9 C
  40.   lw->Open();  e4 Z6 u6 e, y7 ^
  41.   Assemblies::Component * rootcomponent;
    : f. a1 A4 f  Y$ H7 H
  42.   Part *workpart;
    $ d( j" F1 S. k; h8 B* D6 z% y
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
      i( P! c2 @/ h4 D0 t
  44. workpart = theSession->Parts()->Work();2 E9 d- H2 @8 `9 |, J/ I
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );- c* g$ S4 s5 t' n$ Q5 c
  46. if(rootcomponent==NULL)
    4 @+ T& X  u* {! q& @5 h
  47. {  " G9 s! e1 q. ?
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    ! |0 j: g5 y# U: q  B
  49. }
    5 C0 p! S  {5 m7 Y# U. Q& T
  50. else( O$ w7 `4 c! ?. {( h
  51. {! `, n5 a. e% w$ o) D
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    ' O; L9 @) n$ h% [, q, Z3 q9 p& ~+ D
  53.   lw->WriteLine("The children components are : \n");0 s) `, K0 t# ~. Y" N: H+ j+ }! v/ k& W
  54.      getchildren(rootcomponent,4);, \7 W4 u2 S! P* a
  55. }</p><p>}& O# Q2 u$ n: p  p3 w; m( Y, I+ a
  56. </p><p> </p>
复制代码
) d; K6 @: c0 [9 _& _4 r
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了