找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 20194|回复: 15
打印 上一主题 下一主题

CAA中如何删除零件中的中的关系、表??

[复制链接]
跳转到指定楼层
1
发表于 2005-9-14 14:39:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
获取了零件的CATIParmPublisher指针,然后可以取得表pDeleteSheet ,已经能够对表pDeleteSheet读取数据,但是删除时 pIParmPublisher->RemoveChild(pDeleteSheet );出错!!删除关系也是出错。而在CATIA中交互操作时,这些表、关系是可以删除的。不知为什么?请高手指教!不胜感激!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 赞一下!赞一下!
头像被屏蔽
2
发表于 2005-9-14 15:49:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
3
发表于 2005-9-14 16:24:19 | 只看该作者
谢谢关注。请高手指教啊!
4
发表于 2005-9-16 08:34:59 | 只看该作者
各位请帮忙啊!拜托!先谢谢了!
5
发表于 2005-9-16 09:23:44 | 只看该作者
acoka、saeba、xyzhu等CAA高手,你们最近很忙吗?不知能否帮我解决这个问题啊!谢谢!!
6
发表于 2005-9-16 10:32:16 | 只看该作者
我没有做过sheet的经验,说说我的想法:
不知道你的relation是怎么做成的,我想可能是先做一个sheet,再把这个sheet当作参数来做一个relation吧。
删除的时候,应该是两个都要删,顺序嘛,试试看吧
但是似乎,你的情况是两个都出错?
出错不要紧,看看出错的信息就知道什么原因了。试试CATError这个类吧:
CATError::CATCleanLastError();
//Do you delete
//rc = pPublisher->RemoveChild(...);
CATError *pMyError = CATError::CATGetLastError(rc);
cout << "Error message : " << pMyError->GetNLSMessage << endl;
如果还是看不出什么问题,把你的source发上来给大家看看吧,
最好,生成和删除的部分都有。

>>最近很忙吗?
是啊,最近作了一个很恶心的活儿
话说回来了,CAA的活儿哪个不恶心。。。
7
发表于 2005-9-16 18:00:15 | 只看该作者
非常感谢saeba的热心帮助!!并祝中秋节快乐!
8
发表于 2005-9-16 18:05:29 | 只看该作者
表是在CATIA中交互生成的,不是在CAA中用代码生成的。就是已有的包含参数表的模型(标准件),用CAA获得表,然后想在CAA中删除,主要是标准件实例化后不想在包含表了,就象CATIA的CATALOG实例化一样,实例化零件中包含了表会有一些问题。
9
发表于 2005-9-16 18:11:55 | 只看该作者
相关代码如下:
CATISpecObject_var spSpecObjectPart = pSpecContainer1->GetPart();
    if ( NULL_var == spSpecObjectPart )
        {
                cout << "The MechanicalPart is NULL"<< endl;
                rc = E_FAIL ;
    }
        else              
        {
                CATIParmPublisher * pIParmPublisher = NULL ;                  
                rc = spSpecObjectPart->QueryInterface(IID_CATIParmPublisher,
                                                         (void **) &pIParmPublisher);                  
                if ( SUCCEEDED(rc) )                  
                {
                        CATLISTV (CATISpecObject_var) DesignTableList ;
                        pIParmPublisher->GetAllChildren("CATIDesignTable",DesignTableList);
                        NbDesignTable = DesignTableList.Size();
                        if ( NbDesignTable >= 1 )
                        {
                                CATISpecObject_var specObj = DesignTableList[1] ;
                                CATIDesignTable_var  opDesignTable(NULL_var);
                                rc = specObj->QueryInterface(IID_CATIDesignTable,(void**)& opDesignTable);
                                if(opDesignTable!=NULL_var)
                                {
                                        CATICkeSheet_var pDeleteSheet=opDesignTable->Sheet ();
                                                int ColumnNum =pDeleteSheet->Columns ();
                                                int i;
                                                for(i=1;i<=ColumnNum;i++)
                                                        opDesignTable->RemoveAssociation (pDeleteSheet->Cell(1,i));
                                                //pIParmPublisher->RemoveChild(pDeleteSheet );///删除表,有问题!!
                                }                               
                        }                       
                        pIParmPublisher->Release();                     
                        pIParmPublisher = NULL ;                  
                }              
        }


请各位高手指教!!谢谢!
10
发表于 2005-9-16 20:04:47 | 只看该作者
试试这样行不行:

if ( NbDesignTable >= 1 )
           pIParmPublisher->RemoveChild(DesignTableList[1]);

直接删DesignTable.

还有个小问题:
CATISpecObject_var specObj = DesignTableList[1] ;
CATIDesignTable_var  opDesignTable(NULL_var);
rc = specObj->QueryInterface(IID_CATIDesignTable,(void**)& opDesignTable);
可直接写成:
CATISpecObject_var specObj = DesignTableList[1] ;
CATIDesignTable_var  opDesignTable(specObj);

SmartPointer 就是用来省去QueryInterface的麻烦.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-25 04:11 , Processed in 0.023876 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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