iCAx开思工具箱

标题: CATProcess中如何获得Product以及Resource的container? [打印本页]

作者: VoyagerBu    时间: 2008-6-10 15:33
标题: CATProcess中如何获得Product以及Resource的container?
在Process中可以通过GetRootContainer()获得process的container。
请问如何获得ProductList和ResourceList的container呢?
作者: wangnai1116    时间: 2008-6-11 12:34
CATISpecObject::GetFeatContainer()
作者: VoyagerBu    时间: 2008-6-11 16:10
可是如何获得CATISpecObject的指针呢?
是需要在CATProcess中获取。
作者: wangnai1116    时间: 2008-6-12 07:56
请把问题详细说明,最好有参照代码
作者: VoyagerBu    时间: 2008-6-12 09:50
问题就是:如何在CATProcess文件中,遍历ProductList和ResourceList?
我没有这方面的代码,因为没有找到接口函数。
在CATProcess文件中,可以遍历ProcessList,用函数CATInit::GetRootContainer()
作者: wangnai1116    时间: 2008-6-12 10:07
CATIDocRoots *piDocRootsOnDoc = NULL;
rc = pDoc->QueryInterface(IID_CATIDocRoots,
                          (void**) &piDocRootsOnDoc);
...
       
// the root product is the first element of root elements
CATListValCATBaseUnknown_var *pRootProducts = piDocRootsOnDoc->GiveDocRoots();
CATIProduct_var spRootProduct = NULL_var;
if (NULL != pRootProducts && pRootProducts->Size() > 0) {  
      spRootProduct = (*pRootProducts)[1];
...
// Get CATIProduct handle on the root product.
CATIProduct *piProductOnRoot = NULL;
rc = spRootProduct->QueryInterface(IID_CATIProduct,
                                   (void**) &piProductOnRoot);


spRootProduct  是Top Product
CATIProduct::GetAllChildren()
为子Product List
CATISpecObject_var = CATIProduct_var

pDoc 为CATProcess的CATDocument
作者: wangnai1116    时间: 2008-6-12 10:08
未测试!!!
作者: VoyagerBu    时间: 2008-6-12 16:53
原帖由  于 2008-6-12 10:07 发表
CATIDocRoots *piDocRootsOnDoc = NULL;
rc = pDoc->QueryInterface(IID_CATIDocRoots,
                          (void**) &piDocRootsOnDoc);
...
        
// the root product is the first element of root elem ...


我已经调试过了,语句spRootProduct = (*pRootProducts)[1];之后
指针spRootProduct 为空。
说明 (*pRootProducts)[1] 不是CATIProduct类型的,我想它是和Process相关的类型
作者: wangnai1116    时间: 2008-6-13 08:01
CATISpecObject_var = (*pRootProducts)[1];

CATISpecObject::GetType()
看看就知道了
CATBaseUnknown都得到了
CATISpecObject也可以query到




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3