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

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

[复制链接]

2014-2-13 14:47:51 3539 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);1 k3 }4 r7 _6 P
  2.             tree_control0->InsertColumn(2,"Status",100);
    , w4 G' o6 Z8 `; C# k
  3.   i" b  c, V$ s/ e+ ]3 ]  L% U+ g
  4.                 1 S1 B) h7 L* E7 K/ B3 L3 T
  5.                
      e1 m" @9 [( J, Y. V0 u1 k
  6.                 // get asembly name
    9 G2 X* [: p7 K; {* E6 \

  7. 3 J; X; I1 r+ f/ K
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    ! ]- R+ U0 i8 V* R
  9.                 Part *workpart = theSession->Parts()->Work();: o0 M  s6 g; l/ J) u( X8 Q
  10.                 // get rootcomponent  W0 w' Y3 g( p6 }! X
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    + O, [; e+ V# v  P
  12.                 if(rootcomponent)7 t: R) _' l- @$ j+ C+ H. W# {  D
  13.                 {6 E5 O; w/ L" i! o
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());6 d( y; v# r" I* p7 |  v
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    ( X! i4 Q; F( b; P
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
    0 J% G  _( c  l& ~: k2 X( V6 v7 l) {
  17.                         getcompoents(parentNode,rootcomponent);. C5 k. O3 Y  o& v8 X7 N
  18.                   
    4 D! K* c* b4 G  a8 B2 d
  19.                 ) H5 h, z% C5 A: x
  20.                 }' b" {( q, C' b# g) G6 J

  21. . I/ b1 K5 B; ]# E" m
  22.                 else# ?' P- E! f' A) Y# F3 H
  23.                 {: B3 Z+ f  h' G* i  I9 W
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());7 O0 h( h$ H! ?. ?/ e2 B# I, H. X3 Q5 w
  25.                         newNode->SetDisplayIcon("piecepart");6 P' R4 z$ S8 L/ Y9 |0 U/ u8 r
  26.                         newNode->SetSelectedIcon("piecepart");
    . K; W! C8 ^+ T4 ^  F8 F
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    / @6 Q! p0 e7 o' ^
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");7 W; E' i& ^, a
  29.                         delete newNode;
    , [* O. H" w2 r4 J7 [1 u) I# d
  30.                         newNode = NULL;
    ! c5 i, j" L" i- Z
  31.                 8 [6 s+ M3 ~) x7 @; i
  32.                 }
    ( ?4 b$ C# h" h9 s7 e
  33. 6 o) A6 [8 G  I4 S" q
  34.                
    ; z0 z" c& G3 z' u7 w9 E
  35.         }
    - F& N( G! w$ G) O1 v9 D& A! y
  36.        
    + k4 n7 h& C1 ?& f8 r
  37.        
    - y( U, E6 Y, w. c( G# u( k7 ^; U/ @( C
  38. * O) G( }2 e, g$ V

  39. ) }  ]$ t0 x0 b/ U4 h1 \$ A
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    # u% H# g( H; ?
  41. {" Q- W4 l8 y' d
  42.         Node *getNode = tree_control0->CreateNode(name);
    - X3 ?0 X2 `; B7 Q. o( j8 A3 U7 s
  43.         getNode->SetDisplayIcon(geticon);4 |. y; p  a; k6 b
  44.         getNode->SetSelectedIcon(geticon);
    # }. D1 V1 V* ]% x( J
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);4 y1 f3 ], F, f0 v/ n) H6 b/ s6 x% A
  46.         return getNode;9 Z% s; F* i( L% O& `  Y9 d5 o( V+ K

  47. # a) [) P% Z8 |! W3 C
  48. }  x( e1 h, G' t7 Q, m$ M

  49. ; y" E3 i. j& |3 F: a
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)
    / m. M$ a5 j" ~4 k( F& T7 n4 v
  51. {
    ! ^# l  h$ m  ]" `% i: ?+ c* m3 F
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    9 @* D, G6 A' B$ V
  53.          if(part==NULL_TAG)" R0 P1 Y/ ^3 S4 B
  54.          {& m7 {/ ?1 A0 ]0 H4 d( E& l' I
  55.            return "Not Loaded";) H8 c8 [& b8 I
  56.          }. I5 I+ m0 a, Y
  57.          else
    ; F( k1 N8 {+ t3 c. N' l
  58.          {
    , s  E0 ?. \  U
  59.          if(part->IsFullyLoaded())
    + N9 \  W! j. q
  60.                  return "Fully Loaded";
    , t8 ^% P8 G# z# ^6 L4 G/ u* |
  61.          else7 D) {- G6 ~' `+ d- K+ B' Z% e
  62.                  return "Partially Loaded";
    - I% A8 n1 y$ g2 ?( z9 H9 b- A4 U
  63.        
    ' V! v0 i, @, i$ c. X9 @  e% ?0 H
  64.          }' C6 X0 M' V3 k9 m! z" _
  65. }
    , a& n5 }+ V2 @, L# d) n# M6 [$ [
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    2 v7 I* D1 P" U6 t9 P  x
  67. {& [" R1 P- q: M% L: ], L5 W: r
  68.    - N; n* G4 l+ p$ ]5 R; i
  69.            vector <Assemblies::Component *> children = root->GetChildren();0 z7 j: D; ]! c' V1 D. l
  70.            for(int i = 0 ; i < children.size(); i ++)
    . K, p2 S) m1 [  r
  71.            {8 I1 h% H) G! U
  72.                    Assemblies::Component *com = children[i];# X$ x+ X7 D  h" j
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");9 i% f  r* z0 T- w1 J) E# R; s
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));- X' A; _9 G5 }8 s$ U) H" ~
  75.                    getcompoents(newNode,com);4 ?# n- Z) D( L" O* q
  76.                         ) S" O" [7 G3 l9 m$ H/ @# E: b5 M
  77.            }
    / _& v) L8 W) l7 C$ z
  78.    ' d- f- Z8 ]7 r' H% e. _3 y1 F) ]7 D

  79. ) s) |  S% A: N1 Q  o

  80. 4 \" w7 O) |8 A) }, o0 i
  81. }
复制代码

) L/ u; d( v* R+ }3 _6 `: T模拟装配导航器treelist代码分享--树控件的使用
1 ~. @% a$ ~( c/ a  X" s5 t) m( X% N- P" g' T
7 W, t) _1 s( t% B& t- |

" D$ @% w  Z. ?
* z) Q: k# A  O* N+ |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了