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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x

( B# a5 T* l! d" e" }# k7 ]! @& QNX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
7 X7 v0 d/ k' t9 E- v) L% D
- f# M; Z' }( p' f( Y

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
% \, i0 C6 [9 [' Z' _
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)
    & M, J/ p: @- U  C/ D7 m: b
  2. {       4 S# x) l3 N" h: i# O
  3.   5 O3 O+ ]0 j( f* o
  4.   unsigned int ii;
    ) r( P, q  ]- P0 w. b# i" p8 R
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    ( h: R7 V* U/ c, J( k! b  \: Y
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");) _8 r* F. e7 G2 Y' K8 Y0 N
  7.   std::vector<Assemblies::Component *>components;+ ]: i+ ]) R" J0 ^% L' L0 O
  8.   Session *theSession = Session::GetSession();
    / u, K9 c2 R/ `( o. d0 J
  9.   ListingWindow *lw = theSession->ListingWindow();
    ( `2 b0 G$ O+ P& B% n* R! n! B
  10.      lw->Open();
    , X1 \7 c& M$ a% J& n4 ]  _$ l0 \# j. q
  11.   components = rootcomponent->GetChildren();
    3 Z8 P: i, j; t) d# H5 e* K
  12.       for (int i = 0 ; i <components.size();i++). P3 y. ~; ?9 d- Y& @8 i
  13.       {
    1 W( B1 C, C2 b. e" M
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    " f0 A: k  B8 Z
  15.      1 {& l+ }: s" |( P8 A
  16.       if(childpart==NULL)
    4 r) v7 g+ \/ i8 q0 h3 n) I7 `
  17.        {2 E: s3 y8 x. ^2 l. E8 Q
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");5 Z: e6 M5 L9 r; z; s1 ?
  19.         }
    & ^0 d0 `; C  N5 \$ V5 b: k
  20.        else * g7 a) F/ Y6 a
  21.        {; O4 M5 X" W% @3 K0 |5 E
  22.         if (childpart->IsFullyLoaded())
    9 f3 d: K1 \. ]& [8 @9 m7 U
  23.          {
    ) l( e/ N$ z1 c0 P! D- D
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");
    7 [5 d$ ]9 t& M4 E9 M5 w$ U8 v/ G
  25.          }! ~1 f9 Y3 t0 o. N- u8 V! R1 a
  26.         else    K8 j" {: g6 ]( x. R
  27.          {4 p9 ?% U! }0 Y: B
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");
    7 R2 q$ {. ^( M4 t; m& ~/ v
  29.          }
    0 L  @# F# g' f: @
  30.         + ^  W% L+ r1 K* [8 b) f
  31.       8 l  U( ^& z' o1 {. C
  32.         getchildren(components[i],indent+5);
    3 u& }" D* `# g) z
  33.       }" L4 ]; W) C: L" F  D' g
  34.       }
    ! o$ b' q1 t2 H* b' T# ^
  35. }</p><p>static void do_api()/ e) Y; i! b8 W; Y$ `: m
  36. {& W. M( f! D6 l
  37. //list the components
    # `5 _& w6 {+ l' P" C
  38.   Session *theSession = Session::GetSession();% Q; _8 l1 z; t  o2 V0 }+ N
  39.   ListingWindow *lw = theSession->ListingWindow();. {+ M" g5 |! [" O, H: L0 p4 F. i
  40.   lw->Open();- N+ i( W* v' ^4 n
  41.   Assemblies::Component * rootcomponent;' p4 x3 M* W0 y
  42.   Part *workpart;5 o+ P0 B; ^* k  d, T- _
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();  ~* B3 m0 e7 n) ~  a
  44. workpart = theSession->Parts()->Work();3 h9 w- z. k# J. m! P5 ^' x6 K# K
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );$ g# ]" G, Z/ f9 n( ^
  46. if(rootcomponent==NULL)
    5 g, f$ w# J3 W. b( }- I
  47. {  
    , b" O, f2 k' D/ Z
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    * y+ d# g* ]4 z% z& K3 ~8 i8 F2 K
  49. }+ j, ^' G, [2 x" V  b7 N- d9 h7 Q
  50. else
    % k7 J  B9 W1 M& {
  51. {
    8 ]+ ~1 m5 S5 m
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    4 N$ s! t! I/ {7 _* s7 q" R
  53.   lw->WriteLine("The children components are : \n");
    1 v1 k& z: M" J5 a6 l* z
  54.      getchildren(rootcomponent,4);
    / Q- b1 z1 l( U
  55. }</p><p>}
    * D/ d% u! z  h  E8 ]* Y4 A) z
  56. </p><p> </p>
复制代码
% X: u" R7 e6 L2 m/ 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二次开发专题模块培训报名开始啦

    我知道了