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

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

[复制链接]

2014-2-13 14:47:51 3552 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);
    ( q8 b+ w' ^+ @* ^" n8 P% _. }
  2.             tree_control0->InsertColumn(2,"Status",100);
    / E+ L. n; F% r9 @+ u/ c
  3. . h+ z# h" V( P& a
  4.                
    4 p  B% h) i# G* l
  5.                 - c+ D$ t& [" g2 h
  6.                 // get asembly name% I+ [& T' a6 k' |5 C
  7. / t: J/ Q4 }3 U$ o" F6 P# M
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    ( _" ]2 D1 u7 W, s* `
  9.                 Part *workpart = theSession->Parts()->Work();
    ' c( }( G( S: @: ]5 J: {0 Z! S
  10.                 // get rootcomponent
    $ y3 m$ x% K8 `1 ^* L5 k
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();7 U  [" i0 Q4 X% W2 w
  12.                 if(rootcomponent)" S3 L5 W! `$ S7 d* ^7 e4 ]; q
  13.                 {
    2 ~1 Q( T" X; i& Y- a
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());2 L* Y/ y' k: O; Z. \2 W
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);- X) z& d/ T5 I9 i) I9 s
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
    ! _3 T: ]5 z9 I+ v# ~7 g9 q
  17.                         getcompoents(parentNode,rootcomponent);
    ( h1 L  M+ Y0 F2 Z: S/ _- f6 y. p
  18.                   + }. t5 u* i  u( R! {- [
  19.                
    # ~% g# Z; `6 R! _1 I+ `2 m
  20.                 }
    - ?/ i/ n. O1 r! X, g

  21. 3 H$ t" B1 C5 [  }  e
  22.                 else
    4 a- r. g* _2 G) N6 o* d
  23.                 {" W/ o) E" T- A5 C- i
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());7 e2 O- A; _7 Q: x7 _5 i" s
  25.                         newNode->SetDisplayIcon("piecepart");
    * I6 u+ S. Y; |" n# ?
  26.                         newNode->SetSelectedIcon("piecepart");
    , L$ b% Z: Q5 @7 N6 Q0 d, ]' m
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);9 |5 a+ r! d1 a5 c" R8 [3 t
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");9 `) T! h7 T, _8 N$ D
  29.                         delete newNode;
    4 j- j) H, e' ]3 P, q) V
  30.                         newNode = NULL;2 @* k( ~. V. g- o2 R
  31.                
    8 r# F! Y, n7 X  y
  32.                 }3 P% |7 O5 l& f5 A& T+ C
  33. ' j+ Y+ e1 f1 s& j8 M& s
  34.                
    ) o) f& E7 m5 A$ Y% h
  35.         }
    9 b: i1 g" a0 N( v
  36.         % r. d8 B& ^5 a2 i- Q( m3 n+ b3 l* N
  37.        
    8 F/ o  a+ E! L, M: T
  38. 7 a5 f0 J9 q5 P* @6 t0 ]
  39. 0 w0 K, b" \. D2 i* u0 X0 y
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    + G; ^( _& I" K% @! W; H. q& A
  41. {# l5 Z& Z; @/ O+ ~
  42.         Node *getNode = tree_control0->CreateNode(name);9 \2 ^$ E* k# }1 q
  43.         getNode->SetDisplayIcon(geticon);8 v* I3 l& F1 w# Q# z+ k$ d
  44.         getNode->SetSelectedIcon(geticon);! w- J, G- W/ `) e9 S( J% e- G
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);
    5 k0 N1 j& q$ f8 E2 G
  46.         return getNode;
    % ~: `8 C- w( ]% |. h
  47. ! F, B5 c6 X, k' q/ W
  48. }
    1 j6 n, G% d) A

  49. ! K9 W' _: n' D7 V! j+ j- a% f
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)  j5 ?% _' t  }) R: k
  51. {/ ]! S9 R& _* B7 x: S
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());# l( A& @( Z6 D2 X
  53.          if(part==NULL_TAG)
    3 N+ C0 y* r' h
  54.          {" m, }# ?, {9 U* v0 k
  55.            return "Not Loaded";
    0 o; V$ ?! _0 g8 N, Y% @: |
  56.          }. f+ L3 w: @; m2 G: l$ p
  57.          else
    % l# x: O4 o) x9 S* ]* ]1 ~8 X
  58.          {
    7 @6 k2 v# C' j# \6 F/ W  @! \
  59.          if(part->IsFullyLoaded())" P% Z1 a& d; p% ]8 f/ k
  60.                  return "Fully Loaded";
    6 H9 z8 n( k# Z- e5 t( }9 |
  61.          else
    ) y" A( B! J, S. s7 v2 u
  62.                  return "Partially Loaded";
    $ O1 U$ w. J; j) c' p, k& ]
  63.        
    ( f, i% t, K# f6 Z
  64.          }
    * |4 v. C, y% H0 C2 s" V2 I5 j
  65. }
    9 ?4 u8 H' Z1 M$ m3 A: [4 i
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)9 V( S8 Y& {8 n4 p4 g2 @
  67. {6 j+ I2 c6 R3 L( A
  68.    
    3 l# d8 |+ E* e+ R
  69.            vector <Assemblies::Component *> children = root->GetChildren();
    ( k$ F- @3 a. d3 f/ n8 O
  70.            for(int i = 0 ; i < children.size(); i ++)# `1 u9 \  a# B- p
  71.            {
    & f1 `# x% c" y2 L
  72.                    Assemblies::Component *com = children[i];" ]* L( o, R& @: `  D5 Z' y& ]. y
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");
    ) S* @' L( a& l' I4 c
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));, Y$ L! t  s, w6 o7 \- d- Y
  75.                    getcompoents(newNode,com);
    4 W! K* O4 Q! i4 a9 ?! w
  76.                        
    0 y$ o1 i8 q- F0 j6 [
  77.            }
    8 n) y' I: m$ o) ?6 }
  78.    
    $ v. z  g- s& f% [; r2 T; ~0 w( Y& T

  79. ' L/ `/ B3 f8 D% C
  80. % P$ _1 c% l2 X4 L& i0 E# y
  81. }
复制代码
# y" I  c( A' @& o# V
模拟装配导航器treelist代码分享--树控件的使用
& x2 l- D, v7 w! i- Z" P' i$ A" t: L2 s5 b( @6 g" }/ M

# ~( O+ n. |' Z& ]" u* A; Z1 o6 G# @$ z* G  N: Z# J# D/ f9 E

% p& f, X" q& W9 P- v
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了