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

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

[复制链接]

2014-2-13 14:47:51 3579 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);
    8 @: x8 o  h# G; z
  2.             tree_control0->InsertColumn(2,"Status",100);" X- a- q- z+ J" [, l
  3. 5 Z$ |( Y( d* ~5 n0 |" ?
  4.                 3 o9 J& z2 N1 x8 B8 s5 e
  5.                 7 h, ]8 k/ b1 W! F
  6.                 // get asembly name
    / Q9 F( {, u1 ?
  7. % p1 m) L4 l/ x% ]" _
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    5 v" i3 M( ^) V% O+ i9 F3 i' t
  9.                 Part *workpart = theSession->Parts()->Work();1 p1 f/ S  j/ O( q8 H
  10.                 // get rootcomponent! E8 {7 L8 @- A! M
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    / \. v" ~" Q, \/ c8 A  l: \
  12.                 if(rootcomponent)& w. q) `( Q; e+ f& b* L8 r8 H
  13.                 {
    + ~: {$ [8 ?/ q: H& I% V
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());! z8 p/ T. T+ v: O& f
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);/ ]# y6 N4 v+ P6 B% @
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
      Y0 h- d3 |/ v, v
  17.                         getcompoents(parentNode,rootcomponent);/ M5 ?) H& G( C1 V% g# z
  18.                   ; E, W3 K: ?( J# o/ i
  19.                 / l( |7 }' g0 h6 n7 w: ^& O& Q
  20.                 }1 B) D, e/ y2 g3 i: t- H( \

  21. . k$ `5 _/ G) P# C  e$ j
  22.                 else% \  b2 J. d1 v8 F
  23.                 {& u+ k4 q1 h3 x
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    * }  c. b6 w+ n2 `; r
  25.                         newNode->SetDisplayIcon("piecepart");
    * [" ~1 v5 Q, o
  26.                         newNode->SetSelectedIcon("piecepart");
    1 h- n0 A& V4 E$ o  a
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    ( S6 l6 F: b4 I$ i% C' R" I: r
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    7 c7 n* D) q1 Z* a* }5 W
  29.                         delete newNode;
    8 C5 x) z! F' y3 @# T7 \# |
  30.                         newNode = NULL;
    9 a0 V; n- n) Z) ~8 {1 x/ A$ ^- P
  31.                 9 r8 `1 l8 D% P  [% d' z
  32.                 }  N. j7 l1 l$ n2 E# J
  33. 9 m9 w( b5 q' U6 M/ K1 A0 Y; ?
  34.                 . r* j9 f. b6 B' X$ P# t  w/ m
  35.         }& g+ [# d8 _4 O: L  N. X8 X/ j
  36.        
    & G; ~. A1 Q; q' u7 f$ F0 F* v, w/ ^. k
  37.         % n/ ~" o, [; G
  38. " A0 z: z  _9 K& ]2 i& N+ g

  39. 0 n1 p' R' x5 |5 c0 K1 M
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)6 [9 s/ W+ ^- ^& I+ `% x9 x
  41. {
    + D) P1 R7 W: T
  42.         Node *getNode = tree_control0->CreateNode(name);
    5 `3 X( b$ r: ~7 @& V
  43.         getNode->SetDisplayIcon(geticon);! _$ O  ~, S9 ~* T$ c
  44.         getNode->SetSelectedIcon(geticon);
    ! A" v' v, t: c' N1 E; @* \
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);+ L4 f, y3 I# o6 E/ [
  46.         return getNode;
    : n$ a7 ]! c2 k" R& O
  47. / Y0 p  v' E. b; K) S* V! c
  48. }; o6 f& W: n4 C* |6 ~

  49. * w( d9 e. A# `, ~4 ?5 C0 g
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)
      M6 {$ F( y( x% W
  51. {  Z8 l, G0 z. C: {; m
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());1 u0 u. ^0 _& t7 o
  53.          if(part==NULL_TAG)9 s1 T: `8 M/ _+ n
  54.          {  u- j% K6 [2 e0 ?3 v1 C$ M
  55.            return "Not Loaded";
    % W, U. v2 p! U8 E& U
  56.          }- K+ D. o' S5 {
  57.          else/ y. E7 l2 V6 l  [  A3 I
  58.          {0 o, s. v* X5 l3 x
  59.          if(part->IsFullyLoaded()), d2 q; ?, j" C" z$ _- `
  60.                  return "Fully Loaded";5 I, U! X) j+ @* @; h; @; P: A8 Z
  61.          else+ z$ \3 J$ k. y- Q& b: J( F
  62.                  return "Partially Loaded";2 O0 p) k1 J  h$ X
  63.         $ Y/ ^/ w/ _' Q) f% n. F1 L
  64.          }
    * z+ B7 y* w, n3 ]) w: @
  65. }0 K. V6 O- k' C, q/ E- i
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    ' V, C/ U; S3 ^6 D
  67. {* w) j* _: W8 T# F9 W
  68.    
    ( b: X- p& S, R- J* ]: F
  69.            vector <Assemblies::Component *> children = root->GetChildren();3 F, p% S6 N" l6 D
  70.            for(int i = 0 ; i < children.size(); i ++)% S& S+ z" {" w' r0 t/ P2 `
  71.            {  c' y; Y. P5 w& R# a* \. }& [6 Q
  72.                    Assemblies::Component *com = children[i];1 D( G4 g& t( l- D
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");
      B- o6 }- u, M
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));
    9 o  w$ k1 h+ U8 ?, a$ F# w
  75.                    getcompoents(newNode,com);
    3 s" g- p, E& _* e! {; [# q
  76.                         ; l$ Z' _! `0 A; |9 q) k4 |: I
  77.            }
    $ g/ V% n2 D5 u4 ?1 U# w
  78.      x) Z1 k. Q# k  N
  79. 9 ]9 y1 @0 c7 j3 X
  80.   o. L" ~, T  S) m1 W
  81. }
复制代码
# ?3 \! V5 u: a& z1 X, j! n
模拟装配导航器treelist代码分享--树控件的使用
7 K- P. K* ^) M. J) `4 w0 G) }* u- g  E2 e; ]0 j2 R  A% c3 _
# w; o2 d9 m( W( T4 e
7 |6 b6 A8 U. y4 J0 z8 g
5 r: S  O0 d( d7 \5 y! K3 f. w) `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了