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 2301 0

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

admin 楼主

2018-1-10 10:12:25

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

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

x

9 {& `$ v% O7 L) O) p; p; BCatia二次开发源码分享: 获取装配所有组件列表
. }; f6 I* c( E
$ x4 ?% l' I+ {8 I' d! I5 `1 x: s9 p& t1 L/ a
[mw_shl_code=c,true]/* ----------------------------*/
' k( E$ T0 _/ O6 _( o6 @. d        /* 2. Retrieves Root Product   */
% J' s9 ^" c& S7 |: Z" n" h        /* ----------------------------*/' P6 ]; L+ m6 W9 d$ B7 K
        ! Z' S; _0 k7 q% d/ s' z
        // Begin navigation throUGh the document => start with the RootProduct.6 I* B5 s" u: n' H: f
        CATIDocRoots* piDocRootsOnDoc = NULL;
, o$ S6 j) Z) A. b% ?        rc = pDoc->QueryInterface(IID_CATIDocRoots,
# R3 Z( H- h  v- b6 G$ e                                      (void**) &piDocRootsOnDoc);
$ q! B; ]" M4 Z1 B7 x        if ( FAILED(rc) ) return 3;# y: X& n; T. B) I) n3 A
       
5 l7 x8 x+ o" M$ R, M        // get the root product which is the first element of root elements
+ J6 T# V$ P4 h  d: g/ h# T* f        CATListValCATBaseUnknown_var* pRootProducts =
+ m+ b! H+ a( n6 r                piDocRootsOnDoc->GiveDocRoots();
$ W# O- n9 V$ l- Q# I( j        CATIProduct_var spRootProduct = NULL_var;
1 d' N  ?' T0 D$ f2 G; F       
3 r6 U) u) J: {        if (pRootProducts && pRootProducts->Size())
# Q) e* a8 {+ M8 Q        {  6 u6 M9 c# `9 Z  {* ?
                spRootProduct = (*pRootProducts)[1];
# N) B6 p( }0 D/ E' m$ y+ j                delete pRootProducts;
4 }1 M: X$ T; G                pRootProducts = NULL;
- W' Q$ ~+ u  m4 i' {8 F5 g! g        }
' L# p; u) n+ O5 E  U/** @anchor err_1 piDocRootsOnDoc not set to NULL after release */
: r% j8 ~5 L7 j! j        piDocRootsOnDoc->Release();$ T2 h' D+ w1 H
        piDocRootsOnDoc = NULL;9 p% I5 R7 ]( r) Y5 A
       
: c7 ^+ @) K' Z" T1 g+ Z+ n  p        // Get CATIProduct handle on the root product.1 E) }. ?5 w% A& g, B- {" t
        CATIProduct *piProductOnRoot = NULL;' [. s! x0 u; O2 D; ?! N
        rc = spRootProduct->QueryInterface(IID_CATIProduct,
* G7 y5 Y7 }# y' d                                               (void**) &piProductOnRoot);/ x& X; g4 p8 ]
        if ( FAILED(rc) ) return 3;, i$ e) g! K* H" X6 Q- Q) J
: M8 K2 b/ k3 ?* p/ q' [
        /* ---------------------------------------*/
( y- m0 \* C! y7 W" ?; A6 e        /* 3. Retrieves children under the root   */9 ]" a/ A0 P0 G) h
        /* ---------------------------------------*/* \# _7 z; h; s* ~) N4 i  J
        3 S. o9 I; H6 _
        int nbOfDirecTChidren = piProductOnRoot -> GetChildrenCount() ;2 L5 L+ B" R1 `, `$ b& Q
        cout << " Number of direct children under the root = " << nbOfDirectChidren << endl << flush;2 |+ d- W0 c" c, x5 M" B8 S4 L
       
% j' h. T' w" d; Y$ _/ e        // then on a root product, get all the children agregated to it.
7 r( Z  J/ D* x        CATListValCATBaseUnknown_var*   ListChildren =8 Q# C, w/ x% x. G1 C+ h. `
                piProductOnRoot->GetAllChildren();2 s: L) f7 b5 q% R( D' A8 @. _6 g
/** @anchor err_2 piProductOnRoot not set to NULL after release */
; }5 \9 |- B) \: F        piProductOnRoot -> Release();
, B# \- Y, E. Z        piProductOnRoot = NULL;
$ F. o) f- L2 i$ G        if(NULL != ListChildren)" n. g1 \, w$ Q" M: a
        {
0 M; p' ~+ |2 T2 O                & |: A3 R+ s0 T, B
                int numberOfChildren = ListChildren->Size();5 k1 }$ `: l% f* K. b8 }
                cout << " Number of all children under the root = " << numberOfChildren << endl << flush;
+ o' b5 b# w5 u# b
# M3 O! L5 H: j+ y6 p                /* -----------------------------------------------------------*/
; a+ f! G$ n2 H9 }; ~# y                /*  4. For each child, get its partNumber, and InstanceName   */
: [7 X4 z- K" G/ ~                /* -----------------------------------------------------------*// @! e' s7 u7 {# c
                CATIProduct_var spChild = NULL_var;1 z2 L( k6 ^3 ~
                for (int i=1;i<=numberOfChildren;i++)2 l1 ]: c& _' i5 i6 Y! p# G
                {
; g3 o, y- a/ i                        spChild = (*ListChildren);
! x# z' j( }. R8 @- v! v, F/** @anchor err_3 spChild not tested before use ( if !! ) */ ! X% e; S% D! F1 a$ Q1 Y* v
                        if ( NULL_var == spChild ) return 4;4 D- C0 L5 H% u+ y) k
                        CATUnicodeString partNumber = spChild -> GetPartNumber();
) h4 q3 m. R8 E# ?( H                        CATUnicodeString instanceName (" ");
. M$ X6 X5 i; N, m8 _! y$ k                        rc = spChild -> GetPrdInstanceName ( instanceName ) ;+ D, Q" k& j) `1 ?2 C4 G
                        if  ( FAILED(rc) ) return 4;& w' ]+ x! F0 H5 h  V
                       
: O+ p  C  \& a0 @: U- h6 q                        cout << " child number : " << i << endl << flush;% j( ]1 |, }- X
                        cout << " has as part number : " << partNumber.CastToCharPtr()  << endl << flush;" ?  ]0 Q, ?8 Z5 O
                        cout << " and as instanceName : " << instanceName.CastToCharPtr() << endl << endl << flush;% ~6 [% _4 O! x' W1 s8 k7 {+ Z9 ?
                }- d7 }* \# y4 u2 h- \
                delete ListChildren;6 O* y8 q, M4 O
                ListChildren=NULL;
7 D  g! J% m+ `+ v9 g8 e  @; e        }       
8 ?5 r# `! e, Q: d! l' N% G# n        /* -------------------------------------------- *// a" v' p! ^) d' m9 U
        /*   Ends the session                        */
  J  {. J4 r' i& [) o+ ^1 ]        /* -------------------------------------------- */[/mw_shl_code]5 \' Q4 v+ ]5 t6 S  Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了