iCAx开思网

标题: 弱弱的CAA开发问题,请acoka等高手进来看看。。。 [打印本页]

作者: wangyuan1-1018    时间: 2005-6-13 11:08
标题: 弱弱的CAA开发问题,请acoka等高手进来看看。。。
我用批处理方法对两个Solid Body作Intersect布尔运算:
CATIPrtBooleanFactory - > CreateIntersect( CATISpecObject_var  iFirst,  
  CATISpecObject_var  iSecond)
返回结果类型为CATISpecObject_var。
  
问题是不管两个Body有没有交集该方法都能运行,而且返回值都不是NULL_var。
但是如果没有交集时,作UpDate更新就会出错。后面的程序就不执行。
  
问题:
能不能事先判断两个Body是否有交集。。。或者
通过返回的CATISpecObject_var对象,能不能判断该对象为不合法对象,即没有交集。

作者: acoka    时间: 2005-6-13 16:36
你用的是CATIA的直接做feature的命令
这个FW的interface的特性比较好确认。
  
你可以在CATIA里做2个body,里头是2个没有交集的pad,然后用catia的命令做intersect,你会看到feature会被做出来,但紧接着就是个feature update error dialog
  
你用caa做也一样,create完之后要自己对它进行update(基本所有的命令都要自己做),这样可以用CATTry来截获update error
  
当然你也可以事先求它们的body有没有交叉形状,这一般要用topologcal的interface。
作者: wangyuan1-1018    时间: 2005-6-14 11:31
多谢acoka兄指点,
  
现在已经成功用CATTry来截获update error。
  
我现在想在截获异常后,将病态的交集特征删除。
用了LifeCycleObject接口进行删除,
执行LifeCycleObject-〉Remove(),并保存文档。
  
然后打开文档,发现病态特征并没有被删除。
  
不知道有没有办法删除那个病态的交集特征。
作者: wangyuan1-1018    时间: 2005-6-14 11:31
网速太慢,一不小心多发了一条,
  
顺便再请教一个问题,
  
用Topology的接口能判断多个平面围起来的未封闭区域和BODY有无交集么?
  
如,三个垂直于同一平面的平面围成的三角棱柱区域。。。
作者: acoka    时间: 2005-6-14 11:41
用SpecContainer 的CATICutAndPastable接口
作者: wangyuan1-1018    时间: 2005-6-15 11:20
成功了,多谢!!!
作者: wangyuan1-1018    时间: 2005-6-15 11:21
成功了,多谢!!!
  
这种方法把交集特征下面的那个Body也删除了,
在CATIA里面做删除操作时,可以不删除Body。
作者: acoka    时间: 2005-6-15 12:04
wangyuan1-1018 wrote:
成功了,多谢!!!  
  
  这种方法把交集特征下面的那个Body也删除了,  
  在CATIA里面做删除操作时,可以不删除Body。

  
删除前把特征下的body什么的用ChangeFather先移出来就可以
作者: wangyuan1-1018    时间: 2005-6-15 15:33
acoka wrote:
   
  
  删除前把特征下的body什么的用ChangeFather先移出来就可以

  
厉害,非常有效。。。
  
能不能再问acoka兄一个困惑已久的问题:
我想获取Product或Part的密度、重心和惯量等相关属性。
通过CATIProduct或CATIPrtPart来Query  CATIInertia接口,
并用CATIInertia接口对象的相关方法来获取需要的属性,
结果得到的结果和我在CATIA里面用Measure Inertia命令测得的结果不一致。
  
我想了很久都不知道是什么原因。
作者: cms_nuaa    时间: 2005-6-15 15:46
应该是一样的吧,我做过一个重量的。
如果有差异,可以看看单位原因引起的差别吧,我记得当时差别看上去比较大,但是换过单位后发现其实是一样的。
作者: wangyuan1-1018    时间: 2005-6-16 09:15
cms_nuaa wrote:
应该是一样的吧,我做过一个重量的。  
  如果有差异,可以看看单位原因引起的差别吧,我记得当时差别看上去比较大,但是换过单位后发现其实是一样的。

  
我发现不是单位的问题,原来是我根本就没有取到那些属性。
  
现在的问题是:
我测得通过CATIPrtPart_var智能指针Query得到的CATIInertia接口指针为非空,而执行GetMass()、GetCOGPosition()等方法时返回值HRESULT为FAILED,当然获取的属性变量是空值。

作者: HNBoTree    时间: 2007-1-2 18:33
现在的问题是:
我测得通过CATIPrtPart_var智能指针Query得到的CATIInertia接口指针为非空,而执行GetMass()、GetCOGPosition()等方法时返回值HRESULT为FAILED,当然获取的属性变量是空值。


你这个问题解决了没有啊?




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3