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

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

[复制链接]

2014-2-13 14:47:51 3584 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);7 o/ M0 A1 h$ I* Z
  2.             tree_control0->InsertColumn(2,"Status",100);
    : V4 w( C; j- A5 b8 ]
  3. % \) d* X. ^& P
  4.                 - f5 R: K) t5 Y6 D8 t
  5.                
    . v1 D+ S. \8 p, ?- a( v/ X
  6.                 // get asembly name* B* g" }; B8 M! \4 ^. c

  7. 8 [+ L- P1 D1 |7 }
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    , N7 E+ |9 E/ w- \( e# I7 Y
  9.                 Part *workpart = theSession->Parts()->Work();
    1 A8 u$ \" D" ]% b  b  n
  10.                 // get rootcomponent: f2 b4 |# \, @" P- z( `
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    % C8 E5 V# g! M$ @, e# U/ s
  12.                 if(rootcomponent)
    5 r4 s6 D+ I% N  s; r3 M0 ~
  13.                 {
    1 k/ a' x" o" J
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());, \" e3 K% J" B7 a4 H; h4 a+ _
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);# R% N* J; m1 x
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
    ( T1 M- K. o8 r: C
  17.                         getcompoents(parentNode,rootcomponent);% d$ y* V! A% F2 z. G
  18.                   2 {. p' k6 I; L: ~( d& s
  19.                 2 K9 Q2 V+ J2 o/ a
  20.                 }* j7 x9 a' m( \2 v( S

  21. 3 a( _. u4 v5 j
  22.                 else# d4 S& e' r% s6 D
  23.                 {7 _! @6 p+ ], }: Z4 K; _' y' Z
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());; p- [; M4 e" o# K8 E9 K
  25.                         newNode->SetDisplayIcon("piecepart");
    ' f1 i6 A# C/ h+ ]
  26.                         newNode->SetSelectedIcon("piecepart");+ g1 P+ w! P$ e7 N9 u4 X
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);" J3 L$ z6 z& G) ^& i+ P
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    ' R/ a4 Q/ x) n& k9 B: y
  29.                         delete newNode;$ N7 {9 _. ^; s5 P% \8 [2 w! B/ j% O
  30.                         newNode = NULL;* [  Y4 ]2 P* T, Y. V
  31.                
    + u) e6 X% Q) r" I  E, C3 @
  32.                 }7 b5 e  |2 W1 `) Q4 |

  33. 8 X2 W4 i, W+ \  l; m6 _
  34.                 % \6 X+ E0 b! p& j5 F4 O
  35.         }
    * c8 [9 M" k1 y7 J
  36.        
    ! S7 ]% R. Y+ m7 B3 p
  37.         / }3 Z6 C) A* ~* Y3 Y5 m
  38. $ U4 n. X2 k* W& A0 M" E
  39. 0 H9 t; _; I! F" I7 K8 g
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    : v- i! b4 |7 G
  41. {
    ; X: N& o4 G! a4 r3 u" E5 a: G
  42.         Node *getNode = tree_control0->CreateNode(name);
    5 {  p% e) s7 M& ^7 q* l1 R" f
  43.         getNode->SetDisplayIcon(geticon);
    4 F4 f) y; a+ z$ G% t. P. _9 A
  44.         getNode->SetSelectedIcon(geticon);
    $ q! o; E6 ]: ?% i5 ]
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);
    4 W! j& A1 Y. r6 V; k
  46.         return getNode;# O0 y5 W, `- E

  47. / {. @. P0 W% W( h& U
  48. }
    2 N2 F7 d* z. {& u0 \- a5 Z
  49. + _8 e6 T, z6 y* ?1 V
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)1 _& b6 G% X* |3 {) g
  51. {3 ]# k* t/ Y4 A2 W& I
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());; C. C3 x0 g) f( |
  53.          if(part==NULL_TAG)
    $ B9 }, a7 T5 S+ ^8 [. t& l
  54.          {
    ) Y$ |" ?* c2 D
  55.            return "Not Loaded";7 `5 F! k+ a" [: s" q2 C# L  |6 [
  56.          }, q+ _! p) c! u( m% L
  57.          else' V+ v7 w9 u) c  G, q5 d# G9 R
  58.          {) o3 P8 J, Y' D8 a
  59.          if(part->IsFullyLoaded())! i/ m: e' D/ p* `( ^& `
  60.                  return "Fully Loaded";
    - k9 y3 n5 E; r$ E
  61.          else4 W# I5 z! s, X5 X
  62.                  return "Partially Loaded";
    3 f. D4 z& b& ^% u) V. g6 a0 ?
  63.         ! {) \* W# S1 k) @
  64.          }1 n* b5 V$ K- ^
  65. }
    4 [, k! B% b; @( V
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    . \* t& L4 s. I# v: M
  67. {
    ( T/ X& I" ]( G( j
  68.    + J- X3 O/ x! u$ z- M3 q8 ?
  69.            vector <Assemblies::Component *> children = root->GetChildren();
    + i" ^4 A# V" {0 n8 A
  70.            for(int i = 0 ; i < children.size(); i ++)% c; R' `- u! l2 P
  71.            {6 B1 m: f, a$ N6 p( h! Z) T
  72.                    Assemblies::Component *com = children[i];
    , K/ R, k# y  g$ Z3 u0 F: v
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");
    " G: [$ [5 k8 p% Q
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));$ ~5 B. z. c' ~: T% t) e
  75.                    getcompoents(newNode,com);$ n. ?" u3 Q5 O( `! Y
  76.                           ~5 Q! k+ S. J# [6 f
  77.            }
    ; G* T" f! S# v; Y
  78.    " [, f, Z) D. H
  79. 9 }$ g1 K2 l0 ^+ D9 I% U8 E
  80. ! W0 e$ Y: @' _; V0 d9 A  ?- Q
  81. }
复制代码
1 F% I( C; \. }/ j7 v# d8 {
模拟装配导航器treelist代码分享--树控件的使用3 w$ k- ?, v0 ~( m

% i# m  V  A( ?3 n
" u& x7 l* K5 I3 w
* s/ f+ D  W: @4 l3 J
6 f$ x, }) w, d( s/ D
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了