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

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

[复制链接]

2014-2-13 14:47:51 3571 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);, \# z) j7 m; o. ^+ `8 _- f- f  C( K' U
  2.             tree_control0->InsertColumn(2,"Status",100);" X3 q$ Q0 }# x* O

  3. ) i. [2 Q. M$ q! X9 V
  4.                 6 k6 b( g6 S5 T
  5.                
    ) s  a9 s; Z5 d, c
  6.                 // get asembly name
    9 r4 g" u1 F3 c9 W! X4 `, _

  7. 3 g6 Y9 v& l* h3 P  H
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();; h; E6 a0 C8 [& d! ^1 K) s
  9.                 Part *workpart = theSession->Parts()->Work();; i7 I% h& }$ u
  10.                 // get rootcomponent# l5 x7 Y& c# S: _9 G, e9 Y, \; a
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();" j. x$ s3 |& Y
  12.                 if(rootcomponent)
    / g4 ?: f6 b# N3 _! y9 D  h) a
  13.                 {7 x. ~" {+ |) ^' W! ~, u
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());
    4 b5 k  c0 b4 K& o; D  v! s1 A
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);3 {3 j1 e+ K$ n# j) B0 v
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));
    0 x. W/ \7 t9 L9 s' |* h' N
  17.                         getcompoents(parentNode,rootcomponent);
    5 q3 x# M7 }& S. p2 `
  18.                   
    0 r2 C! O  J2 U0 G8 g& @
  19.                 ; h$ C; {5 a! w" l
  20.                 }# `+ x0 F3 L) I  O$ Y* C
  21. 4 L+ s; ~8 ]* e* t3 Y
  22.                 else# W0 ^- q# p+ Y! t, L0 f9 C
  23.                 {& X) q8 P3 u# }1 g/ I" k- E
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    % C5 y' z: @9 i
  25.                         newNode->SetDisplayIcon("piecepart");
    - \$ w  w& G7 W, U- X* [4 e' B
  26.                         newNode->SetSelectedIcon("piecepart");
    8 f1 e/ M& T. Z/ A, p
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);0 k7 m* ^( b% ]( w
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");" Y% Z) B, [6 \) ?( b* J/ v) c2 k) A
  29.                         delete newNode;
    $ _. _& i2 t3 H: {+ \9 \( t& W
  30.                         newNode = NULL;2 @- p6 A) G+ ^) [
  31.                
    0 K* V) ~' y1 O% m( c, G
  32.                 }2 E: A0 R8 _5 j7 Q

  33. * b. B9 @" B4 t0 ]* ^
  34.                 % E4 |8 _+ a4 K3 C5 e0 M# J
  35.         }) r1 T( E1 A3 l3 X
  36.         & N! ~: a/ U1 S, p8 L% y3 I+ s* r
  37.        
    / q$ Q; p. Q3 v

  38. 8 ~6 z* |  [5 u- V

  39. * Z4 Q8 g1 `3 i3 D' S  P4 i
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    - X8 f7 L1 A, b
  41. {
    : d( V4 j- B; Y$ o% S
  42.         Node *getNode = tree_control0->CreateNode(name);( l3 ~# q- j& a
  43.         getNode->SetDisplayIcon(geticon);& ?; C7 Z* s8 T8 C7 E
  44.         getNode->SetSelectedIcon(geticon);/ V; C9 w  E7 ~) l7 x$ G' `! {
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);9 U$ P. f  w/ Q# f& V
  46.         return getNode;* e" I! \+ T4 {( c$ h6 @
  47. " {0 `* x2 R/ j8 @% |
  48. }
    ( g/ O! m. S: A( d& v( C- `
  49. : m9 ~# ]0 }# D5 J& L7 f& h' S+ W, R
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)
    " \# Q. ~0 z' P$ S
  51. {6 c3 I9 C! k, b) _
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());
    ! G  p/ K: Z2 [( I# e. e& q
  53.          if(part==NULL_TAG)
    & o9 Y, K* U& w; l( X
  54.          {1 n. C: _2 M' c3 Y; b
  55.            return "Not Loaded";
    6 A2 w% k9 a. a% L! r( c
  56.          }
    $ h' l4 G7 W3 u5 {
  57.          else1 x# V7 n; f( i* X* m
  58.          {! K" d7 |7 I" p$ G8 @& ]0 L
  59.          if(part->IsFullyLoaded())1 R( s+ a' l  Z6 P' {: y6 t
  60.                  return "Fully Loaded";
    4 i/ a& H1 u9 f  _; T3 n3 i6 h6 x
  61.          else
    ( K; X- T8 o. o, l
  62.                  return "Partially Loaded";
    $ G! f7 f; X. j5 W8 G( F
  63.        
    ; }6 J3 c- z* I: G
  64.          }
    $ _3 b# R. E  `, X
  65. }
    ' J, W0 \. B6 N9 j& H# I
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root)
    & B4 w; }% R/ W- f9 s5 D1 o
  67. {/ H! Z; q, e6 n. B9 \4 e$ T
  68.    ) f6 w& y( {  r$ C7 X' d4 s
  69.            vector <Assemblies::Component *> children = root->GetChildren();* U$ t" u* c/ A9 d$ w( _
  70.            for(int i = 0 ; i < children.size(); i ++)
    + c# o* z7 G" ^9 |
  71.            {
    ( Z* {& @; M* L) I0 k3 P
  72.                    Assemblies::Component *com = children[i];
    5 b$ O: b% U: `/ g
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");2 A6 j. ]9 n) D6 \
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));9 r' ~8 \3 N8 S+ e$ O% t. J
  75.                    getcompoents(newNode,com);
    * q. a& L# G+ j+ n. \8 p
  76.                         9 H1 q. Y: b  W' k# P; s8 X) k0 H" B
  77.            }$ j3 r' l! H4 Y5 R! P3 y9 G6 C
  78.    
    ) {4 f: J7 z. n) Q; V+ m' \

  79. 9 I% A9 N6 K5 K& q; o* x8 ?1 T: K# L

  80. ! U% H( D! _, A* j4 s
  81. }
复制代码

$ A* e6 G/ ]8 Y6 _: a6 [模拟装配导航器treelist代码分享--树控件的使用
: E/ c0 Z+ h. w4 o# W
9 C. Y  Y$ F* n3 `/ c; b. g& l+ D) C; ^+ ~* X% p

5 L+ w/ }1 g; X" m6 Y, H$ d3 ?4 {% x
1 `6 \% D3 e0 s' p- y1 ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了