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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
5 R& S$ {, n0 i+ U
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
# }+ f, H9 c4 q+ n, ]! Q7 K' Y% g0 M

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
1 q; \, \6 H. H- b" C) K
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)3 G7 `- s, I' L% o& `- q4 m1 c
  2. {       : e; Q/ M/ o0 W. n/ D5 L
  3.   
    ! u; p7 R$ d  P& T1 L
  4.   unsigned int ii;
    $ A' w; r1 s2 y8 T" N3 U& c+ H# Q5 H
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    ) t* o- \! v& D* Y: M9 w
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    ) R6 C) ~/ Y! {3 L/ D2 \
  7.   std::vector<Assemblies::Component *>components;
    5 W# j8 k* Y, r/ \* z
  8.   Session *theSession = Session::GetSession();
    8 q( z/ a# H  L0 ~$ a! O( ~
  9.   ListingWindow *lw = theSession->ListingWindow();
    # W+ i) M  `6 z) a& S0 t
  10.      lw->Open();
    1 K6 B, K% X9 A2 V
  11.   components = rootcomponent->GetChildren();: |  G/ q. b/ n
  12.       for (int i = 0 ; i <components.size();i++)% W/ {* c8 ~# w* L. F3 p
  13.       {' H# s7 c/ N7 y, H$ z2 }
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());. u) R+ K2 P+ ^! _0 }+ \) G9 L
  15.      . W- L: E: r7 I! W: c# k, v
  16.       if(childpart==NULL)
    & n, u2 C1 D- V. c
  17.        {
    3 N& d8 o/ n) F1 x; _' X
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");: L/ f+ {0 L6 U) a, a
  19.         }
    ) {1 f3 a4 X" @( a% {5 f2 u3 {
  20.        else % T$ F, j$ Z* [0 ^, y9 i
  21.        {
    1 Z7 [  O9 |- b/ O
  22.         if (childpart->IsFullyLoaded()), U( A' P6 i  T, b
  23.          {7 a  I- W0 s# j- S
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    : s1 ]- }# n/ m
  25.          }% [: j/ T# A# J$ `5 E
  26.         else  ! f8 s8 N. H/ u6 t
  27.          {$ z9 K3 {* X  q  C
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");1 @% s8 _: P! J6 T) j% ^( {" \
  29.          }2 E/ Y% M$ t/ _8 [
  30.         
    / M& w; [. k8 h: s. [4 z& [# l. y
  31.       
    ! a6 Z5 v/ \' S3 U* \8 e% i  G
  32.         getchildren(components[i],indent+5);
    * g) q& k6 U( I
  33.       }  Z; e# ~% J, [0 W$ O/ K7 M
  34.       }* P8 N. s' M3 X9 \6 @! }) F
  35. }</p><p>static void do_api()( Z* c3 H! Q" i! J
  36. {7 @2 N/ j. w$ f3 Z; m
  37. //list the components
    ! Y4 H4 X/ e0 h, Y0 a- R2 E
  38.   Session *theSession = Session::GetSession();
      e8 k% y+ ^4 k, ~5 e( Y0 y% _2 U
  39.   ListingWindow *lw = theSession->ListingWindow();: E( b2 g. l3 T) Y
  40.   lw->Open();# i- c6 b* r& h9 E  ]2 A. Q
  41.   Assemblies::Component * rootcomponent;0 A* m# H; a) v+ J! K
  42.   Part *workpart;
    - Y4 n- A4 b) C" I4 A  U
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    9 {" k2 i& W- E' M/ O- X/ f; C
  44. workpart = theSession->Parts()->Work();! x0 E; K) k6 V) |# X- K1 v
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    : U/ U7 X, [' d+ }6 Q& Q$ i
  46. if(rootcomponent==NULL)7 R9 y% P  B' }1 e$ N" Y6 `
  47. {  
    ( P. c3 ^+ E/ e* S& r5 k
  48.     lw->WriteLine("The part is not an assembly ! \n " );  H) @  D: a' X2 z2 v: e
  49. }0 i% _7 Y7 c4 H5 B; W
  50. else
    1 L. R& R; D# c& \  `& b1 l
  51. {
    ; Y( W, p4 t0 Q/ i# k  v  {  G
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");1 i' O; p' X9 }5 I3 r
  53.   lw->WriteLine("The children components are : \n");
    & w. T3 ]/ a$ C9 ?  ?. m
  54.      getchildren(rootcomponent,4);
    & [' Z1 `+ W" {1 \8 c. g
  55. }</p><p>}5 o0 |2 h) ^/ Y* {& D4 d
  56. </p><p> </p>
复制代码

# B! c3 b5 k) u
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了