PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

mildcat 楼主

2013-12-4 16:36:55

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

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

x
$ A% ?, d0 D* t: d3 ]9 l
NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
; W! D! w8 S" |& z
# N) x' n. h, x9 \& B  H7 ^, @6 e

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

NX二次开发源码: 使用NX OpenC++查询装配组件并判断加载状态
0 [: p- p) Z! \5 y3 h+ B
  1. <p>static void geTChildren(Assemblies::Component *rootcomponent,unsigned int indent)( Y5 M( c$ D: `& N) i+ b" r
  2. {       1 M! }9 }# R+ m$ @/ q+ o* R/ W5 M
  3.   7 ]& C( |& i* ~1 u( y
  4.   unsigned int ii;. O. u- ^) s$ M1 a1 V' Y' d8 g
  5.   char space[MAX_LINE_SIZE+1] = { " " };
    ' c  A4 k( r( P! W  k$ a
  6.    for (ii = 0; ii < indent; ii++) strcat(space, " ");
    & l: {- S1 j9 K- I: v- ^
  7.   std::vector<Assemblies::Component *>components;
    6 }5 J$ u( b% W6 H& u
  8.   Session *theSession = Session::GetSession();
    ( @0 p# @& M2 D2 Z; Z8 ^
  9.   ListingWindow *lw = theSession->ListingWindow();6 A( p5 Q, v9 A' N' `8 J4 G9 H3 I
  10.      lw->Open();
    5 Q5 g7 `* R& h! a; U2 ~
  11.   components = rootcomponent->GetChildren();
    ; k8 n; x6 p  U1 p/ W' V3 S: P
  12.       for (int i = 0 ; i <components.size();i++)
      c4 I2 a' d! b% G, l
  13.       {
    8 ^$ U* f9 u% p3 `
  14.        Part *childpart = dynamic_cast<Part*>(components[i]->Prototype());* x/ _& Y1 B5 T1 ?5 H6 q
  15.      ' ^8 D' w: M, j/ l/ N0 i/ \# X3 Y
  16.       if(childpart==NULL)9 I- b  s5 a- t) y
  17.        {
    0 r4 _$ X' Q  M% ]3 r, s8 E
  18.         lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: not loaded!");
      j7 L3 w1 x9 z/ X6 J. P6 A3 D
  19.         }
    3 D* A+ A& ^& ?6 c, j# q- t
  20.        else
    4 f5 ]4 R% Q8 c8 y9 \
  21.        {. Y2 Z0 Y. c$ T- s6 p" v+ L
  22.         if (childpart->IsFullyLoaded())* Z' O) K& N1 X: w; v
  23.          {# O* j0 @, |8 x/ u
  24.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsFullyLoaded!");, R1 s* o2 S5 g+ {, p8 P
  25.          }! n8 T5 S( N$ \/ U* U
  26.         else  
    : t) g5 D4 y) Q* T' H! J( y$ W
  27.          {
    5 L6 H. z6 e  [$ N* {( J
  28.           lw->WriteLine(space+components[i]->DisplayName()+"\t"+"Status: IsPartiallyLoaded!");% P0 N- ]9 F* w
  29.          }
    - n' [9 h3 o" A
  30.         
    : M! k7 d- p5 K! o
  31.       
    9 W+ u; g9 K9 t
  32.         getchildren(components[i],indent+5);1 ?! N: r$ r: n. Y3 t
  33.       }5 E6 p* Z- `1 ~( Q) b6 M1 e+ L
  34.       }5 }' t( V$ G& H0 W: {: B) u
  35. }</p><p>static void do_api()( i7 t8 W7 z8 m1 G
  36. {
    ( j9 x1 ^8 _( ]
  37. //list the components3 f0 X$ X6 A' b
  38.   Session *theSession = Session::GetSession();2 r1 j- t8 h" N
  39.   ListingWindow *lw = theSession->ListingWindow();
    3 a) r; j' l0 Q" v8 B! ~
  40.   lw->Open();; A7 C: s" }; j9 c# g) D
  41.   Assemblies::Component * rootcomponent;
    5 \. l. ^) o) s4 C5 A# w% s
  42.   Part *workpart;% B$ {- M1 S  }  U; i3 g
  43. rootcomponent = theSession->Parts()->Display()->ComponentAssembly()->RootComponent();) H5 Y8 x/ w4 r
  44. workpart = theSession->Parts()->Work();
    " T  i4 ]1 ]4 d: a! P$ U
  45. lw->WriteLine("The workpart is : "+workpart->FullPath()+ "\n" );
    " d7 p) R: }; P& F- b% e. |, E( X
  46. if(rootcomponent==NULL)
    & j' i/ i+ C* H& B8 N
  47. {    C2 z3 y& T6 ]/ O% Z; r
  48.     lw->WriteLine("The part is not an assembly ! \n " );) T# K# w8 r, x
  49. }4 P( i8 v  D+ T3 G- x/ r! c
  50. else
    # V' |- a/ H0 c1 k/ S( H
  51. {+ n6 \% @2 D2 a# H, O! ~
  52.   lw->WriteLine("The rootcomponent is : " +  rootcomponent->DisplayName()+"\n");8 B; p) I9 }# c1 Y, A+ n+ G3 A
  53.   lw->WriteLine("The children components are : \n");
    3 M5 T/ z  v2 l* M$ O! `
  54.      getchildren(rootcomponent,4);, Y& ^# i8 M! t; ]5 v+ n/ S
  55. }</p><p>}6 j: o. a0 R8 k; b4 j2 ^% {1 l
  56. </p><p> </p>
复制代码
6 L; l1 z8 s8 r7 {) f: H
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了