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

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

[复制链接]

2014-2-13 14:47:51 3550 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);
    ' D- a; s, K6 S  g# G
  2.             tree_control0->InsertColumn(2,"Status",100);2 G2 C  f+ a4 Y1 X& }

  3. ) {! w9 z9 ^3 j6 G  B- J
  4.                 ( @: I$ u5 u  T4 {+ D( }
  5.                
    4 o  l( c" Y" j3 W3 n* W5 I, I' {
  6.                 // get asembly name# o8 G* o0 C" d5 d

  7. 4 X4 a4 [. K. j1 M
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();
    5 E+ y: T+ S: x! g  W/ B
  9.                 Part *workpart = theSession->Parts()->Work();' e9 W2 [# @3 \2 e) g
  10.                 // get rootcomponent( E' Q# q# y+ E  D, n; j
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    2 C4 j4 v5 W+ ], M$ x
  12.                 if(rootcomponent). y) t4 k, s7 Z5 Y9 O
  13.                 {
    ' P2 D4 f1 N; l7 H3 r  z
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());
    8 s  @  f  |1 J
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    . h7 D3 d+ f( x9 O# G  v% |, }5 b
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));6 Y2 S: O: t$ g
  17.                         getcompoents(parentNode,rootcomponent);
    . q& w4 A5 P4 c) ^
  18.                   
    % R. @  l; V( o: c5 A1 R7 H+ e
  19.                 5 F" i( h0 y4 W& }. [) H$ {
  20.                 }
    5 m1 I6 S- r: H1 m8 Z1 Z& t

  21. ) f7 ?2 b3 I" `# l
  22.                 else
    ( W5 ?* z1 ?8 q; _; @
  23.                 {9 W% ?1 ?* L& T& h: u) c
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    " {$ A! H6 b' ]8 u  q
  25.                         newNode->SetDisplayIcon("piecepart");! B- n3 ]0 m  e; S! A! D6 H
  26.                         newNode->SetSelectedIcon("piecepart");
    1 t. l8 U& o' Z. E4 h
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    0 y: C- }0 R# ]" }( G: q% u
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    % @2 h) t! ^- k( N* }6 T1 x# o/ f5 W
  29.                         delete newNode;) Y8 S% q0 N9 u- N* \& B3 v2 J) z
  30.                         newNode = NULL;
    . s1 v8 W) w9 c7 n+ {$ [
  31.                   ~4 ?5 J* _+ B3 L* {
  32.                 }" e, l/ ?0 c! }) S* O
  33. ) z' \7 P8 \2 F1 L7 o; j
  34.                 2 y- b* r+ v  f" @, F
  35.         }
    * S; w8 {& Z0 j( d7 k( D! M. W2 N
  36.        
    ; t) ]$ R8 \, y
  37.        
    - ?7 |* Y. I4 h/ P. Y/ h
  38. 8 @: O% i# R, j" k3 b4 \

  39. ; B# n! c- j- O4 W. I' r) C  U
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    0 N6 `+ d9 V+ o0 I# e9 g" Q
  41. {
    . ~# p, @  w' r7 @
  42.         Node *getNode = tree_control0->CreateNode(name);9 s, b  _2 t8 m" k% v2 c
  43.         getNode->SetDisplayIcon(geticon);
    & F; K  f; {! N
  44.         getNode->SetSelectedIcon(geticon);% _4 i# \( F5 t1 c
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);$ A9 u: A: V2 R0 e: _, g+ m
  46.         return getNode;5 a' h' ~# R9 b/ b

  47. 8 g9 S/ i5 I6 _1 E$ Z& K- P. g
  48. }; B# I4 Q2 Y8 i3 Z0 y

  49. 4 d* ]( W' G6 q, e- J8 p
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)0 }$ m+ i. U) u( T5 I- Q* B; d
  51. {
    " s/ c- D% g1 K
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    & b* M9 n6 E  z; s8 H, x
  53.          if(part==NULL_TAG)+ [5 s2 g+ D9 l  K* ~
  54.          {
    0 G/ i. `$ @, t3 m( R2 K0 \$ t
  55.            return "Not Loaded";
    $ ^; }0 d, f" H2 N- H7 G8 B
  56.          }- @( H5 X: H4 f5 P8 V
  57.          else6 H" D1 v- I3 I4 p
  58.          {
    3 k) |& J+ F* ~$ K
  59.          if(part->IsFullyLoaded())( C3 U$ f0 i3 P* i, r% j
  60.                  return "Fully Loaded";
    4 ^# V- }7 F( ]
  61.          else
    2 a. v- c) x/ i. Z) ?1 Q/ N3 d
  62.                  return "Partially Loaded";6 C: N, i2 b9 w' L6 a+ l
  63.        
    8 M' Q) L- [/ l  e# ^) L
  64.          }
    1 ?. w: ^& T  W0 ^* v0 O7 _0 G
  65. }: X4 v3 x: P4 Y9 L+ d% R
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    ( z/ w+ f6 c2 {# {/ J8 q
  67. {
    - d# Z1 c' I( Q; d& Y
  68.    
    " E: B* Y7 [$ Q6 z
  69.            vector <Assemblies::Component *> children = root->GetChildren();2 H8 G. ?9 z' N4 Q! O$ L
  70.            for(int i = 0 ; i < children.size(); i ++)
    3 ~+ I" @7 I6 V
  71.            {0 @/ X/ q! k: B* [! o% {+ a
  72.                    Assemblies::Component *com = children[i];. E/ O1 w3 N# l$ @" |- v
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");+ P+ U" V3 M% [5 e( E1 e: K
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));
    ; A9 u! M& `' W, x: D
  75.                    getcompoents(newNode,com);
      V, E9 G' F, b' d( T. |: ?
  76.                        
    . H9 V5 E: Y% F* s" J7 I* J
  77.            }* N1 l3 p( i/ w
  78.    ; V6 C& C8 V- \
  79. " G; ]5 K; ]3 e. v% d

  80. / m) A' I9 X* l( v: [, w+ r" }
  81. }
复制代码
+ Z' I3 R/ c/ E) g
模拟装配导航器treelist代码分享--树控件的使用
% E5 x' Y# k! l% r: f( c: H
2 `4 Q3 F$ ^9 @' X' J1 G+ X+ V8 a6 X% t+ Q, P2 B6 R
8 p. }! e+ o; R8 Q3 y7 m$ ?0 v

  v' E! t, w! A* 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二次开发专题模块培训报名开始啦

    我知道了