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-国产软件践行者

[二次开发源码] 模拟装配导航器treelist代码分享--树控件的使用

[复制链接]

2014-2-13 14:47:51 3223 0

admin 发表于 2014-2-13 14:47:51 |阅读模式

admin 楼主

2014-2-13 14:47:51

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

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

x
  1.                 tree_control0->InserTColumn(1,"AssemblyName",180);0 `3 p8 M( [1 f+ ?
  2.             tree_control0->InsertColumn(2,"Status",100);+ a" i! F8 y% b

  3. ) ~. _# s* v, E! h) p- @& w& P7 @
  4.                 : v& j; {* f9 e, J3 b
  5.                 : l9 A6 k& _. l) U, r
  6.                 // get asembly name
    * S5 E+ Y) b1 L+ B( r

  7. / V2 a& N/ l# j7 c
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    ( K. m8 K- ]* b
  9.                 Part *workpart = theSession->Parts()->Work();( F5 w7 s2 |4 d/ X8 o1 }- X- o
  10.                 // get rootcomponent
    # P) @3 _# n1 `, M
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();' P) }* k) |- z6 G9 p+ K4 l
  12.                 if(rootcomponent)8 f0 k9 e8 b) v* ^
  13.                 {$ W5 j- ?7 Z( B! d' _% ~
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());: x0 E, m9 n# p" w5 {/ R7 n" {* k+ V
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    6 p0 i; p: }$ v
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));" w& j5 K7 s" F  ]
  17.                         getcompoents(parentNode,rootcomponent);
    , h! Y$ V: x* k2 n2 {7 ^8 v
  18.                   
    - B- S1 I/ I- d# j  ~% a: D
  19.                 3 M. _8 \" i6 k
  20.                 }
    7 r7 i3 l4 D& Z& h& F4 y( p" w
  21. % s' D! a. s9 H4 m
  22.                 else9 C# k7 j. x- E
  23.                 {
    . N  C# x2 s0 s5 J
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    ; }6 o* p: C( T/ e/ ~4 u4 `' |" ?
  25.                         newNode->SetDisplayIcon("piecepart");0 R( I( e6 a; P' n' }+ @
  26.                         newNode->SetSelectedIcon("piecepart");
    2 J+ w* r2 Y. _: h7 J) ^5 X
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);% Y" B5 S0 `0 S* @8 m
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");/ x2 {( F* v9 P9 I# d0 C! F% Q
  29.                         delete newNode;) P  q6 a6 ]) A0 v& O8 ?4 p
  30.                         newNode = NULL;6 e  E# F( x0 ~% k- r9 w* ~
  31.                
    . z6 U8 g: F) Y, N5 ~# `
  32.                 }
    * ]5 Z6 K5 M; f% @

  33. 4 C2 F# w1 J' p4 Z& z3 v  h3 |& f
  34.                
    5 M+ _7 N( O3 b3 h7 |# p
  35.         }) Z5 S8 h# [  l. X% g
  36.        
    1 n' f" v9 ?8 S% v& G+ ~" ~/ }
  37.        
    - q+ ]0 ~3 s  E/ i) h' \( V+ t+ O

  38. # e0 d/ [  x8 ~' h. q: s- u9 W

  39. + w( k+ V( t8 d2 d7 X1 O: b
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)) T8 U6 Y/ z/ \2 m
  41. {
    $ @9 x4 W3 G9 v" L6 M
  42.         Node *getNode = tree_control0->CreateNode(name);8 E0 I: F! Z" g7 _. @
  43.         getNode->SetDisplayIcon(geticon);
    0 u7 |# O+ l  B" l; L
  44.         getNode->SetSelectedIcon(geticon);6 w1 x7 z7 O$ ^9 s& o* g
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);& ]5 l) O5 {. z7 M% P$ h" v
  46.         return getNode;/ G. ]" s9 h8 }. l- N3 D1 X0 W
  47. ; P3 ^3 e7 |7 p2 ~4 e' d
  48. }
    . S2 n$ x3 F; M; Y- C& k" A( ~

  49. ) C) o0 W$ f0 t  O
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)! C2 p3 z, m9 E! C7 u; b* u2 l: D
  51. {
    1 C! K" u8 V/ G
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    # s; l" O: B* p
  53.          if(part==NULL_TAG)
    ; ]3 M# J& h' m
  54.          {
    + ~8 I/ ~" T% |% \9 R9 ~6 ]
  55.            return "Not Loaded";
    % l; u/ [: y: r4 Z4 r, o! W/ `
  56.          }7 k( b0 x) T, w& S2 T
  57.          else
    , F* V; u3 m; y$ [! B
  58.          {
    " B; O: h0 j  m" x
  59.          if(part->IsFullyLoaded())
    : T  v( N7 B/ u- s
  60.                  return "Fully Loaded";
    8 a4 y9 ^4 m8 C; Z- k2 I" K
  61.          else
    6 A  V- l* J( b' D
  62.                  return "Partially Loaded";
    . x% I8 s3 q+ k  i7 y2 I' m. e
  63.         $ O* @$ W- ]" [. o, V
  64.          }
    4 e+ A0 ?7 A5 F5 M' Y. e# ]" V
  65. }
    : V' |5 M: }1 \" u* z7 j
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root). W4 ~6 k8 U% Q. L* P
  67. {
    , S- |3 p3 v* U# ^$ J  y/ f! \
  68.    
    ; D1 F: J' j" W1 ~4 r
  69.            vector <Assemblies::Component *> children = root->GetChildren();+ B0 g! g! S7 Y, M
  70.            for(int i = 0 ; i < children.size(); i ++)  g8 ]0 H# I1 Y" b
  71.            {
    / n/ s% y: F4 c, A- E5 |  @0 j
  72.                    Assemblies::Component *com = children[i];
    1 D: N+ ?. [8 [. v7 D1 b4 F
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");/ p8 V6 M; r6 F9 w- i1 N1 l) ^: B
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));
    8 ?* a* D+ \+ D
  75.                    getcompoents(newNode,com);
    ; x. l" Y' D  I- O
  76.                        
    * P+ O: R. g: ]5 r: y
  77.            }
    $ |+ L' r, u! `6 `
  78.    
    $ E6 b5 H) S( z' h/ p9 t" B* n

  79. , j! g8 L# i  s& z4 w6 S/ `

  80. ! P' n! p7 {/ Z' ]% [
  81. }
复制代码

0 N2 ?1 \; y. }模拟装配导航器treelist代码分享--树控件的使用
+ g( t0 N& W7 Y/ S2 T
% A# y  ]4 i; O" Z1 s$ H$ S" i2 A, [9 e  |, [- I

) o; S) }; w+ P3 r3 v" R. `& }7 h. K. \5 N
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了