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

  • NX二次开培训

    NX二次开培训

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

  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

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

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

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

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

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

PLM之家-上海点团信息科技有限公司工业4.0数字化软件官方知识管理平台

查看: 314|回复: 0

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

[复制链接]
  • TA的每日心情

    1 小时前
  • 签到天数: 123 天

    连续签到: 1 天

    [LV.7]常住居民III

    1962

    主题

    3260

    帖子

    5万

    积分

    管理员

    PLM之家mildcat

    Rank: 9Rank: 9Rank: 9

    积分
    59487
    发表于 2018-1-10 10:12:25 | 显示全部楼层 |阅读模式

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

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

    x
    6 G8 F0 D6 g% A) ?
    Catia二次开发源码分享: 获取装配所有组件列表  L* W" p$ i/ @0 c/ o" H1 W# k
    3 ]1 r1 p0 @# M! a/ }4 f

    + n/ t% S" L$ M
    [C] 纯文本查看 复制代码
    /* ----------------------------*/
    	/* 2. Retrieves Root Product   */
    	/* ----------------------------*/
    	
    	// Begin navigation through the document => start with the RootProduct.
    	CATIDocRoots* piDocRootsOnDoc = NULL;
    	rc = pDoc->QueryInterface(IID_CATIDocRoots,
    		                      (void**) &piDocRootsOnDoc);
    	if ( FAILED(rc) ) return 3;
    	
    	// get the root product which is the first element of root elements
    	CATListValCATBaseUnknown_var* pRootProducts = 
    		piDocRootsOnDoc->GiveDocRoots();
    	CATIProduct_var spRootProduct = NULL_var;
    	
    	if (pRootProducts && pRootProducts->Size())
    	{  
    		spRootProduct = (*pRootProducts)[1];
    		delete pRootProducts;
    		pRootProducts = NULL;
    	}
    /** @anchor err_1 piDocRootsOnDoc not set to NULL after release */ 
    	piDocRootsOnDoc->Release();
    	piDocRootsOnDoc = NULL;
    	
    	// Get CATIProduct handle on the root product.
    	CATIProduct *piProductOnRoot = NULL;
    	rc = spRootProduct->QueryInterface(IID_CATIProduct,
    		                               (void**) &piProductOnRoot);
    	if ( FAILED(rc) ) return 3;
    
    	/* ---------------------------------------*/
    	/* 3. Retrieves children under the root   */
    	/* ---------------------------------------*/
    	
    	int nbOfDirectChidren = piProductOnRoot -> GetChildrenCount() ;
    	cout << " Number of direct children under the root = " << nbOfDirectChidren << endl << flush;
    	
    	// then on a root product, get all the children agregated to it.
    	CATListValCATBaseUnknown_var*   ListChildren =
    		piProductOnRoot->GetAllChildren();
    /** @anchor err_2 piProductOnRoot not set to NULL after release */ 
    	piProductOnRoot -> Release();
    	piProductOnRoot = NULL;
    	if(NULL != ListChildren)
    	{
    		
    		int numberOfChildren = ListChildren->Size();
    		cout << " Number of all children under the root = " << numberOfChildren << endl << flush;
    
    		/* -----------------------------------------------------------*/
    		/*  4. For each child, get its partNumber, and InstanceName   */
    		/* -----------------------------------------------------------*/
    		CATIProduct_var spChild = NULL_var;
    		for (int i=1;i<=numberOfChildren;i++)
    		{
    			spChild = (*ListChildren)[i];
    /** @anchor err_3 spChild not tested before use ( if !! ) */ 
    			if ( NULL_var == spChild ) return 4;
    			CATUnicodeString partNumber = spChild -> GetPartNumber();
    			CATUnicodeString instanceName (" ");
    			rc = spChild -> GetPrdInstanceName ( instanceName ) ;
    			if  ( FAILED(rc) ) return 4;
    			
    			cout << " child number : " << i << endl << flush;
    			cout << " has as part number : " << partNumber.CastToCharPtr()  << endl << flush;
    			cout << " and as instanceName : " << instanceName.CastToCharPtr() << endl << endl << flush;
    		}
    		delete ListChildren;
    		ListChildren=NULL;
    	}	
    	/* -------------------------------------------- */
    	/*   Ends the session                        */
    	/* -------------------------------------------- */

    6 `% s' q0 J" b: h# @
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复

    使用道具 举报

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

    本版积分规则


    <

    QQ|小黑屋|手机版|Archiver|PLM之家-工业4.0数字化驱动之家 ( 沪ICP备13003373-3

    GMT+8, 2018-4-20 16:48 , Processed in 0.121760 second(s), 28 queries .

    快速回复 返回顶部 返回列表