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-国产软件践行者

Catia二次开发源码分享: 获取装配所有组件列表

[复制链接]

2018-1-10 10:12:25 2311 0

admin 发表于 2018-1-10 10:12:25 |阅读模式

admin 楼主

2018-1-10 10:12:25

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
% X+ t" u' g" f* f4 r5 @
Catia二次开发源码分享: 获取装配所有组件列表
' f* w% I# Z; V$ F. l8 E5 S6 P
2 {0 Z. H0 f5 z' Q/ l; F7 z  C- T& l  L& t5 q5 |+ K
[mw_shl_code=c,true]/* ----------------------------*/5 A" ~3 h) }; A
        /* 2. Retrieves Root Product   */
8 ~1 ^  V; h- @$ f% r. n        /* ----------------------------*/
' {0 ?2 }: d0 ~6 F) \$ a# `       
7 ~" l4 L2 }" T' K        // Begin navigation throUGh the document => start with the RootProduct.
, a) E# [  d. }' \  }        CATIDocRoots* piDocRootsOnDoc = NULL;& G: z9 e3 k- R5 l5 j
        rc = pDoc->QueryInterface(IID_CATIDocRoots,2 u! A2 h9 R1 B/ k3 l
                                      (void**) &piDocRootsOnDoc);
! Y& t0 C. V+ z        if ( FAILED(rc) ) return 3;
: k) h& x; n2 U4 Y        " }' ]! y. E! m( u7 R" y+ z; V
        // get the root product which is the first element of root elements
/ b8 g; h. i# ^0 _" ?: g3 r% E        CATListValCATBaseUnknown_var* pRootProducts =
" B/ h: K0 \+ P# c- z                piDocRootsOnDoc->GiveDocRoots();
) m9 B) O  S7 k1 p% ]  `        CATIProduct_var spRootProduct = NULL_var;; d* Z/ a9 _/ J' ~* {; T
       
; K( z* Y* Z% p& i( J        if (pRootProducts && pRootProducts->Size())5 m. }4 P/ I: f7 r# t
        {  
8 G6 Q+ |4 K2 f1 v3 a. L' x0 ]( k                spRootProduct = (*pRootProducts)[1];8 j! [5 {. r+ j# ?6 T5 E6 t3 ^+ d$ Q
                delete pRootProducts;: f3 o, g' ~7 m0 w
                pRootProducts = NULL;
1 z. S" w6 U- s: }( c- G9 `        }
; O" l! m; r3 E+ h/ X/** @anchor err_1 piDocRootsOnDoc not set to NULL after release */
( A# ]0 }4 [, u, _2 Z2 `, M# q4 r) ^        piDocRootsOnDoc->Release();6 d+ A5 d0 R( v6 U* q  b+ {1 l1 F
        piDocRootsOnDoc = NULL;
1 L4 f3 }! n8 ^3 r       
2 f/ k( v& v5 w$ p9 F        // Get CATIProduct handle on the root product.
) J: w/ p; U: ]( X        CATIProduct *piProductOnRoot = NULL;, t- C" T; D* r8 E* H2 j/ z
        rc = spRootProduct->QueryInterface(IID_CATIProduct,
$ e5 i9 p, v; [) \                                               (void**) &piProductOnRoot);% q7 P( Q- a! q  p3 _# \
        if ( FAILED(rc) ) return 3;) }( Y/ ]: h; k3 ?$ \

2 _- Z4 E/ H& Q3 c2 P! f' S! l( T2 k3 v' s        /* ---------------------------------------*/: O3 Y+ x% H' u! V
        /* 3. Retrieves children under the root   */0 [" G0 |5 G2 V! w/ z2 o/ Y7 N
        /* ---------------------------------------*/7 J% o6 |; j) C% G+ {; [1 R/ }0 a+ j
        * Y4 S/ O( f9 ~3 _% R7 }
        int nbOfDirecTChidren = piProductOnRoot -> GetChildrenCount() ;
+ U1 W& p0 R( |        cout << " Number of direct children under the root = " << nbOfDirectChidren << endl << flush;% F6 @% E( h# Z# K1 ?
        / j  e+ `+ E; }6 d: |8 N& L1 W7 Q# u
        // then on a root product, get all the children agregated to it.
  a2 f" o) G6 A, u; t        CATListValCATBaseUnknown_var*   ListChildren =
4 J+ `8 W3 d( k                piProductOnRoot->GetAllChildren();
" x' c$ R4 j; A/** @anchor err_2 piProductOnRoot not set to NULL after release */ * R+ s" s" e3 l6 p1 X+ S
        piProductOnRoot -> Release();
% d0 c" e; k! J2 z3 R2 ~- q        piProductOnRoot = NULL;& l2 r/ r" s$ ]* I  I9 @
        if(NULL != ListChildren)2 L) x6 {, B6 b7 A' [% E
        {
# S; |& }8 L" ?% U% F4 p               
& P  k; h% ^% g* W% ?                int numberOfChildren = ListChildren->Size();& e6 _- M% |5 m# x8 G7 J
                cout << " Number of all children under the root = " << numberOfChildren << endl << flush;
8 u  {3 M  l4 v- F- m. _5 G* o! i  q# A) A4 V8 ]# Q; e  `4 b
                /* -----------------------------------------------------------*/6 w- }# g2 S) d9 Q  T" U( X
                /*  4. For each child, get its partNumber, and InstanceName   */
( ]  J% n' E/ `5 ~                /* -----------------------------------------------------------*/
9 C3 K: d' ^  j! b; J                CATIProduct_var spChild = NULL_var;
/ O$ A1 ?" o7 [0 t$ `+ H1 c' P  d                for (int i=1;i<=numberOfChildren;i++)
+ F" c' A# n  N% L9 b9 h' V                {
) M+ {4 T/ A/ u+ i, \; D                        spChild = (*ListChildren);  B  v& H6 O# v* R* X) b0 b" ?2 @
/** @anchor err_3 spChild not tested before use ( if !! ) */
1 R' D& Q+ s: I3 O                        if ( NULL_var == spChild ) return 4;' l( B( F( y7 i: N, J, q, N( o
                        CATUnicodeString partNumber = spChild -> GetPartNumber();
2 \3 R$ v* V: w1 \                        CATUnicodeString instanceName (" ");
/ v0 t: X! h- h4 h0 \  d                        rc = spChild -> GetPrdInstanceName ( instanceName ) ;* |" q$ U8 Y9 j2 h! }) e2 @* i2 G8 U
                        if  ( FAILED(rc) ) return 4;' Q0 T" r! T) |1 e/ ~
                        / w. @5 J, ]% l  ^
                        cout << " child number : " << i << endl << flush;
( V7 L' h4 `& ^* M4 i# r: r* v# R- V                        cout << " has as part number : " << partNumber.CastToCharPtr()  << endl << flush;
1 J. O4 u5 _6 u% i, @6 U' P+ d                        cout << " and as instanceName : " << instanceName.CastToCharPtr() << endl << endl << flush;
1 l) L& R/ S" V9 _                }
4 _! g6 p2 D8 [* z( u3 _5 h3 F                delete ListChildren;
5 V1 v3 a, E8 I4 g                ListChildren=NULL;" C5 @8 u( K% \- y. J, E6 r$ t
        }        4 }6 X' Z9 h: i( v% _4 a$ ^  O! K3 T
        /* -------------------------------------------- */  b; ?, b, J6 C1 I: L* @
        /*   Ends the session                        */
% c8 W9 @/ V( f2 ^& I: h# a        /* -------------------------------------------- */[/mw_shl_code]
* r2 h& h2 i3 W. K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了