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

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

[复制链接]

2014-2-13 14:47:51 3543 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);
    * h( }! K) J5 m/ g1 i
  2.             tree_control0->InsertColumn(2,"Status",100);
    ; D: `' `, R. X" X  |1 v' c# s4 `
  3. % ?$ U2 {. `1 I" e; [" _
  4.                 - {& f3 N8 ~1 s  i3 Z( q
  5.                
    % M: s8 \* o/ A
  6.                 // get asembly name
    ( c1 |: A" Q0 a- u  m
  7. , C, N6 e) p! y8 m
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();9 d! Z: d/ h2 k. q3 ]3 q
  9.                 Part *workpart = theSession->Parts()->Work();
    - M. h) Z7 b% z6 T5 k+ e
  10.                 // get rootcomponent
    + ~# K. x. b% p# P2 O7 y
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    , M6 @. d, W  D/ O9 k: d
  12.                 if(rootcomponent)
    # j$ I' j1 m2 e( B7 y0 g
  13.                 {( R) l0 i& f" y$ |
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());, s# F- \* l7 s7 _1 B( h. S
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);% Q  P9 D" D' @7 V
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
    + A. p' n3 z2 Z, b3 H
  17.                         getcompoents(parentNode,rootcomponent);
    - z/ u# E9 d' J0 V6 e! e
  18.                   3 J8 N" s, ], t% W$ {' h2 O
  19.                 2 O1 ?7 S/ Q% y$ d
  20.                 }  X. Q, V- ]0 B% m% P
  21. ! m; @1 Q3 f. ~3 @/ y! J) J
  22.                 else
    ( ]# a" k& ^2 V, n1 \/ M
  23.                 {
    # E4 H( @3 v6 d/ O2 z) z0 I
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    8 @+ u8 z0 q. }5 }3 k" ^
  25.                         newNode->SetDisplayIcon("piecepart");
    $ ?" U* E* v! R1 P( r8 p0 }! z  e
  26.                         newNode->SetSelectedIcon("piecepart");
    . ~( |% C8 X: p  U, w4 \* E
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);5 m1 E5 F6 y/ K' @
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    9 G8 o7 {8 o, @4 J0 N' T9 c, e
  29.                         delete newNode;7 P- I- \* }0 @" j' w4 r
  30.                         newNode = NULL;5 S* U$ u3 q- S+ m) X4 j/ N
  31.                 3 D/ Y; t: |9 @0 d! O" ?
  32.                 }
    / e2 H% ^4 ?3 m& D

  33. 6 K9 h8 m. i$ Y& D- T/ a
  34.                 6 v# {! B; Q& S. a8 Z: j4 a8 V
  35.         }2 N, p$ _: g1 J! }7 U. V( k
  36.        
    ' n4 V! i/ B) ], A
  37.        
    6 _+ s% j0 C3 U5 _1 l

  38. % y! S; s' W; K3 |  c
  39. 8 Z9 l& z1 x4 _( M* p$ Y+ \( f
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    7 O2 O2 K/ J8 I% g: C& G1 v: U
  41. {
    & `1 ?/ `. l$ E0 _$ I9 a. |
  42.         Node *getNode = tree_control0->CreateNode(name);
    & @5 d& n9 V% a  T6 A
  43.         getNode->SetDisplayIcon(geticon);+ N. y6 Y1 Q  h/ V
  44.         getNode->SetSelectedIcon(geticon);# I, c5 M# A# K" {" R. h8 J
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);
    * L( ]/ j  x$ J* i) J# A
  46.         return getNode;5 t3 z5 B& @, a$ i9 ~& a

  47. 0 [! i! t# w7 }5 K& r
  48. }
    8 {7 S( ~; t  O

  49. + v' r- G$ m$ J; Y  Y4 @
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)
    , b4 q5 ?. X6 K8 q6 n% f
  51. {
    9 u+ Y+ O$ H8 p  A2 _
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    % J9 L' g8 F! C6 q5 \3 k7 N
  53.          if(part==NULL_TAG)/ x7 T2 A' T5 v/ N/ k& x
  54.          {
    / m$ Y) \  s$ @: o
  55.            return "Not Loaded";) v* U( R" ~# R, l3 v
  56.          }
    ( B2 h& p5 ?, q# N" w% l; w) L
  57.          else. ]3 D9 `4 m5 }: f
  58.          {
    . K! P& s* {' X+ d
  59.          if(part->IsFullyLoaded())* K- z' L# O7 u9 {2 X/ o: g
  60.                  return "Fully Loaded";" y+ c' @* e9 c5 F! e  k
  61.          else% R+ \) r" {: ?& Z" n2 H) Y2 }  i
  62.                  return "Partially Loaded";/ n) J: n% b$ d8 _3 W6 R
  63.        
    + ?. n% C$ W  d- [. i* w( D5 r2 u# n) @
  64.          }. H* M3 V4 ?6 o+ Y* ^
  65. }2 {4 Q4 c& m9 U  {2 |. y
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root): D! r3 i/ h9 e. s
  67. {1 Q. m+ U; u1 J9 z& [' a6 F; h  o
  68.    
    ! f* v; V% n6 \" Y' G: _# F! ^4 ^; C3 @
  69.            vector <Assemblies::Component *> children = root->GetChildren();
    " n' s& j1 t4 Q/ p" k' h6 T
  70.            for(int i = 0 ; i < children.size(); i ++)* y3 `7 J) L* P
  71.            {5 D' F* ~  N" U6 e
  72.                    Assemblies::Component *com = children[i];' E; f+ J; C+ k+ X
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");
    3 z1 l) K7 T8 V2 P: u# p8 ?$ u( [/ U
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));5 }( Q# T+ a3 v' q
  75.                    getcompoents(newNode,com);
    $ _9 i+ P2 I3 x
  76.                        
    4 g2 N! P6 }! [) V
  77.            }
    4 u( a: X- a. D3 Y: W
  78.    / x: Q' u& X* M9 _

  79. 9 y* o3 q3 g3 f8 |

  80. % E& L, X# I5 D5 `; T, ~3 q& g
  81. }
复制代码
  r/ i0 S9 L5 `7 K  g0 v
模拟装配导航器treelist代码分享--树控件的使用$ k5 g" E$ B" J& Z) _+ F, @  Y! @

9 n2 z+ F0 Y! ^- w& I; y6 b) g8 w* {, ^, }* V

5 l0 Y2 T: M  B0 e0 p: e1 S1 M$ ^* _" W/ H) g% J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了