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

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

[复制链接]

2014-2-13 14:47:51 3586 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 U& y: C, ~  h* t; d2 |9 T$ B% I
  2.             tree_control0->InsertColumn(2,"Status",100);8 `0 s& U; E( k" J  D) b
  3. 6 R6 s9 j  P3 M; D) |
  4.                
    , M% f. ]0 o: y) B- H4 U  M
  5.                
    0 U) S( w. T8 h7 P
  6.                 // get asembly name% J" L& s; L; ?/ ~" b$ x- K

  7. & l: G3 `( E, Q+ Z. U+ ?
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();3 K9 z4 @1 q4 j9 j. m1 m: @
  9.                 Part *workpart = theSession->Parts()->Work();
    ( ]& K9 j2 C, h
  10.                 // get rootcomponent* }. z4 G+ b# [3 @- f
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();1 R8 B7 z, J$ A; x( @+ c
  12.                 if(rootcomponent)
    2 K/ h# [+ M" U' ^( c
  13.                 {! f2 G+ D# Q0 s# {7 [: f( \# l5 |
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());
    ' Q. V2 o# f1 p  ~! M
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);! v+ a4 J- R. J1 M1 a- ^8 _  H
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
    ' R# w! ]  e' A% x% c
  17.                         getcompoents(parentNode,rootcomponent);
    * l, }2 [0 K( _# _' v0 N
  18.                   
    " B6 W! ~2 `  q; ^8 f/ o7 s
  19.                
    ! G* i. h* M& ~. r6 W9 r! C
  20.                 }
    9 w. S2 P  w1 n: ?% u/ s' k7 f

  21. ! g+ W. X. S/ k7 E2 c% o
  22.                 else7 [$ I4 G$ S7 K2 _. U
  23.                 {9 k& o" o( p/ ]  x2 D" E- v3 H
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    8 g$ ]- F5 u8 V3 x7 [
  25.                         newNode->SetDisplayIcon("piecepart");
    ; v, w' m. D$ a
  26.                         newNode->SetSelectedIcon("piecepart");7 x7 y, ~, i, e! Q3 w* u
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);  r* l; T; o; x( D8 d
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    2 j# {! F6 N. N9 [) u$ y" `
  29.                         delete newNode;2 v8 W8 I5 n! Y; `4 I( a; G
  30.                         newNode = NULL;
    / T6 @( ~6 h0 O% J
  31.                 ! D" w! @$ X4 p, N* X
  32.                 }8 A, g* k3 N1 b8 w

  33. - D) U  D" ?# o& s+ O- W: `
  34.                
    . }4 A$ Q# ~, ?2 _& O
  35.         }9 ~/ t0 C$ x: C
  36.         * L$ r% G( ]8 b/ v, Y
  37.         ! }  G/ k. T% y% q" g& z

  38. ) L* V: A  n2 O0 g+ _
  39. $ M1 M- t$ D$ M
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)9 Z* Z) q8 A9 M7 S" H+ e1 v
  41. {( f: z& c  ^0 Y  K% S
  42.         Node *getNode = tree_control0->CreateNode(name);) }" A/ s1 v) L. |! T
  43.         getNode->SetDisplayIcon(geticon);4 d/ K+ s8 C" o: z* j5 p, p
  44.         getNode->SetSelectedIcon(geticon);
    . m7 B9 o3 D7 X; X# C5 s
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);; d$ ?4 L9 ]9 Z5 E4 I- l: Z: S
  46.         return getNode;8 u, R" W2 z$ h6 y- B

  47. ! ^& v# R4 M* }: |; c, }
  48. }
    # p7 a  c8 w6 H5 R3 ?( F

  49. % }9 d  V7 k3 X2 n
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)$ {9 T* o# M/ v
  51. {2 p! G, ]- L1 Q' M( W
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());* G" I! B& J! O
  53.          if(part==NULL_TAG)# W$ K6 c+ A8 [7 T% |# n* A
  54.          {' e4 P8 q( L! O) ]
  55.            return "Not Loaded";
    - w6 K8 R; D9 p% N9 @3 m( ~/ z$ M
  56.          }# ^7 m* d8 ~9 y9 G
  57.          else4 ?) M4 b( F1 |+ [0 }
  58.          {$ Z9 S* U) T8 h% o
  59.          if(part->IsFullyLoaded())
    $ S+ `8 M% r: h
  60.                  return "Fully Loaded";: r* q4 ~" D+ |; T
  61.          else
    " L$ ~+ z% q4 u, n( K& l
  62.                  return "Partially Loaded";
    1 Y+ [) b6 R9 k( N
  63.         1 w7 P+ f1 {) B
  64.          }* q6 g# o# y7 j9 B
  65. }
    , ~5 W6 P/ m! E7 r6 r
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    : w0 n& \5 M" I6 @8 Q+ Q! C
  67. {
    1 _4 I6 _( B- W$ {& Y# I
  68.    
    ! u& b2 ~6 |2 i' X" {' B
  69.            vector <Assemblies::Component *> children = root->GetChildren();
    ! a' x2 `) G, t% h7 C4 b
  70.            for(int i = 0 ; i < children.size(); i ++)& T7 }# \# A# \9 N
  71.            {
    + R/ n0 z; Y/ z( O# ~
  72.                    Assemblies::Component *com = children[i];
    1 y) r1 P( n- E+ b
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");& O4 ]' f) z* M$ ^2 X, X
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));4 A; }$ ~# S3 @8 ?1 f
  75.                    getcompoents(newNode,com);7 h+ a% u! w+ }' t& J' T
  76.                         + }2 N0 h- C- W( t: h  H
  77.            }
    ( f! d3 N7 K& F
  78.    
    4 f$ A% F3 R7 R/ X6 r

  79. 0 o( W4 U/ L1 \" G! X9 B& I0 L
  80. ( R  c7 B4 K. g
  81. }
复制代码

2 d+ d: ^0 k- [+ N% e: h" v模拟装配导航器treelist代码分享--树控件的使用
, ?4 q  b( v. x) Q9 S+ v. x
0 |* n6 z3 l6 i, {, T+ [
* I1 r4 l' {+ X7 @0 Q5 G
* k$ U* b: @) r# h7 j' G7 e" L5 V3 y; E/ Q4 E0 q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了