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

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

[复制链接]

2014-2-13 14:47:51 3559 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);
    4 g" j$ h2 X9 W1 m$ S" V
  2.             tree_control0->InsertColumn(2,"Status",100);/ |* V5 \  _7 s3 O

  3. 4 K$ G  c- v1 O) T7 }9 S
  4.                
    ) ]) x! F% b5 \+ i4 B& {
  5.                
    + R( [9 J2 r( u& X) a9 A
  6.                 // get asembly name6 J; X% e* ]1 I2 Q
  7. $ q6 x2 \" p; W
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    * B( k! s  Y" i. y
  9.                 Part *workpart = theSession->Parts()->Work();' c3 g( l0 n* B
  10.                 // get rootcomponent6 j7 }+ K! ]# d! T; s
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    - |! }- U  \; z: B5 @( e+ a
  12.                 if(rootcomponent)3 b5 i  x+ P. D( b" z9 p4 V  k
  13.                 {+ S+ p' k( l9 T' G. m" x" O; L2 `. F# d
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());9 x1 K6 J" ?4 \$ B. Z  F
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);% k* f3 [. V7 s8 O
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
    % o- Q+ R5 M1 c6 P0 m
  17.                         getcompoents(parentNode,rootcomponent);
    ( C) a4 q! C3 [6 u5 Z6 P$ _
  18.                   
    ; z# X/ e* y8 v' \& @
  19.                 - X3 ?# k- U; W/ i
  20.                 }! I$ D9 r# w: q0 e) }: v5 f
  21. 7 K6 z$ m# n- r  V+ c
  22.                 else* [' }6 n) ~1 `6 n$ ]2 [) A: v
  23.                 {; W' y, d) d6 h% [: t& R0 S; ]
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    # s1 O+ p2 f* m% b& g( @' X
  25.                         newNode->SetDisplayIcon("piecepart");( \* f- ?0 b, l- K1 e
  26.                         newNode->SetSelectedIcon("piecepart");  h; a1 C$ H1 W0 ]! l  N2 R# B9 X
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    : y& i. W- j9 f! R4 ^  t  w
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    ! o/ }4 {, T+ C0 v+ E
  29.                         delete newNode;% s/ [0 e! |- r% J+ ~
  30.                         newNode = NULL;3 R4 C5 K' B# ?9 @0 P3 R1 p
  31.                 - V! W) Z, Z& D7 M+ x
  32.                 }7 b- u6 R- G! q* j5 @

  33. . |" B9 `$ [" [/ R  Q5 ]$ f0 F: U
  34.                 $ A2 _% l9 A# x& ~$ i
  35.         }( }6 `0 k8 ~  P1 X9 T
  36.         6 y  r( \: Y8 c# Z
  37.        
    & K' R3 ~) u% j) {- [& p$ z
  38. . R4 Z) S& U+ z0 j& L. ~( s
  39. & T3 D2 s3 j9 [  _
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    # Y9 Z: p5 e3 v- U3 `
  41. {
    . h8 C* g4 s" s9 j4 H$ s9 s+ O3 G
  42.         Node *getNode = tree_control0->CreateNode(name);& y" j  T$ u& [; n& L
  43.         getNode->SetDisplayIcon(geticon);
    / ?) R& l, o9 v  X( X
  44.         getNode->SetSelectedIcon(geticon);
    - F1 J+ @( T2 F  k: u
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);
    : l- j8 E+ O, y
  46.         return getNode;
    . [. `7 j8 i5 d

  47. * A6 e: j/ F* u- m6 O% x  Q2 f( b
  48. }
    - b& B4 M+ O! S( a* o' l
  49. * ~0 ^3 K+ m6 `
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)2 x/ p5 g. s; U# ~
  51. {
    ' M: R% A- _% @3 t# C2 u% Y
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    ' h0 G' q) Q& j1 P/ H3 Q2 i
  53.          if(part==NULL_TAG): J2 e8 j& `# \  w0 z
  54.          {
    5 a" M) n7 `- o' y# v6 B. @. v
  55.            return "Not Loaded";+ j5 V6 a" s) U, `
  56.          }
    5 w6 c+ |) c! O& P& g3 z) U
  57.          else% r2 f" k( u  q" a- z2 k/ \! `
  58.          {" Z5 x" ~+ ?4 f$ _
  59.          if(part->IsFullyLoaded())6 e  w2 y0 f3 i& M7 Q$ h5 x8 X
  60.                  return "Fully Loaded";
    1 ~! E/ A$ E$ Q; p/ J9 p0 D6 W
  61.          else  K5 ^  b, G5 h) Z8 E/ ~3 [, [2 ?) i
  62.                  return "Partially Loaded";
    % F' w# y# M% o+ Q
  63.        
    , U7 S* t& h( C2 o/ L' I
  64.          }5 u7 G" R% v% f0 R4 z% l$ r
  65. }4 j7 i! ~6 u5 T8 ~4 A/ \; P+ k
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    # k# ?+ X: R/ \8 o
  67. {( `" T9 O+ b$ Q3 w  J- H
  68.    
    8 x* L5 c3 x7 T. |
  69.            vector <Assemblies::Component *> children = root->GetChildren();
    1 n5 V; ~+ p# S( W% `
  70.            for(int i = 0 ; i < children.size(); i ++)+ d1 I; ]0 u1 s$ n$ y2 q
  71.            {
    * ?& f! E1 s/ J: L3 b
  72.                    Assemblies::Component *com = children[i];6 n' m' G% o, h) `# j$ X  g6 _
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");
    - t* r5 \+ k. R1 E( e7 ]
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));
    8 v7 K3 h* E" H# C$ h& H/ }5 ^
  75.                    getcompoents(newNode,com);, _  t/ N& _0 ?) ?" t. L. L( E
  76.                         % B! @. E# Q3 r5 g5 C; a2 q
  77.            }
    % A/ z( \* }5 b2 S# z; f9 d) b
  78.    
    8 u+ d7 q0 A% D2 n8 U2 o5 |$ f
  79.   E# Y5 A( P1 z2 @/ @
  80. ; ~# b& \. N! G% ]
  81. }
复制代码

$ |* e7 j# F7 ?* u7 S4 P- ^/ j模拟装配导航器treelist代码分享--树控件的使用
  s2 D4 b7 Y1 L9 ^2 k+ B! B4 U. d. P( ]& d" R0 K% w

4 b% M8 M& v+ j/ s5 F8 W: A5 D
4 R( E  k3 L  q. Y, i) w  q& f# V$ o7 V7 o4 Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了