PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
& W8 ~6 ~& g, F! N5 }7 I5 w# X
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态; Y1 J/ S& Z3 |/ X

6 K) i; l0 |1 i. {

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

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

+ _' o3 Y$ c( }2 s
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)6 D1 n% S! {. b* d. }6 J
  2. {      
    4 c+ u! ]) \9 m$ n! ?1 ]2 v
  3.   
    ; h# u3 U2 M1 M
  4.   unsigned int ii;
    3 u2 L  e- R6 v6 h) y# q
  5.   char space[MAX_LINE_SIZE+1] = { " " };0 F( d3 u1 P& d
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");% q9 k- c1 b2 H, v# u7 M1 L
  7.   std::vector<Assemblies::Component *>components;
    7 p5 h4 J# A* [+ z# W3 q% B
  8.   Session *theSession = Session::GetSession();4 z8 g* P7 S$ {& C- `  X
  9.   ListingWindow *lw = theSession->ListingWindow();( L! a. e7 y& v$ u3 }
  10.      lw->Open();
    1 ~3 C0 m. j2 h+ v" ~& r/ O; G
  11.   components = rootcomponent->GetChildren();: Q( R" m  z" T
  12.       for (int i = 0 ; i <components.size();i++)+ a% ~4 B; }0 J) @
  13.       {; q  X0 z3 \6 G4 l
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());
    4 q+ D8 o: E& u
  15.      0 ^* K& c1 \0 K2 s3 J. j
  16.       if(childpart==NULL)
    " y4 j4 J% r: h) [9 {9 {- G2 H
  17.        {8 U( k) z# s5 a* T/ u
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");, t0 D) A3 S" D' O" K
  19.         }3 y8 I$ h9 t4 `+ N/ h- l
  20.        else " H( f) `- d9 G# q
  21.        {
    1 W. |! u0 b8 Q2 f3 W1 z& p0 T# h
  22.         if (childpart->IsFullyLoaded())
    6 V5 k0 ~- ?9 b$ U' @7 J  A
  23.          {
    # X" O& {+ w  ]5 D  o6 u9 W
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");+ H3 [- i+ ~% i
  25.          }
    " Q3 s  t6 i% O* K+ R  J
  26.         else  
    7 P4 c0 F8 \1 v( c
  27.          {  w; }- `& R9 H5 p- S. s
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");- i/ }. _, e& x) x' H2 F
  29.          }/ m* e4 `6 o9 G4 S  @
  30.         * K2 k, I5 s" ?
  31.       
    ) \& t! V3 P' e
  32.         getchildren(components[i],indent+5);
    4 ^$ I6 c, d6 M) V! B2 h
  33.       }
    # S" b! O" ~: ^/ W3 B9 s- [
  34.       }
    / z/ c9 T+ I- @5 k/ u8 _2 N& z' J3 x& h
  35. }</p><p>static void do_api()
    3 r: W; M5 c' ~+ U5 N9 R
  36. {
      x0 @8 n' U: \4 y, d9 U# L2 n9 t
  37. //list the components
    9 S) }3 n; o- f' d( a7 O% v8 `4 V
  38.   Session *theSession = Session::GetSession();+ [4 u7 C6 k, `( Y' _3 y- u9 B
  39.   ListingWindow *lw = theSession->ListingWindow();
    0 y: l% T" m( }8 C. a
  40.   lw->Open();
    + y& Q1 |, \& T7 h5 k
  41.   Assemblies::Component * rootcomponent;
    4 P$ _8 l; `% H8 a3 L
  42.   Part *workpart;
    & A% E& {8 ^8 f- W0 p! L: P+ s
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();
    4 \  O* k4 U- K2 B
  44. workpart = theSession->Parts()->Work();
    # D! V  Y0 q+ K+ M8 k' {2 S# O7 p
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );0 U1 z# V9 P! o, p" [
  46. if(rootcomponent==NULL)8 v! q6 j: j1 X
  47. {  
    + a- P5 k" e4 F6 H1 ^
  48.     lw->WriteLine("The part is not an assembly ! \n " );
    2 L0 e4 F$ ~6 V- J+ \4 q. \: K& G& ]! {
  49. }) ?' V: y  A+ a9 t* J
  50. else
    6 [6 \8 p* N% h& e# H, H
  51. {
    % _3 m, O$ K" l
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");
    & p$ g6 C) |+ O& {7 ~' I3 \6 Q3 }
  53.   lw->WriteLine("The children components are : \n");% i! ?; V+ p, o- g
  54.      getchildren(rootcomponent,4);$ ]# I0 q! y) M( d; e2 r$ g
  55. }</p><p>}
    * u; F% J( ?7 }. p
  56. </p><p> </p>
复制代码

/ ~2 L" C) Y3 L3 W7 C2 |7 j
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了