PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

[复制链接]

2014-2-13 14:47:51 3288 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);
    , j& i  B9 s: }4 N! }
  2.             tree_control0->InsertColumn(2,"Status",100);9 P8 l$ T* i( B" S/ f9 i5 d; j
  3. ' j. w: a8 A0 W; i6 x3 H. n: `7 y
  4.                
    , R1 n+ f/ S; L& x+ k
  5.                
    4 g/ w* c7 B, F! [3 p4 t. U
  6.                 // get asembly name
    8 ~) h) L1 G+ c6 r
  7. 8 p  H/ i7 z- s' x1 N5 p
  8.                 BasePart *displayBasepart = theSession->Parts()->BaseDisplay();: I" _+ ^8 V7 ~9 B$ i7 `
  9.                 Part *workpart = theSession->Parts()->Work();3 [% |3 |+ \, T. [" O
  10.                 // get rootcomponent
    8 c9 Q5 H8 M5 I! I5 ?- y
  11.                 Assemblies::Component *rootcomponent = displayBasepart->ComponentAssembly()->RootComponent();
    0 A8 E- Q2 i5 k" v. S1 b
  12.                 if(rootcomponent)
    9 t; r) N* I* J5 U) B7 D
  13.                 {
    , A: p5 Y$ l7 x' R1 @3 C
  14.                         Node *parentNode= tree_control0->CreateNode(rootcomponent->DisplayName());2 q# q0 i7 Q) b9 O, {5 @
  15.                         tree_control0->InsertNode(parentNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    ! s/ w( j# Z$ |0 `$ [7 ?8 D4 k
  16.                         parentNode->SetColumnDisplayText(2,loadStatus(rootcomponent));: ]1 o, U; u3 v/ N5 k
  17.                         getcompoents(parentNode,rootcomponent);
    ( O- E% s  [  b
  18.                   2 Q: [% O3 n) H3 F+ M
  19.                 ) ^% l3 b( F* R( o9 h
  20.                 }
    ( ?" g: z. l5 W/ W! s3 m$ N+ Z

  21. $ n! _) t8 n$ j' }% J
  22.                 else
    3 X7 u* U. M: t' t$ \3 [
  23.                 {
    8 }4 D, }1 `2 M: t9 B/ P. V# K
  24.                         Node *newNode = tree_control0->CreateNode(workpart->Leaf());
    & W; ]# P& F0 h; }0 q' [/ n0 i/ |0 L
  25.                         newNode->SetDisplayIcon("piecepart");" n2 r" l/ W/ `0 K3 R& ]
  26.                         newNode->SetSelectedIcon("piecepart");
      t6 X; |8 e: ^8 v* ?7 X8 N( T! s
  27.                         tree_control0->InsertNode(newNode,NULL,NULL,Tree::NodeInsertOptionAlwaysFirst);
    / `5 Y, y/ x0 x, a9 o! `8 e
  28.                         newNode->SetColumnDisplayText(2,"loaded piecepart");
    % X; A# B- W( ]1 I# ]
  29.                         delete newNode;3 p, a( I- R* S' @9 a6 t
  30.                         newNode = NULL;6 ?2 \2 L% J3 G) m% h6 J$ [
  31.                 $ C0 l; M+ y9 c9 Y  Y
  32.                 }* ]0 E& S/ R5 n5 ?  x! J8 \) A

  33. - c" s9 X0 M2 G# {
  34.                
    . T  \9 J4 \% e5 r' N; y3 }
  35.         }0 H: Q6 E! n+ t& z! O
  36.        
      X1 [* P1 S2 p9 K$ b/ W" ]% J
  37.        
    1 {4 e& ~0 L, ]8 M+ a& S
  38. 3 D. j- h- s/ k+ P

  39. * a7 i  j" d& ]4 w5 f! L7 ?
  40. Node * PNTDemo::createInsertNode(Node *pNode,NXString name,NXString geticon)
    . r* [! f; x& W
  41. {) Q' I* _2 x) V2 G9 i1 U
  42.         Node *getNode = tree_control0->CreateNode(name);/ U3 Z& ]0 e! h: B7 ?1 `
  43.         getNode->SetDisplayIcon(geticon);3 R" H3 r( A! M& w
  44.         getNode->SetSelectedIcon(geticon);" U- X1 J+ G6 C: S0 v9 ^- r
  45.         tree_control0->InsertNode(getNode,pNode,NULL,Tree::NodeInsertOptionLast);
    ( P" {! W! g4 Y( o: I4 W8 E5 G5 N
  46.         return getNode;
    ; s1 G& F; ~3 o( s3 Y! S3 B% ~4 L

  47. - K# L) o( o! `, \/ D
  48. }& ?. `0 r' J: T# [  j7 P2 b  A

  49. ! S- @+ w% `! K
  50. NXString PNTDemo::loadStatus(Assemblies::Component *component)
    " W1 v- c' E! U8 V, k: @
  51. {; }$ W8 ^; Z6 l# y& F, f# b' C0 M8 C, B
  52.          Part *part =dynamic_cast<Part*>(component->Prototype());* I. i) e6 C# ^2 A1 n+ Q
  53.          if(part==NULL_TAG)
    + k0 q) p# r% m, L4 I- J! G; r/ b3 y
  54.          {! S( H1 d5 D- o" O
  55.            return "Not Loaded";$ n' b9 Q$ p$ q5 U$ v
  56.          }
    ' D$ C$ A" ^5 z5 A* b$ N
  57.          else
    : Q7 l1 u3 o3 c7 Z
  58.          {- H& p& k& K3 r5 \( w
  59.          if(part->IsFullyLoaded())9 v% N, p, m% ^
  60.                  return "Fully Loaded";
    5 |1 O0 J& @+ P$ V9 x& T
  61.          else; e! d$ T! O5 d
  62.                  return "Partially Loaded";
    ) i4 o. g. t( l* D8 t4 x
  63.        
    ) q8 [& d- t% s5 s/ C4 {
  64.          }0 o( K* k, A. g1 |! e! f0 K
  65. }/ ?& Y3 x  ?, v
  66. void PNTDemo::getcompoents(Node *parentNode,Assemblies::Component *root), [+ O- Q! l3 V; u- P: U
  67. {7 r8 c3 I$ e, I
  68.    : \2 _; Y* d- f
  69.            vector <Assemblies::Component *> children = root->GetChildren();8 g) G! e& x3 \- h9 _
  70.            for(int i = 0 ; i < children.size(); i ++)
    2 Z$ C, e" Z5 U" n
  71.            {
    2 d' c- E4 K- c6 z: V5 A0 `5 p
  72.                    Assemblies::Component *com = children[i];
    ( K& t4 m  ^; J1 w( t
  73.                    Node *newNode = createInsertNode(parentNode,com->DisplayName(),"assembly");9 k5 g7 `- K* m# S  S9 c) X
  74.                    newNode->SetColumnDisplayText(2,loadStatus(com));
    & \) F% h1 T2 k/ i+ V7 U
  75.                    getcompoents(newNode,com);6 U1 D7 r. ], ?! \# j) k
  76.                         0 F) \& f4 X" w9 ~
  77.            }
    + p0 ~6 D& H8 w+ @6 M
  78.    
    : i# ]5 Y9 L9 O4 k: M$ c
  79. $ U, q# U# ^! i' b5 M4 t! {4 c9 {

  80. , v$ n8 v  f- R$ m* N
  81. }
复制代码

9 p* s. o6 Z' A0 H% g; e模拟装配导航器treelist代码分享--树控件的使用
  D$ C+ b; e% e0 v+ F, @9 _( H9 {' q* e# V8 t: Y1 j: q* m2 r

/ G: ]( c" [0 n) o1 ?# J& |" k+ Z& i1 j: a* }* h6 x
1 r. [& D" b6 i
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了