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

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

[复制链接]

2014-2-13 14:47:51 3569 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);, p$ |+ O; T" |: I
  2.             tree_control0->InsertColumn(2,"Status",100);( t# q. B: o; q% {% z/ m5 I

  3. : t! V  ~7 E& v) h% z9 U3 S, z
  4.                 5 }; H- b3 j1 i: O- m+ \
  5.                 % r8 `4 a) M; S! h3 @+ G
  6.                 // get asembly name& X8 _! g: Q/ r# O
  7. * W* n8 Q( L1 H* A4 j. U* [) G/ q
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();! q7 W5 h2 i$ F5 |) T' W' }
  9.                 Part *workpart = theSession->Parts()->Work();
    . n% Q' F1 X1 D3 F- p: R/ M& {
  10.                 // get rootcomponent
    : f/ p* B; y+ U7 t+ `7 _
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();, x  {* t- ?$ b& l+ ?/ C, d2 u" S
  12.                 if(rootcomponent)* g' k5 Z+ h. G' p
  13.                 {
    + Q! A0 x0 [7 Y
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());7 \2 U1 b: K4 o5 t; b2 A2 p+ H
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);* U# @0 u9 O) t+ P$ [6 c
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));* u8 l0 [. s% L3 U; @- X- z# ^' g- }
  17.                         getcompoents(parentNode,rootcomponent);9 T, w  ~4 R! z2 ~! M- h2 d0 W
  18.                   
    ; [2 Q6 o" N% f
  19.                
    , W. N" @" M4 H9 r, L6 ?
  20.                 }
    - W( b5 {2 [4 a+ s2 O

  21. 6 c; W, ^, A2 Y6 ?9 ~4 @  ?
  22.                 else
    ( A/ v: p9 t" V; s, I
  23.                 {( q1 R' l  o, c/ \7 q
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    ( u7 \" ]- H3 D
  25.                         newNode->SetDisplayIcon("piecepart");0 v" U/ D; w5 v8 C
  26.                         newNode->SetSelectedIcon("piecepart");
    1 g" Q. M$ T. _
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    , V! V6 l( \! n0 J
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");( h- y. k/ \3 O- X( S
  29.                         delete newNode;
      |  |1 \. N5 {) d3 Y
  30.                         newNode = NULL;
    ' I  P2 T9 X$ H2 t% F+ {5 Q
  31.                 0 R- U; X( t6 P, v- B
  32.                 }
    7 w; m# U/ [, A
  33. 5 L# i7 q$ G/ ~* q- A5 T8 I
  34.                 + T- u$ H2 I; N
  35.         }5 f& b  |1 R  q  P# h
  36.         4 h" R  s$ U9 `7 _% Y
  37.        
      m% Z4 `- M$ M( E' n+ ]  \

  38. , h7 z9 X8 i) D7 Q% K$ L/ s* {

  39. 1 o' h# `. j0 D+ s3 L# Q2 E
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    . R1 i  a6 b5 z! n) |6 X
  41. {7 l) A6 z% E1 W  N1 }9 Z7 F5 j
  42.         Node *getNode = tree_control0->CreateNode(name);, G0 b! w% z8 ?! I6 O. m: H
  43.         getNode->SetDisplayIcon(geticon);' A+ R% u& w2 B3 e. u/ f3 u5 P
  44.         getNode->SetSelectedIcon(geticon);8 u1 i! O0 K6 ~, m' h2 A
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);- V2 e3 f+ V0 W% S( K
  46.         return getNode;' p; W2 u& s/ O" v- I# s* N

  47. & l- v6 S( D/ `9 s  L3 F9 S8 l
  48. }- j# e/ a5 w" |9 n2 w& V" w
  49. + }8 \* J* p! C% ~
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)
    & j  r' o$ I& H1 X0 d7 }, f1 u0 x1 O
  51. {
    0 |8 p. }/ e+ [! W( o0 O
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    % R) j8 U2 v4 L4 h' w
  53.          if(part==NULL_TAG)
    . `! y) {8 v/ f; Q) k
  54.          {
    ; C& T; I' V+ K0 E" _+ w+ ]
  55.            return "Not Loaded";
    4 S  B* Q) L9 D+ z8 A
  56.          }0 _) q0 `+ {, B9 o
  57.          else
    5 K7 A( x% E- v$ ?5 c4 U
  58.          {9 f- ~( a% {- _2 I/ q) v6 z
  59.          if(part->IsFullyLoaded())
    # S* y* J  [1 s6 w. T; K
  60.                  return "Fully Loaded";
    ' s: Q! \6 A" v3 s" l
  61.          else
    3 C% G& D: ~4 s' s
  62.                  return "Partially Loaded";
    * W: P4 |8 K# c5 `# v7 y
  63.        
    0 b# d) k# |- M+ Y
  64.          }
    . q5 I0 T% c8 i$ _1 V6 k
  65. }
    ' ~# y1 I5 Q2 Z+ D( v' w7 E
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)# Y: a* e1 I" n: Z- z
  67. {0 J4 p) F' {4 I# L# j9 e4 W7 t
  68.    6 M8 @3 E1 s. n/ E+ d
  69.            vector <Assemblies::Component *> children = root->GetChildren();; U& X& R/ G3 T8 u0 y- {7 W
  70.            for(int i = 0 ; i < children.size(); i ++)1 X7 p( s6 b6 W! f
  71.            {
    . J7 E1 g2 Y% v* l- o) ?2 e/ m
  72.                    Assemblies::Component *com = children[i];
    ; L. A; j  c, I* e  ^5 M: W0 i! q6 x
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");/ x! m6 X& m1 M. `: E
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));' I2 |; P- O# Q& x4 N
  75.                    getcompoents(newNode,com);  P1 n2 f- U% p0 r( N$ x& j3 Q
  76.                        
    - U; l! {$ s( r* ]9 V5 v! F& b
  77.            }2 I& }; e) v) g2 Q: f( c
  78.    
    * I& l1 X1 K/ B/ M* I  I
  79. 9 \/ A9 O) T* R( M
  80. 0 I  p. y. j$ k& P4 i
  81. }
复制代码

) |& F$ ?0 n8 b! y7 `) f模拟装配导航器treelist代码分享--树控件的使用
$ s- _- _/ A4 [
/ [! E1 ?0 }9 {3 D  R- T* r& r! z1 T! W$ g- ^3 C5 R! |+ w

: F* \) b5 i9 R  I
" r8 |# u+ S0 T- X: K/ {1 C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了