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

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

[复制链接]

2014-2-13 14:47:51 3525 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);$ Y  P7 \) ^% m9 ~7 S# V8 @
  2.             tree_control0->InsertColumn(2,"Status",100);# a0 v; Q; r2 j; o. z( ^" V8 C

  3. 2 s4 B0 K! t4 A! z$ p1 J2 K" @
  4.                 ; p7 G/ }: v! W
  5.                
    ' V& g6 i$ r5 J4 L
  6.                 // get asembly name7 {' T6 O5 y- Y
  7. % x& \1 q6 O/ A, h. ]
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    ) i0 c6 g3 J, x; _* E$ F& h) p- z  l
  9.                 Part *workpart = theSession->Parts()->Work();
    + q& C8 ~0 H! n9 y
  10.                 // get rootcomponent) B" Y" l! `& y
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    9 `3 A7 O- d6 N
  12.                 if(rootcomponent)
    $ S4 _3 \! y8 {5 Z
  13.                 {
    7 Y# ?9 W) C7 d4 Q$ D0 G! e8 L! C
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());
    8 o: I: T8 I% U6 e" L' Q& P8 O6 }
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);, _) S4 Z1 a6 v4 M
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));$ U! b- n; B  S& C9 |( ?% H, D
  17.                         getcompoents(parentNode,rootcomponent);
    2 v9 b$ f6 D0 ?/ o* V7 b7 @2 C# g
  18.                   * \$ Q% V2 X' G* a
  19.                
    0 ~0 H1 G: ^# r1 ?# p
  20.                 }
    : M, N1 L2 n+ w! M3 F2 ?, ~& c

  21. + P4 P1 G& C, ]2 a
  22.                 else- R% z9 Q% t, D% N7 h
  23.                 {" T3 J, M) `3 T0 e1 Q
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());* W, o9 r% W6 F, Q( F6 ~2 u/ g$ O* G
  25.                         newNode->SetDisplayIcon("piecepart");
    / ^2 A/ M3 g" _$ Q9 a; N
  26.                         newNode->SetSelectedIcon("piecepart");( _- ^* w* q# ~
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    , p& {5 ~! n: B. R+ C4 v
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    " A  t% r+ x: y, Y/ `
  29.                         delete newNode;/ ^) X* b2 m4 q9 x$ n
  30.                         newNode = NULL;
    2 w. i- r* y9 p! a9 [
  31.                
    - e- D1 @1 u! x3 H# }3 u) v" _
  32.                 }
    7 e4 s1 b. O; o9 B8 R! r1 I( ~

  33. 5 i: p8 f+ ]2 {7 K  e2 [0 N
  34.                
    * s5 n; ~% D$ c! g! r
  35.         }
    ) I/ ^2 D. D' ]1 i( `
  36.        
    5 E5 f* z1 p: q  Z- q( @
  37.        
    2 ^/ P6 E4 d$ I: ^, M

  38. , \( [$ S) v1 D% o3 @
  39. - W+ u/ W, R7 v6 t) g
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    1 ?+ W: B# a$ i( U, A6 j4 ^$ F
  41. {
    $ |, g" Z4 y6 U! B
  42.         Node *getNode = tree_control0->CreateNode(name);/ I1 v5 w/ W: p+ t. p( C
  43.         getNode->SetDisplayIcon(geticon);$ b" B9 r$ X* h# M) h
  44.         getNode->SetSelectedIcon(geticon);" b1 y3 a$ u* b0 C/ D) K2 h
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);
    & M# N2 ^) Z- z
  46.         return getNode;0 g0 a& B; w7 u/ @; Q
  47. ' J2 E" i8 _3 h# U. h
  48. }& Q, p* M+ f0 k6 @  E' r

  49. : p/ R1 I! \! w) f% z
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)9 [* w$ S. l* q* ]: |% q
  51. {
    1 H5 P, r. |8 F6 ^( B
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    " E  O, t/ O0 ~) e1 @/ K
  53.          if(part==NULL_TAG)
    9 u) j3 \- P, w4 |. X% u" O
  54.          {
    ! g. C5 _6 _6 E3 E/ u
  55.            return "Not Loaded";
    , ?( N8 l7 g% r8 g$ q) X
  56.          }5 J4 f+ S) I& N' {
  57.          else
    ! `$ s, K- l, W* Y2 @+ W9 r
  58.          {8 n; s3 G$ O# n/ h1 S
  59.          if(part->IsFullyLoaded())4 b1 s; C+ p2 `1 d% N
  60.                  return "Fully Loaded";
    ( j8 P7 P4 }- X, D) l/ s! N
  61.          else5 _2 X9 n) d$ Y, k- B  k3 I
  62.                  return "Partially Loaded";
    # J5 c7 c( H# k$ l. D# ]5 o9 R
  63.         0 j* o1 J$ ~( m3 \% v: l
  64.          }! E6 o, c+ _: g
  65. }
    4 e0 O3 w9 E6 g, g6 e3 `
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    4 E; s  |! K; \2 p% N
  67. {
    " f- d* g/ ]( q2 t/ z3 m# I. j" r
  68.    2 Y7 N. C  O5 n$ {( D! W  ?; ^
  69.            vector <Assemblies::Component *> children = root->GetChildren();
    , g- g+ d* h5 b* |
  70.            for(int i = 0 ; i < children.size(); i ++)
    8 [" R' E* i; B+ c7 E4 e( f: d
  71.            {
    - B: u) G! P# }# {
  72.                    Assemblies::Component *com = children[i];+ X6 t0 |  D  q& I
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");' |) Z1 [7 y* h
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));3 \: r/ P- {3 i: ]* c5 q
  75.                    getcompoents(newNode,com);$ T0 f) u! F1 C) b6 `, @) O4 n
  76.                        
    - ^' M; I% U+ Y8 o/ d$ b
  77.            }
    - ^9 t3 h( z* n: N. {7 D& C. E+ q/ \
  78.    
    ( q0 {' _0 S# @9 s
  79. ' V& @8 W* u! p* }* k1 b
  80. & e3 W2 n" u; {) q. r. u. }
  81. }
复制代码

2 `4 r$ y, b5 |) s4 j/ ]模拟装配导航器treelist代码分享--树控件的使用
, s3 d, L+ m$ x8 N% `) j! ?
. a8 n/ B' `$ I6 @3 f- [7 Q) X$ [1 _( f# V+ s, Y6 Q
6 d$ g- Y4 x% G0 P
9 Q8 y, h  u9 E# @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了