iCAx开思网
标题:
CAA中如何删除零件中的中的关系、表??
[打印本页]
作者:
chengongcumt
时间:
2005-9-14 14:39
标题:
CAA中如何删除零件中的中的关系、表??
获取了零件的CATIParmPublisher指针,然后可以取得表pDeleteSheet ,已经能够对表pDeleteSheet读取数据,但是删除时 pIParmPublisher->RemoveChild(pDeleteSheet );出错!!删除关系也是出错。而在CATIA中交互操作时,这些表、关系是可以删除的。不知为什么?请高手指教!不胜感激!!
作者:
along533
时间:
2005-9-14 15:49
爱慕难助
作者:
chengongcumt
时间:
2005-9-14 16:24
谢谢关注。请高手指教啊!
作者:
chengongcumt
时间:
2005-9-16 08:34
各位请帮忙啊!拜托!先谢谢了!
作者:
chengongcumt
时间:
2005-9-16 09:23
acoka、saeba、xyzhu等CAA高手,你们最近很忙吗?不知能否帮我解决这个问题啊!谢谢!!
作者:
saeba
时间:
2005-9-16 10:32
我没有做过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的活儿哪个不恶心。。。
作者:
chengongcumt
时间:
2005-9-16 18:00
非常感谢saeba的热心帮助!!并祝中秋节快乐!
作者:
chengongcumt
时间:
2005-9-16 18:05
表是在CATIA中交互生成的,不是在CAA中用代码生成的。就是已有的包含参数表的模型(标准件),用CAA获得表,然后想在CAA中删除,主要是标准件实例化后不想在包含表了,就象CATIA的CATALOG实例化一样,实例化零件中包含了表会有一些问题。
作者:
chengongcumt
时间:
2005-9-16 18:11
相关代码如下:
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 ;
}
}
请各位高手指教!!谢谢!
作者:
xyzhu
时间:
2005-9-16 20:04
试试这样行不行:
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的麻烦.
作者:
acoka
时间:
2005-9-17 01:40
为什么用RemoveChild呢?把这个表和普通的feature一样用CCP或LifeCycle不能删除?
最近被借去做手机的数据库,估计下星期为止。那地方连网都上不了,干活都是unix和oracle,天天vi,
所有cad/cam的客户都很自我中心,客户的spec要求书是从使用者的角度出发的
什么都听客户的,最后自己会很被动。对不符合实际或系统逻辑的要求,必须说服客户,说请利弊,并且提出代替方案
双方都做出一定妥协后,估计工时,在开始写基础设计书,详细设计书和测试设计书
在我这里,比如一个 1个人做3个月的命令,基本上编程也就是2-3周,其他时间都是做调查,写设计书,做测试
作者:
chengongcumt
时间:
2005-9-19 10:27
谢谢xyzhu : pIParmPublisher->RemoveChild(DesignTableList[1]);我原来也试过的,行不通啊。
acoka 提供的思路我再试试!非常感谢!
作者:
chengongcumt
时间:
2005-9-19 14:44
用CCP方法确实把表删除了,非常感谢acoka兄!祝一切顺利!
作者:
hoobye
时间:
2009-6-19 16:38
你好,怎么删除的呢?可以把这段代码放上来看看吗?谢谢
作者:
liu1513
时间:
2009-6-25 09:01
好东西支持
作者:
y分建
时间:
2009-8-30 04:26
标题:
很不错
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
美女视频
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3